grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026 й¼]¿-ã@s8ddlZddlZddlZddlZddlZyddlmZWnek rjdZYnXddl m Z dddgZ ddddd „Z ddd ddd dd d d„Z dd ddd dd d„Zd dd dd ddd„Zdd„Zedkr4eeƒ ƒZejeƒdS)éN)ÚProcessPoolExecutor)ÚpartialÚ compile_dirÚ compile_fileÚ compile_pathé ccsa|stdj|ƒƒytj|ƒ}Wn7tk re|dkr[tdj|ƒƒg}YnX|jƒxê|D]â}|dkrŒqwtjj||ƒ}|dk rÅtjj||ƒ}nd}tjj|ƒså|Vqw|dkrw|tj krw|tj krwtjj|ƒrwtjj |ƒ rwt |d|d|dd |ƒEdHqwWdS) NzListing {!r}...ézCan't list {!r}Ú __pycache__rÚddirÚ maxlevelséÚquiet) ÚprintÚformatÚosÚlistdirÚOSErrorÚsortÚpathÚjoinÚisdirÚcurdirÚpardirÚislinkÚ _walk_dir)Údirr r r ÚnamesÚnameÚfullnameÚdfile©r ú//opt/alt/python35/lib64/python3.5/compileall.pyrs,       *%rFr c Cs|dk r$|dkr$tdƒ‚t|d|d|d|ƒ} d} |dk râ|dkrâtdk râ|pud}td|ƒ�U} | jttd|d|d |d|d |d |ƒ| ƒ} t| d dƒ} WdQRXn5x2| D]*} t| ||||||ƒséd} qéW| S) Nrz%workers must be greater or equal to 0r r r r Ú max_workersÚforceÚrxÚlegacyÚoptimizeÚdefault)Ú ValueErrorrrÚmaprrÚmin)rr r r#r$r r%r&ÚworkersÚfilesÚsuccessÚexecutorÚresultsÚfiler r r!r4s(  $       cCs'd}tjj|ƒ}|dk r<tjj||ƒ} nd} |dk rg|j|ƒ} | rg|Stjj|ƒr#|rŒ|d} nc|dkrË|dkrª|nd} tjj|d| ƒ} ntjj|ƒ} tjj | ƒ} |dd…|dd…}}|dkr#|s¦yot tj |ƒj ƒ}t jdtjj|ƒ}t| d ƒ�}|jd ƒ}WdQRX||kr�|SWntk r¥YnX|s¿td j|ƒƒy"tj|| | d d |ƒ}Wn-tjk rŠ}z„d}|dkr|S|r+tdj|ƒƒntdddƒ|jjtjjddƒ}|jtjjƒ}t|ƒWYdd}~Xn™tttfk r}z^d}|dkr»|S|r×tdj|ƒƒntdddƒt|j j!d|ƒWYdd}~XnX|dkr#d}|S)Nr ÚcrÚÚ optimizationéz.pyz<4slÚrbézCompiling {!r}...Tr&rz*** Error compiling {!r}...z*** ÚendÚerrorsÚbackslashreplaceú:éýÿÿÿr;)"rrÚbasenamerÚsearchÚisfileÚ importlibÚutilÚcache_from_sourceÚdirnameÚintÚstatÚst_mtimeÚstructÚpackÚ MAGIC_NUMBERÚopenÚreadrrrÚ py_compileÚcompileÚPyCompileErrorÚmsgÚencodeÚsysÚstdoutÚencodingÚdecodeÚ SyntaxErrorÚ UnicodeErrorÚ __class__Ú__name__)rr r#r$r r%r&r-rrÚmoÚcfileÚoptÚ cache_dirÚheadÚtailÚmtimeÚexpectÚchandleÚactualÚokÚerrrNÚer r r!r\st     !        * c Cs€d}xstjD]h}| s,|tjkrK|rK|dkrxtdƒq|out||d|d|d|d|ƒ}qW|S)Nr rzSkipping current directoryr r%r&)rPrrrrr)Ú skip_curdirr r#r r%r&r-rr r r!r­s    c Cs—ddl}|jddƒ}|jddddddd d d d d ƒ|jddtd dd dƒ|jdddd dd dƒ|jdddd dddd dƒ|jdddd dd dƒ|jdddd d ddd d!ƒ|jd"dd#d d$ddd d%ƒ|jd&dd'd d(d d)ƒ|jd*dd+d,d-d d.ƒ|jd/d0dd1dtd d2ƒ|jƒ}|j}|jr´ddl}|j|jƒ|_|j dk rÏ|j }n |j }|j rxyY|j d3krüt j n t|j ƒ�+}x!|D]}|j|jƒƒqWWdQRXWn;tk rw|jd4krotd5j|j ƒƒd6SYnX|jdk r™|jp“d|_d7}yÂ|r>x�|D]‡} tjj| ƒrút| |j|j|j|j|jƒs6d6}q¯t| ||j|j|j|j|jd8|jƒs¯d6}q¯W|Std|jd|jd|jƒSWn/tk r’|jd4krŠtd9ƒd6SYnXd7S):NrÚ descriptionz1Utilities to support installing Python libraries.z-lÚactionÚ store_constÚconstr'rÚdestr Úhelpz!don't recurse into subdirectoriesz-rÚtypeÚ recursionzhcontrol the maximum recursion level. if `-l` and `-r` options are specified, then `-r` takes precedence.z-fÚ store_truer#z/force rebuild even if timestamps are up to datez-qÚcountr zIoutput only error messages; -qq will suppress the error messages as well.z-br%z0use legacy (pre-PEP3147) compiled file locationsz-dÚmetavarÚDESTDIRr z�directory to prepend to file paths for use in compile-time tracebacks and in runtime tracebacks in cases where the source file is unavailablez-xÚREGEXPr$zskip files matching the regular expression; the regexp is searched for in the full path of each file considered for compilationz-iÚFILEÚflistzzadd all the files and directories listed in FILE to the list considered for compilation; if "-", names are read from stdinÚ compile_destzFILE|DIRÚnargsÚ*zrzero or more file and directory names to compile; if no arguments given, defaults to the equivalent of -l sys.pathz-jz --workersr zRun compileall concurrentlyú-rzError reading file list {}FTr+z [interrupted]) ÚargparseÚArgumentParserÚ add_argumentrCÚ parse_argsrur$ÚrerLrmr rtrPÚstdinrIÚappendÚstriprr rrr+rrr>rr r#r%rrÚKeyboardInterrupt) ryÚparserÚargsÚ compile_destsr}r ÚfÚliner-rjr r r!ÚmainÆs~            * "        r‡Ú__main__éÿÿÿÿr‰r‰)rrPÚimportlib.utilr?rKrFÚconcurrent.futuresrÚ ImportErrorÚ functoolsrÚ__all__rrrrr‡rWrCÚ exit_statusÚexitr r r r!Ú s*        ' P  [