a 9dgQ@sddlZddlZddlZddlZddlZddlmZddlm Z ddl m Z ddl m Z ddlmZddZd d Zd d Zd dZdaddZddZd)ddZdaaaddZddZd*ddZddZd+dd Zd!d"Zd,d#d$Z d-d%d&Z!Gd'd(d(Z"dS).N)DistutilsPlatformError)newer)spawn)log)DistutilsByteCompileErrorc CstjdkrFdtjvrdSdtjvr.dSdtjvr@dStjSdtjvrZtjdStjd ksnttd sttjSt\}}}}}| d d }| d d}| d d}|dddkrd||fS|dddkr,|ddkrd}dt |dd|ddf}ddd}|d|tj 7}n|dddkrPddl m }|S|dd d!krd!}td"tj}||}|r|}n>|dd d#krddl} ddl} | | j|||\}}}d$|||fS)%NntZamd64 win-amd64z(arm) win-arm32z(arm64)z win-arm64Z_PYTHON_HOST_PLATFORMposixuname/ _-linuxz%s-%sZsunosr5Zsolarisz%d.%sZ32bitZ64bit)ilz.%sZaix) aix_platformcygwinz[\d.]+darwinz%s-%s-%s)osnamesysversionlowerplatformenvironhasattrr replaceintmaxsizeZ _aix_supportrrecompileASCIImatchgroup _osx_supportZdistutils.sysconfigZget_platform_osxZ sysconfigZget_config_vars) ZosnamehostreleasermachineZbitnessrZrel_remr* distutilsr0*/usr/local/lib/python3.9/distutils/util.pyget_host_platformsP            r2cCs8tjdkr.dddd}|tjdp,tStSdS)Nrwin32rr )Zx86Zx64ZarmZVSCMD_ARG_TGT_ARCH)rrgetr r2)ZTARGET_TO_PLATr0r0r1 get_platformbs r5cCsztjdkr|S|s|S|ddkr.td||ddkrFtd||d}d|vrd|dqP|sntjStjj|S)Nr rzpath '%s' cannot be absolutezpath '%s' cannot end with '/'.)rsep ValueErrorsplitremovecurdirpathjoin)pathnamepathsr0r0r1 convert_pathms       rAcCstjdkr splitdriver)Znew_rootr?driver=r0r0r1 change_roots     rGc CsvtrdStjdkrXdtjvrXz$ddl}|tdtjd<WnttfyVYn0dtjvrnt tjd<dadS)Nr HOMErrZPLATrB) _environ_checkedrrr pwdgetpwuidgetuid ImportErrorKeyErrorr5)rJr0r0r1 check_environs   rOc CsXt|fdd}ztd||WStyR}ztd|WYd}~n d}~00dS)NcSs,|d}||vrt||Stj|SdS)NrB)r)strrr )r( local_varsZvar_namer0r0r1_substs  zsubst_vars.._substz\$([a-zA-Z_][a-zA-Z_0-9]*)zinvalid variable '$%s')rOr%subrNr9)srQrRvarr0r0r1 subst_varss  rVerror: cCs |t|SN)rP)excprefixr0r0r1grok_environment_errorsr[cCs(tdtjatdatdadS)Nz [^\\\'\"%s ]*z'(?:[^'\\]|\\.)*'z"(?:[^"\\]|\\.)*")r%r&string whitespace _wordchars_re _squote_re _dquote_rer0r0r0r1 _init_regexs racCstdurt|}g}d}|rt||}|}|t|krZ||d|q||tjvr||d|||d }d}n||dkr|d|||dd}|d}n||dkrt ||}n*||dkrt ||}nt d|||dur t d|||\}}|d|||d|d||d}|d}|t|kr||qq|S) NrrCrB'"z!this can't happen (bad char '%c')z"bad string (mismatched %s quotes?)r)r^rastripr(endlenappendr\r]lstripr_r` RuntimeErrorr9span)rTwordsposr.reZbegr0r0r1 split_quoteds>        ,   rmcCsP|dur6d|j|f}|dddkr6|ddd}t||sL||dS)Nz%s%rz,)r))__name__rinfo)funcargsmsgverbosedry_runr0r0r1execute s  rwcCs2|}|dvrdS|dvr dStd|fdS)N)yZyesttrueZon1rB)nnofZfalseZoff0rzinvalid truth value %r)rr9)valr0r0r1 strtobool3s rrBc Csjddl}tjrtd|dur*do(|dk}|sVzddlm} | d\} } Wn,tyxddlm} d| d} } Yn0t d| |s| durt | d} n t | d} | L| d | d tt|d | d |||||fWdn1s0Ytjg}|||| t||d tt j| fd| |d nddlm}|D]}|dddkrqf|dkr|dkrdn|}tjj||d}n tj|}|}|r|dt||krtd||f|t|d}|rt j||}t j |}|rf|s2t!||rTt d|||sb||||nt"d||qfdS)Nrzbyte-compiling is disabled.F)mkstemp.py)mktempz$writing byte-compilation script '%s'wz2from distutils.util import byte_compile files = [ z, z] z byte_compile(files, optimize=%r, force=%r, prefix=%r, base_dir=%r, verbose=%r, dry_run=0, direct=1) )rvz removing %s)r&r ) optimizationz1invalid prefix: filename %r doesn't start with %rzbyte-compiling %s to %sz%skipping byte-compilation of %s to %s)# subprocessrdont_write_bytecodertempfilerrMrrrqrfdopenopenwriter>maprepr executableextend"_optim_args_from_interpreter_flagsrgrrwr; py_compiler& importlibutilcache_from_sourcerfr9r=basenamerdebug)Zpy_filesoptimizeforcerZbase_dirrurvZdirectrrZ script_fdZ script_namerZscriptcmdr&fileoptcfiledfileZ cfile_baser0r0r1 byte_compileCst$         &       rcCs|d}d}||S)N z )r:r>)headerlinesr8r0r0r1 rfc822_escapes rcCsV|sdSddlm}m}Gddd|}|dur8|d}|||d}|j|dddS) Nr)RefactoringToolget_fixers_from_packagec@s$eZdZddZddZddZdS)z*run_2to3..DistutilsRefactoringToolc_stj|g|RdSrX)rerror)selfrtrskwr0r0r1 log_errorsz4run_2to3..DistutilsRefactoringTool.log_errorcWstj|g|RdSrX)rrqrrtrsr0r0r1 log_messagesz6run_2to3..DistutilsRefactoringTool.log_messagecWstj|g|RdSrX)rrrr0r0r1 log_debugsz4run_2to3..DistutilsRefactoringTool.log_debugN)rp __module__ __qualname__rrrr0r0r0r1DistutilsRefactoringToolsrz lib2to3.fixes)optionsT)r)Zlib2to3.refactorrrZrefactor)files fixer_namesrexplicitrrrrr0r0r1run_2to3s  rc Csddlm}ddlm}ddlm}|} t} t|z| Wt| n t| 0| j | j dd<|r| D]} | } | sq|| | q|g} | j D]L} tj|| }|tj||tj|| |dd}|dr| |qtdd| D|||d | S) Nr)mkpath) copy_file)FileListrB)updatecSsg|]}|dr|qS)r)rendswith).0fnr0r0r1 z$copydir_run_2to3..)rrr)Zdistutils.dir_utilrZdistutils.file_utilrZdistutils.filelistrrgetcwdchdirfindallZallfilesr splitlinesrdZprocess_template_liner=r>dirnamergr)srcdesttemplaterrrrrrZfilelistr<lineZcopiedfilenameZoutnameresr0r0r1copydir_run_2to3s2        rc@s eZdZdZdZdZddZdS) Mixin2to3NcCst||j|j|jSrX)rrrr)rrr0r0r1r.szMixin2to3.run_2to3)rprrrrrrr0r0r0r1rsr)rW)Nrr)rrNNrBrN)NNN)NNNN)#rr%importlib.utilrr\rZdistutils.errorsrZdistutils.dep_utilrZdistutils.spawnrr/rrr2r5rArGrIrOrVr[r^r_r`rarmrwrrrrrrr0r0r0r1sD     P   =    !