
    =Og(R                        	 d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZ d Zd Zd	 Zd
 Zd ad Zd ZddZdxaxaad Zd ZddZd Z	 	 	 	 ddZd ZddZ 	 	 ddZ! G d d          Z"dS )    N)DistutilsPlatformError)newer)spawn)log)DistutilsByteCompileErrorc                     	 t           j        dk    rrdt          j                                        v rdS dt          j                                        v rdS dt          j                                        v rdS t          j        S dt           j        v rt           j        d         S t           j        d	k    st          t           d
          st          j        S t          j                    \  } }}}}|                                 	                    dd          } |	                    dd          }|	                    dd          }| d d         dk    r| d|S | d d         dk    rQ|d         dk    rDd} dt          |d                   dz
  |dd          fz  }ddd}|d|t          j                 z  z  }n| d d         dk    rddlm}  |            S | d d         d k    rMd } t          j        d!t          j                  }|                    |          }|r|                                }nI| d d         d"k    r;dd l}	dd l}
|	                    |
j                                        | ||          \  } }}| d|d|S )#Nntamd64	win-amd64z(arm)	win-arm32z(arm64)z	win-arm64_PYTHON_HOST_PLATFORMposixuname/  _-   linuxsunosr   5solarisz%d.%s      32bit64bit)il    z.%saix)aix_platform   cygwinz[\d.]+darwin)osnamesysversionlowerplatformenvironhasattrr   replaceintmaxsize_aix_supportr   recompileASCIImatchgroup_osx_supportdistutils.sysconfigget_platform_osx	sysconfigget_config_vars)osnamehostreleaser&   machinebitnessr   rel_remr4   	distutilss              '/usr/lib64/python3.11/distutils/util.pyget_host_platformrB      s   & 
w$ck''))));ck''))));))++++;| "*,,z122	w'W!5!5 | 13

-VT7GW \\^^##C,,Fooc3''Gooc3''GbqbzW "6677++	w		1:FWQZ1!4gabbk BBG #*wGGGuws{333G	u		------|~~	x		Y11LL!! 	 ggiiG	x		00000000#/#@#@(1(;(K(K(M(M(.$B $B   ''22    c                      t           j        dk    rFdddd} |                     t           j                            d                    pt	                      S t	                      S )Nr	   win32r   r   )x86x64armVSCMD_ARG_TGT_ARCH)r#   r$   getr)   rB   )TARGET_TO_PLATs    rA   get_platformrL   c   s_    	w$
 

 !!"*..1E"F"FGG^K\K^K^^ """rC   c                 N   	 t           j        dk    r| S | s| S | d         dk    rt          d| z            | d         dk    rt          d| z            |                     d          }d|v r|                    d           d|v |st           j        S t          j        j        | S )Nr   r   zpath '%s' cannot be absolutezpath '%s' cannot end with '/'.)r#   sep
ValueErrorsplitremovecurdirpathjoin)pathnamepathss     rA   convert_pathrY   n   s     
v}} {c7(BCCC|s88CDDDNN3E
,,S ,, y7<rC   c                    	 t           j        dk    rgt           j                            |          s t           j                            | |          S t           j                            | |dd                    S t           j        dk    rXt           j                            |          \  }}|d         dk    r
|dd          }t           j                            | |          S t          dt           j        z            )Nr      r	   r   \z!nothing known about platform '%s')r#   r$   rU   isabsrV   
splitdriver   )new_rootrW   driverU   s       rA   change_rootra      s    
 
w'w}}X&& 	87<<(3337<<(122,777	D**8447d??8Dw||Hd+++ %%H27%RSSSrC   c                  X   	 t           rd S t          j        dk    rddt          j        vrV	 dd l} |                     t          j                              d         t          j        d<   n# t          t          f$ r Y nw xY wdt          j        vrt                      t          j        d<   da d S )Nr   HOMEr   r   PLATr[   )
_environ_checkedr#   r$   r)   pwdgetpwuidgetuidImportErrorKeyErrorrL   )rf   s    rA   check_environrk      s      	w'fBJ66	JJJ!$bikk!:!:1!=BJvX& 	 	 	 D	
 RZ)^^
