3 \5Qã@sddlZddlZddlZddlZddlZddlmZddlm Z ddl m Z ddl m Z ddlmZdd„Zd d „Zd d „Zdad d„Zdd„Zd'dd„Zdaaadd„Zdd„Zd(dd„Zdd„Zd)dd„Zdd „Zd*d!d"„Zd+d#d$„Z Gd%d&„d&ƒZ!dS),éN)ÚDistutilsPlatformError)Únewer)Úspawn)Úlog)ÚDistutilsByteCompileErrorcCstjdkrnd}tjj|ƒ}|d(kr(tjStjjd|ƒ}tj|t|ƒ|…jƒ}|dkr\dS|dkrhdStjSd tjkr‚tjd Stjd ks˜t td ƒ ržtjStj ƒ\}}}}}|jƒj d d ƒ}|j ddƒ}|j d dƒ}|dd…dkrôd||fS|dd…dk�rV|ddk�rd}dt |dƒd|dd…f}dddœ} |d| tj 7}nº|dd…d k�rtd||fS|dd…d!k�r”d"|||fS|dd#…d$k�rÒd$}tjd%tjƒ} | j|ƒ} | �r| jƒ}n>|dd#…d&k�rddl} ddl} | j| jjƒ|||ƒ\}}}d'|||fS))NÚntz bit (éú)Úamd64z win-amd64Úitaniumzwin-ia64Ú_PYTHON_HOST_PLATFORMÚposixÚunameú/Úú Ú_ú-éÚlinuxz%s-%sÚsunosrÚ5Úsolarisz%d.%sééÚ32bitÚ64bit)iÿÿÿlÿÿÿÿz.%séÚirixÚaixz%s-%s.%séÚcygwinz[\d.]+Údarwinz%s-%s-%séÿÿÿÿ)ÚosÚnameÚsysÚversionÚfindÚplatformÚlenÚlowerÚenvironÚhasattrrÚreplaceÚintÚmaxsizeÚreÚcompileÚASCIIÚmatchÚgroupÚ _osx_supportZdistutils.sysconfigÚget_platform_osxÚ sysconfigÚget_config_vars)ÚprefixÚiÚjÚlookÚosnameÚhostÚreleaser'ÚmachineÚbitnessÚrel_reÚmr6Ú distutils©rFú&/usr/lib64/python3.6/distutils/util.pyÚ get_platformsX            rHcCs~tjdkr|S|s|S|ddkr.td|ƒ‚|ddkrFtd|ƒ‚|jdƒ}xd|krf|jdƒqRW|srtjStjj|ŽS)Nrrzpath '%s' cannot be absoluterzpath '%s' cannot end with '/'Ú.r#)r$ÚsepÚ ValueErrorÚsplitÚremoveÚcurdirÚpathÚjoin)ÚpathnameÚpathsrFrFrGÚ convert_pathos       rScCsŽtjdkr._substz\$([a-zA-Z_][a-zA-Z_0-9]*)zinvalid variable '$%s')r]r1ÚsubÚKeyErrorrK)Úsr_r`ÚvarrFrFrGÚ subst_vars¸s  reúerror: cCs |t|ƒS)N)r^)Úexcr:rFrFrGÚgrok_environment_errorÑsrhcCs(tjdtjƒatjdƒatjdƒadS)Nz [^\\\'\"%s ]*z'(?:[^'\\]|\\.)*'z"(?:[^"\\]|\\.)*")r1r2ÚstringÚ whitespaceÚ _wordchars_reÚ _squote_reÚ _dquote_rerFrFrFrGÚ _init_regexÚs rncCs†tdkrtƒ|jƒ}g}d}�x`|�r€tj||ƒ}|jƒ}|t|ƒkr\|j|d|…ƒP||tjkr’|j|d|…ƒ||d…j ƒ}d}nÔ||dkrÄ|d|…||dd…}|d}n¢||dkrÞt j||ƒ}n*||dkrøt j||ƒ}nt d||ƒ‚|dk�r"t d||ƒ‚|jƒ\}}|d|…||d|d…||d…}|jƒd}|t|ƒkr"|j|ƒPq"W|S) NrrTrú'ú"z!this can't happen (bad char '%c')z"bad string (mismatched %s quotes?)r)rkrnÚstripr4Úendr*ÚappendrirjÚlstriprlrmÚ RuntimeErrorrKÚspan)rcZwordsÚposrDrrZbegrFrFrGÚ split_quotedàs@         ,   rxcCsP|dkr6d|j|f}|dd…dkr6|dd…d}tj|ƒ|sL||ŽdS)Nz%s%rrz,)rr éþÿÿÿry)Ú__name__rÚinfo)ÚfuncÚargsÚmsgÚverboseÚdry_runrFrFrGÚexecutes  r�cCs2|jƒ}|dkrdS|dkr dStd|fƒ‚dS)NÚyÚyesÚtÚtrueÚonÚ1rÚnÚnoÚfÚfalseÚoffÚ0rzinvalid truth value %r)r‚rƒr„r…r†r‡)rˆr‰rŠr‹rŒr�)r+rK)ÚvalrFrFrGÚ strtobool0s r�rcCsTddl}tjrtdƒ‚|dkr*do(|dk}|�s8yddlm} | dƒ\} } Wn.tk rzddlm} d| dƒ} } YnXtj d| ƒ|sð| dk r¢t j | dƒ} n t | dƒ} | j d ƒ| j d jtt|ƒƒd ƒ| j d |||||fƒ| jƒtjg}|j|jƒƒ|j| ƒt||d �tt j| fd| |d ��nddlm}�x|D�]þ}|dd…dk�rh�qL|dk�r–|dk�r€dn|}tjj||d�}n tjj|ƒ}|}|�râ|dt|ƒ…|k�rÒtd||fƒ‚|t|ƒd…}|�röt j j||ƒ}t j j!|ƒ}|�rL|�st"||ƒ�r.DistutilsRefactoringToolc_stj|f|žŽdS)N)rÚerror)Úselfr~r}ÚkwrFrFrGÚ log_errorísz4run_2to3..DistutilsRefactoringTool.log_errorcWstj|f|žŽdS)N)rr{)rµr~r}rFrFrGÚ log_messageðsz6run_2to3..DistutilsRefactoringTool.log_messagecWstj|f|žŽdS)N)rr¥)rµr~r}rFrFrGÚ log_debugósz4run_2to3..DistutilsRefactoringTool.log_debugN)rzÚ __module__Ú __qualname__r·r¸r¹rFrFrFrGÚDistutilsRefactoringToolìsr¼z lib2to3.fixes)ÚoptionsT)rš)Zlib2to3.refactorr²r³Zrefactor)ÚfilesÚ fixer_namesr½Úexplicitr²r³r¼ÚrrFrFrGÚrun_2to3às  rÂcCsddlm}ddlm}ddlm}|ƒ} tjƒ} tj|ƒz | j ƒWdtj| ƒX| j | j dd…<|r”x(|j ƒD]} | j ƒ} | s†qt| j| ƒqtWg} xV| j D]L} tjj|| ƒ}|tjj|ƒƒ|tjj|| ƒ|dd�}|dr | j|ƒq Wtdd„| Dƒ|||d �| S) Nr)Úmkpath)Ú copy_file)ÚFileListr)ÚupdatecSsg|]}|jƒjdƒr|‘qS)z.py)r+Úendswith)Ú.0ÚfnrFrFrGú sz$copydir_run_2to3..)r¿r½rÀ)Zdistutils.dir_utilrÃZdistutils.file_utilrÄZdistutils.filelistrÅr$ÚgetcwdÚchdirÚfindallZallfilesr¾Ú splitlinesrqZprocess_template_linerOrPÚdirnamersrÂ)ÚsrcÚdestÚtemplater¿r½rÀrÃrÄrÅZfilelistrNÚlineZcopiedÚfilenameZoutnameÚresrFrFrGÚcopydir_run_2to3ûs4        rÖc@s eZdZdZdZdZdd„ZdS)Ú Mixin2to3NcCst||j|j|jƒS)N)rÂr¿r½rÀ)rµr¾rFrFrGrÂ,szMixin2to3.run_2to3)rzrºr»r¿r½rÀrÂrFrFrFrGr×sr×)rf)Nrr)rrNNrrN)NNN)NNNN)"r$r1Úimportlib.utilr¡rir&Zdistutils.errorsrZdistutils.dep_utilrZdistutils.spawnrrErrrHrSrWrYr]rerhrkrlrmrnrxr�r�r¬r±rÂrÖr×rFrFrFrGÚs>     ]  =