a [dgQ@sddlZddlZddlZddlZddlZddlmZddlm Z ddl m Z ddl m Z ddlmZddlmZd d Zd d Zd dZddZdaddZddZd*ddZdaaaddZddZd+ddZddZd,d d!Z d"d#Z!d-d$d%Z"d.d&d'Z#Gd(d)d)Z$dS)/N)DistutilsPlatformError)newer)spawn)log)DistutilsByteCompileError)"_optim_args_from_interpreter_flagsc CstjdkrFdtjvrdSdtjvr.dSdtjvr@dStjSdtjvrZtjdStjd ksnttd sttjSt\}}}}}| d d }| d d}| d d}|dddkrd||fS|dddkr,|ddkrd}dt |dd|ddf}ddd}|d|tj 7}n|dddkrVdd l 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.%sZaixr) aix_platformcygwinz[\d.]+darwinz%s-%s-%s)osnamesysversionlowerplatformenvironhasattrr replaceintmaxsizeZ py38compatrrecompileASCIImatchgroup _osx_supportZdistutils.sysconfigZget_platform_osxZ sysconfigZget_config_vars) ZosnamehostreleasermachineZbitnessrZrel_remr, distutilsr2D/usr/local/lib/python3.9/site-packages/setuptools/_distutils/util.pyget_host_platformsP             r4cCs8tjdkr.dddd}|tjdp,tStSdS)Nr win32r r )Zx86Zx64ZarmZVSCMD_ARG_TGT_ARCH)rrgetr"r4)ZTARGET_TO_PLATr2r2r3 get_platformds r7cCsztjdkr|S|s|S|ddkr.td||ddkrFtd||d}d|vrd|dqP|sntjStjj|S)Nrrzpath '%s' cannot be absolutezpath '%s' cannot end with '/'.)rsep ValueErrorsplitremovecurdirpathjoin)pathnamepathsr2r2r3 convert_pathos       rCcCstjdkr._substz\$([a-zA-Z_][a-zA-Z_0-9]*)zinvalid variable '$%s')rPr'subrOr;)srRrSvarr2r2r3 subst_varss  rWerror: cCs |t|SN)rQ)excprefixr2r2r3grok_environment_errorsr\cCs(tdtjatdatdadS)Nz [^\\\'\"%s ]*z'(?:[^'\\]|\\.)*'z"(?:[^"\\]|\\.)*")r'r(string whitespace _wordchars_re _squote_re _dquote_rer2r2r2r3 _init_regexs rbcCstdurt|}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) NrrDr'"z!this can't happen (bad char '%c')z"bad string (mismatched %s quotes?)r)r_rbstripr*endlenappendr]r^lstripr`ra RuntimeErrorr;span)rUwordsposr0rfZbegr2r2r3 split_quoteds>        ,   rncCsP|dur6d|j|f}|dddkr6|ddd}t||sL||dS)Nz%s%rz,)r))__name__rinfo)funcargsmsgverbosedry_runr2r2r3execute"s  rxcCs2|}|dvrdS|dvr dStd|fdS)N)yZyesttrueZon1r)nnofZfalseZoff0rzinvalid truth value %r)r r;)valr2r2r3 strtobool5s rc Cshddl}tjrtd|dur*do(|dk}|sTzddlm} | d\} } Wn,tyxddlm} d| d} } Yn0t d| |s| durt | d} n t | d} | L| d | d tt|d | d |||||fWdn1s0Ytjg}|t|| t||d tt j| fd| |d nddlm}|D]}|dddkr~qd|dkr|dkrdn|}tjj||d}n tj|}|}|r|dt||krtd||f|t|d}|r t j||}t j |}|rd|s0t!||rRt d|||s`||||nt"d||qddS)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) )rwz 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_bytecodertempfilerrNrrrrrfdopenopenwriter@maprepr executableextendrrhrrxr= py_compiler( importlibutilcache_from_sourcergr;r?basenamerdebug)Zpy_filesoptimizeforcer[base_dirrvrwZdirectrrZ script_fdZ script_namerZscriptcmdr(fileoptcfiledfileZ cfile_baser2r2r3 byte_compileEst$         &        rcCs|d}d}||S)N z )r<r@)headerlinesr:r2r2r3 rfc822_escapes rcCsV|sdSddlm}m}Gddd|}|dur8|d}|||d}|j|dddS) Nr)RefactoringToolget_fixers_from_packagec@s$eZdZddZddZddZdS)z*run_2to3..DistutilsRefactoringToolc_stj|g|RdSrY)rerror)selfrurtkwr2r2r3 log_errorsz4run_2to3..DistutilsRefactoringTool.log_errorcWstj|g|RdSrY)rrrrrurtr2r2r3 log_messagesz6run_2to3..DistutilsRefactoringTool.log_messagecWstj|g|RdSrY)rrrr2r2r3 log_debugsz4run_2to3..DistutilsRefactoringTool.log_debugN)rq __module__ __qualname__rrrr2r2r2r3DistutilsRefactoringToolsrz lib2to3.fixes)optionsT)r)Zlib2to3.refactorrrZrefactor)files fixer_namesrexplicitrrrrr2r2r3run_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)FileListr)updatecSsg|]}|dr|qS)r)r endswith).0fnr2r2r3 z$copydir_run_2to3..)rrr)Zdistutils.dir_utilrZdistutils.file_utilrZdistutils.filelistrrgetcwdchdirfindallZallfilesr splitlinesreZprocess_template_liner?r@dirnamerhr)srcdesttemplaterrrrrrZfilelistr>lineZcopiedfilenameZoutnameresr2r2r3copydir_run_2to3s2        rc@s eZdZdZdZdZddZdS) Mixin2to3NcCst||j|j|jSrY)rrrr)rrr2r2r3r0szMixin2to3.run_2to3)rqrrrrrrr2r2r2r3r sr)rX)Nrr)rrNNrrN)NNN)NNNN)%rr'importlib.utilrr]rZdistutils.errorsrZdistutils.dep_utilrZdistutils.spawnrr1rrZ py35compatrr4r7rCrHrJrPrWr\r_r`rarbrnrxrrrrrrr2r2r2r3sF      P   =    !