6s   =A( (A<;A<c                     	 t                       |fd}	 t          j        d||           S # t          $ r}t	          d|z            d }~ww xY w)Nc                     |                      d          }||v rt          ||                   S t          j        |         S )Nr[   )r3   strr#   r)   )r2   
local_varsvar_names      rA   _substzsubst_vars.<locals>._subst   s<    ;;q>>z!!z(+,,,:h''rC   z\$([a-zA-Z_][a-zA-Z_0-9]*)zinvalid variable '$%s')rk   r/   subrj   rQ   )sro   rq   vars       rA   
subst_varsru      sv     OOO", ( ( ( (9v3VQ??? 9 9 91C78889s   , 
AAAerror: c                 &    |t          |           z   S N)rn   )excprefixs     rA   grok_environment_errorr{      s     CHHrC   c                      t          j        dt          j        z            at          j        d          at          j        d          ad S )Nz[^\\\'\"%s ]*z'(?:[^'\\]|\\.)*'z"(?:[^"\\]|\\.)*")r/   r0   string
whitespace_wordchars_re
_squote_re
_dquote_re rC   rA   _init_regexr      s>    J/&2CCDDM011J011JJJrC   c                 $   	 t           t                       |                                 } g }d}| rt                               | |          }|                                }|t          |           k    r|                    | d |                    n}| |         t          j        v r=|                    | d |                    | |d          	                                } d}n | |         dk    r| d |         | |dz   d          z   } |dz   }n| |         dk    rt                              | |          }n@| |         dk    rt                              | |          }nt          d| |         z            |t          d| |         z            |                                \  }}| d |         | |dz   |dz
           z   | |d          z   } |                                dz
  }|t          |           k    r|                    |            n| |S )	Nr   r\   r[   '"z!this can't happen (bad char '%c')z"bad string (mismatched %s quotes?)r   )r   r   stripr2   endlenappendr}   r~   lstripr   r   RuntimeErrorrQ   span)rs   wordsposr?   r   begs         rA   split_quotedr      s    kmmm			AE
C
 "3''eegg#a&&==LL4C4!!!S6V&&&LL4C4!!!#$$  ACCsVt^^$3$!CEFF)#Aa%CC v}}$$Q,,33$$Q,,"#F3#OPPPy !E#!NOOOJS#$3$!CE#a%K.(1STT72A%%''A+C#a&&==LLOOOE  "H LrC   c                     	 |&| j         |}|dd          dk    r|dd         dz   }t          j        |           |s | |  d S d S )Nz,)r   ))__name__r   info)funcargsmsgverbosedry_runs        rA   executer   !  sp     {tt,rss8tad)c/CHSMMM d rC   c                 h    	 |                                  } | dv rdS | dv rdS t          d|           )N)yyesttrueon1r[   )nnoffalseoff0r   zinvalid truth value )r'   rQ   )vals    rA   	strtoboolr   4  sM     ))++C
222q	5	5	5qjSS:;;;rC   r[   c                 @   	 dd l }t          j        rt          d          |d}|s	 ddlm}	  |	d          \  }
}n## t          $ r ddlm} d  |d          }}
Y nw xY wt          j	        d|           |s|
t          j        |
d          }nt          |d          }|5  |                    d	           |                    d
                    t          t           |                     dz              |                    d|d|d|d|d|d           d d d            n# 1 swxY w Y   t"          j        }t          j        g}|                    |                                           |                    d| d           |                    |           t/          ||           t1          t          j        |fd|z  |           d S ddlm} | D ]@}|dd          dk    r|dk    r,|dk    rdn|}t8          j                            ||          }nt8          j                            |          }|}|rG|d t?          |                   |k    rtA          d|d|          |t?          |          d          }|r t          j!                            ||          }t          j!        "                    |          }|rO|stG          ||          r't          j	        d||           |s ||||           *t          j$        d||           Bd S )Nr   zbyte-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=z, force=z,
             prefix=z, base_dir=z,
             verbose=z$, dry_run=0,
             direct=1)
