o b @s~ddlZddlmZddlmZmZmZddlmZm Z ddl m Z e e ZdddZdd d Zd d Zd dZddZdS)N)walk)abspathisfilejoin)PopenPIPE) PUBLIC_DIR_REz.pyccst|}t|ttfr|D] }t|D]}|VqqdSt|r+||r+|VdStt|D]\}}}|D] }||rEt||Vq8q1dS)z6Generate *.py file names available in given directory.N) tuple isinstancelistfrom_directoryrendswithrrr)dname extensionsitemfnrootdirs file_namesr%/usr/share/python3/debpython/files.pyr s"    r ccsjt|}td|dtd}|\}}|jdkrtd|t|d}|D] }||r2|Vq(dS)z4Generate *.py file names available in given package.z/usr/bin/dpkg -L %sT)shellstdoutrzcannot get content of %szutf-8N) r rr communicate returncode Exceptionstr splitlinesr) package_namerprocessrstderrlinerrr from_package.s      r#ccs |D] }||r |VqdS)z4Generate *.py file names that match given directory.N) startswith)filesrrrrrfilter_directory<s  r&ccsbtdd|D}tdd|D}|D]}t|}|r.|d}||vs+||vr.|VqdS)z3Generate *.py file names that match given versions.css|]}d|VqdS)z%d.%dNr.0irrr Esz filter_public..css|] }t|dVqdS)rN)rr'rrrr*FsN)setrmatchgroup)r%versionsvstr shared_vstrr public_dirversrrr filter_publicCs  r4ccs(t|}|D] }||s|VqdS)zs