U :eQ@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 CstjdkrFdtjkrdSdtjkr.dSdtjkr@dStjSdtjkrZtjdStjd ksnttd sttjSt\}}}}}| d d }| d d}| d d}|dddkrd||fS|dddkr,|ddkrd}dt |dd|ddf}ddd}|d|tj 7}n|dddkrLd|||fS|dd d!krd!}t d"t j}||}|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.%sZaixz%s-%s.%scygwinz[\d.]+darwinz%s-%s-%s)osnamesysversionlowerplatformenvironhasattrr replaceintmaxsizerecompileASCIImatchgroup _osx_supportZdistutils.sysconfigZget_platform_osxZ sysconfigZget_config_vars) ZosnamehostreleasermachineZbitnessZrel_remr) distutilsr/3/usr/local/python38/lib/python3.8/distutils/util.pyget_host_platformsR           r1cCs8tjdkr.dddd}|tjdp,tStSdS)Nrwin32rr )Zx86Zx64ZarmZVSCMD_ARG_TGT_ARCH)rrgetrr1)ZTARGET_TO_PLATr/r/r0 get_platformas r4cCsztjdkr|S|s|S|ddkr.td||ddkrFtd||d}d|krd|dqP|sntjStjj|S)Nr rzpath '%s' cannot be absolutezpath '%s' cannot end with '/'.)rsep ValueErrorsplitremovecurdirpathjoin)pathnamepathsr/r/r0 convert_pathls       r@cCstjdkrZdriver<r/r/r0 change_roots     rEc CsxtrdStjdkrZdtjkrZz$ddl}|tdtjd<Wnttfk rXYnXdtjkrpt tjd<dadS)Nr HOMErrZPLATrA) _environ_checkedrrrpwdgetpwuidgetuid ImportErrorKeyErrorr4)rHr/r/r0 check_environs   rMc CsVt|fdd}ztd||WStk rP}ztd|W5d}~XYnXdS)NcSs,|d}||krt||Stj|SdS)NrA)r(strrr)r' local_varsZvar_namer/r/r0_substs  zsubst_vars.._substz\$([a-zA-Z_][a-zA-Z_0-9]*)zinvalid variable '$%s')rMr$subrLr8)srOrPvarr/r/r0 subst_varss  rTerror: cCs |t|SN)rN)excprefixr/r/r0grok_environment_errorsrYcCs(tdtjatdatdadS)Nz [^\\\'\"%s ]*z'(?:[^'\\]|\\.)*'z"(?:[^"\\]|\\.)*")r$r%string whitespace _wordchars_re _squote_re _dquote_rer/r/r/r0 _init_regexs r_cCstdkrt|}g}d}|rt||}|}|t|krZ||d|q||tjkr||d|||d }d}n||dkr|d|||dd}|d}n||dkrt ||}n*||dkrt ||}nt d|||dkr t d|||\}}|d|||d|d||d}|d}|t|kr||qq|S) NrrBrA'"z!this can't happen (bad char '%c')z"bad string (mismatched %s quotes?)r)r\r_stripr'endlenappendrZr[lstripr]r^ RuntimeErrorr8span)rRZwordsposr-rcZbegr/r/r0 split_quoteds@        ,   rjcCsP|dkr6d|j|f}|dddkr6|ddd}t||sL||dS)Nz%s%rz,)r))__name__rinfo)funcargsmsgverbosedry_runr/r/r0executes  rtcCs2|}|dkrdS|dkr dStd|fdS)N)yZyesttrueZon1rA)nnofZfalseZoff0rzinvalid truth value %r)rr8)valr/r/r0 strtobool2s r~rAc CsTddl}tjrtd|dkr*do(|dk}|s@zddlm} | d\} } Wn.tk rzddlm} d| d} } YnXt d| |s| dk rt | d} n t | d} | B| d | d tt|d | d |||||fW5QRXtjg}|||| t||d tt j| fd| |d nddlm}|D]}|dddkrjqP|dkr|dkrdn|}tjj||d}n tj|}|}|r|dt||krtd||f|t|d}|rt j||}t j |}|rP|st!||r>t d|||sL||||nt"d||qPdS)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) )rsz 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_bytecodertempfilerrKrrrnrfdopenopenwriter=maprepr executableextend"_optim_args_from_interpreter_flagsrerrtr: py_compiler% importlibutilcache_from_sourcerdr8r<basenamerdebug)Zpy_filesoptimizeforcerXbase_dirrrrsZdirectrrZ script_fdZ script_namerZscriptcmdr%fileoptcfiledfileZ cfile_baser/r/r0 byte_compileBsx$               rcCs|d}d}||S)N z )r9r=)headerlinesr7r/r/r0 rfc822_escapes rcCsV|sdSddlm}m}Gddd|}|dkr8|d}|||d}|j|dddS) Nr)RefactoringToolget_fixers_from_packagec@s$eZdZddZddZddZdS)z*run_2to3..DistutilsRefactoringToolc_stj|f|dSrV)rerror)selfrqrpkwr/r/r0 log_errorsz4run_2to3..DistutilsRefactoringTool.log_errorcWstj|f|dSrV)rrnrrqrpr/r/r0 log_messagesz6run_2to3..DistutilsRefactoringTool.log_messagecWstj|f|dSrV)rrrr/r/r0 log_debugsz4run_2to3..DistutilsRefactoringTool.log_debugN)rm __module__ __qualname__rrrr/r/r/r0DistutilsRefactoringToolsrz lib2to3.fixes)optionsT)r)Zlib2to3.refactorrrZrefactor)files fixer_namesrexplicitrrrrr/r/r0run_2to3s  rc Csddlm}ddlm}ddlm}|} t} t|z | W5t| X| j | j dd<|r| D]} | } | sqr| | qrg} | j D]L} tj|| }|tj||tj|| |dd}|dr| |qtdd| D|||d | S) Nr)mkpath) copy_file)FileListrA)updatecSsg|]}|dr|qS)r)rendswith).0fnr/r/r0 sz$copydir_run_2to3..)rrr)Zdistutils.dir_utilrZdistutils.file_utilrZdistutils.filelistrrgetcwdchdirfindallZallfilesr splitlinesrbZprocess_template_liner<r=dirnamerer)srcdesttemplaterrrrrrZfilelistr;lineZcopiedfilenameZoutnameresr/r/r0copydir_run_2to3s:          rc@s eZdZdZdZdZddZdS) Mixin2to3NcCst||j|j|jSrV)rrrr)rrr/r/r0r-szMixin2to3.run_2to3)rmrrrrrrr/r/r/r0rsr)rU)Nrr)rrNNrArN)NNN)NNNN)#rr$importlib.utilrrZrZdistutils.errorsrZdistutils.dep_utilrZdistutils.spawnrr.rrr1r4r@rErGrMrTrYr\r]r^r_rjrtr~rrrrrr/r/r/r0sL     O   =    !