Your IP : 3.147.54.227
�
�fc@s�dZdZddddgZddlZddlZejd�ZeZd �Z d
�Z
d�Zd�Zd
�Z
edd�Zedkr�xedg�D]ZeGHq�WdGHx%edgde
�D]ZeGHq�WndS(sCList python source files.
There are three functions to check whether a file is a Python source, listed
here with increasing complexity:
- has_python_ext() checks whether a file name ends in '.py[w]'.
- look_like_python() checks whether the file is not binary and either has
the '.py[w]' extension or the first line contains the word 'python'.
- can_be_compiled() checks whether the file can be compiled by compile().
The file also must be of appropriate size - not bigger than a megabyte.
walk_python_files() recursively lists all Python files under the given directories.
sOleg Broytmann, Georg Brandlthas_python_exttlooks_like_pythontcan_be_compiledtwalk_python_filesi����Ns [--]cCstr|GHndS(N(tdebug(tmsg((s./usr/lib64/python2.7/Tools/scripts/pysource.pytprint_debugscCs�ytj|�j}Wn(tk
r@}td||f�dSX|dkretd||f�dSyt|d�SWn(tk
r�}td||f�dSXdS(Ns%s: permission denied: %sis!%s: the file is too big: %d bytestrUs%s: access denied: %si(toststattst_sizetOSErrorRtNonetopentIOError(tfullpathtsizeterr((s./usr/lib64/python2.7/Tools/scripts/pysource.pyt_open!scCs|jd�p|jd�S(Ns.pys.pyw(tendswith(R((s./usr/lib64/python2.7/Tools/scripts/pysource.pyR2scCs�t|�}|dkrtS|j�}|j�tj|�rStd|�tS|jd�sq|jd�rut Sd|kr�t StS(Ns%s: appears to be binarys.pys.pywtpython(
RRtFalsetreadlinetcloset binary_retsearchRRtTrue(Rtinfiletline((s./usr/lib64/python2.7/Tools/scripts/pysource.pyR5s
cCsut|�}|dkrtS|j�}|j�yt||d�Wn(tk
rp}td||f�tSXtS(Ntexecs%s: cannot compile: %s( RRRtreadRtcompilet ExceptionRR(RRtcodeR((s./usr/lib64/python2.7/Tools/scripts/pysource.pyRJs
c
cs"|dkrg}nx|D]�}td|�tjj|�rY||�r|Vqqtjj|�rtd�x�tj|�D]�\}}}x*|D]"}||kr�|j|�q�q�WxE|D]=}tjj||�} td| �|| �r�| Vq�q�Wq�Wqtd�qWdS(s^ Recursively yield all Python source files below the given paths.
paths: a list of files and/or directories to be checked.
is_python: a function that takes a file name and checks whether it is a
Python source file
exclude_dirs: a list of directory base names that should be excluded in
the search
stesting: %ss it is a directorys unknown typeN( RRRtpathtisfiletisdirtwalktremovetjoin(
tpathst is_pythontexclude_dirsR"tdirpathtdirnamest filenamestexcludetfilenameR((s./usr/lib64/python2.7/Tools/scripts/pysource.pyR[s&
t__main__t.s
----------R)(t__doc__t
__author__t__all__RtreRRRRRRRRRRRt__name__R(((s./usr/lib64/python2.7/Tools/scripts/pysource.pyt<module>s" !
?>