z	-Wignore:z:DeprecationWarning)r   zremoving %s)r0   r   )optimizationzinvalid prefix: filename z doesn't start with zbyte-compiling %s to %sz%skipping byte-compilation of %s to %s)%
subprocessr%   dont_write_bytecoder   tempfiler   ri   r   r   r   r#   fdopenopenwriterV   mapreprr@   _DEPRECATION_MESSAGE
executableextend"_optim_args_from_interpreter_flagsr   r   r   rS   
py_compiler0   	importlibutilcache_from_sourcer   rQ   rU   basenamer   debug)py_filesoptimizeforcerz   base_dirr   r   directr   r   	script_fdscript_namer   scriptr   cmdr0   fileoptcfiledfile
cfile_bases                         rA   byte_compiler   D  s"   
>   G'(EFFF ~  Z0	;(((((('.wu~~$Y 	; 	; 	;'''''''+VVE]]YYY	; 	7EEE  	4$9c22k3// 4 4    & UZZD((;(;<<uDEEE
 xx'''3 4 4 4+4 4 4 4 4 4 4 4 4 4 4 4 4 4 48 ,~

:@@BBCCC

7s777888

;c7####	K>=;+F	! 	! 	! 	! 	! 	! 	'&&&&&  	0  	0DBCCyE!! 
 1}}$MMbbx!88s 9 , , "88>>E ,V%//$*"ddFF&, - - -c&kkll+ 6Xu55))%00J 0 0E$.. 0H6jIII" 4eU333IE"J0 0 0? 	0  	0s"   > AA"A9D''D+.D+c                 \    	 |                      d          }d}|                    |          S )N
z	
        )rR   rV   )headerlinesrP   s      rA   rfc822_escaper     s/     LLE
C88E??rC   c                     	 | sd S ddl m}m}  G d d|          }| |d          } |||          }|                    | d           d S )	Nr   )RefactoringToolget_fixers_from_packagec                        e Zd Zd Zd Zd ZdS )*run_2to3.<locals>.DistutilsRefactoringToolc                 *    t          j        |g|R   d S rx   )r   error)selfr   r   kws       rA   	log_errorz4run_2to3.<locals>.DistutilsRefactoringTool.log_error       Ic!D!!!!!!rC   c                 *    t          j        |g|R   d S rx   )r   r   r   r   r   s      rA   log_messagez6run_2to3.<locals>.DistutilsRefactoringTool.log_message  s     HS 4      rC   c                 *    t          j        |g|R   d S rx   )r   r   r   s      rA   	log_debugz4run_2to3.<locals>.DistutilsRefactoringTool.log_debug  r   rC   N)r   
__module____qualname__r   r   r   r   rC   rA   DistutilsRefactoringToolr     sA        	" 	" 	"	! 	! 	!	" 	" 	" 	" 	"rC   r   zlib2to3.fixes)optionsT)r   )lib2to3.refactorr   r   refactor)filesfixer_namesr   explicitr   r   r   rs           rA   run_2to3r     s    8   JIIIIIII" " " " "? " " " --o>>  g>>>AJJuDJ!!!!!rC   c                 4   	 ddl m} ddlm} ddlm}  |            }	t          j                    }
t          j        |            	 |		                                 t          j        |
           n# t          j        |
           w xY w|	j
        |	j        d d <   |rC|                                D ].}|                                }|s|	                    |           /g }|	j        D ]}t          j                            ||          } |t          j                            |                      |t          j                            | |          |d          }|d         r|                    |           t'          d |D             |||           |S )	Nr   )mkpath)	copy_file)FileListr[   )updatec                 `    g | ]+}|                                                     d           )|,S )r   )r'   endswith).0fns     rA   
<listcomp>z$copydir_run_2to3.<locals>.<listcomp>  s3    @@@RRXXZZ%8%8%?%?@b@@@rC   )r   r   r   )distutils.dir_utilr   distutils.file_utilr   distutils.filelistr   r#   getcwdchdirfindallallfilesr   
splitlinesr   process_template_linerU   rV   dirnamer   r   )srcdesttemplater   r   r   r   r   r   filelistrT   linecopiedfilenameoutnameress                   rA   copydir_run_2to3r     s   
 *)))))------++++++xzzHY[[FHSMMM
 )HN111 1'')) 	1 	1D::<<D!**40000FN * *',,tX..rww''(((iS(33WQGGGq6)6==)))@@6@@@$gJ J J JMs   A/ /Bc                   "    e Zd Z	 dZdZdZd ZdS )	Mixin2to3Nc                 D    t          || j        | j        | j                  S rx   )r   r   r   r   )r   r   s     rA   r   zMixin2to3.run_2to31  s    t/t}MMMrC   )r   r   r   r   r   r   r   r   rC   rA   r  r  !  sB        ( K G HN N N N NrC   r  )rv   )Nr   r   )r   r   NNr[   r   N)NNN)NNNN)#r#   r/   importlib.utilr   r}   r%   r@   distutils.errorsr   distutils.dep_utilr   distutils.spawnr   r   r   rB   rL   rY   ra   re   rk   ru   r{   r   r   r   r   r   r   r   r   r   r   r  r  r   rC   rA   <module>r     s   
			 				      



     3 3 3 3 3 3 $ $ $ $ $ $ ! ! ! ! ! !       6 6 6 6 6 6N3 N3 N3`	# 	# 	#     8T T T,    69 9 92    +/ . .
Z2 2 28 8 8z   &< < <" %&(,%&	S0 S0 S0 S0n  " " " "6 <@,0   BN N N N N N N N N NrC   