
    dafy                         	 d dl Z d dlZd dlZd dlmZ g dZdhZddddd	d
dddddddddddddddddddddddddd	d
dddddddddddddZe j                  dk(  r	ed   ed<   ned   ed<   d Z	 e	       duZ
e
r!eddddddd d!d"d"d#d#d$d%d d!d&d&d'd'd$d%d d!d(z  Zd!Zej                  j                         d    Zej                  d     d)ej                  d*    Zej                  d     ej                  d*    Ze j$                  j'                  ej(                        Ze j$                  j'                  ej,                        Ze j$                  j'                  ej0                        Ze j$                  j'                  ej4                        Z ej8                         Zdad+adZ d,Z!d-Z"d.Z#d/ Z$ejJ                  r,e j$                  jM                   e$ejJ                              Z'n e$ e jP                               Z' e)ed0d      Z*e*re*Z'e j                  dk(  r" e$e'      jW                   e$e d1            reZ'd2e jX                  v r e$e jX                  d2         Z'dVd3Z- e-       Z.e.rd4D ]  Z/ee/   Z/e/d5   e/d6<   d7e/d5<   d8e/d9<    [/d: Z0d; Z1d< Z2d= Z3d> Z4d? Z5dWdAZ6dB Z7dC Z8dD Z9dE Z:dF Z;dVdGZ<dH Z=dI Z>dJ Z? e5       dd@fdKZ@ e5       dd@fdLZAdM ZBdN ZCdO ZDdP ZEdQ ZFdR ZGdS ZHdT ZIeJdUk(  r eI        yy)X    N)realpath)get_config_h_filenameget_config_varget_config_varsget_makefile_filenameget_pathget_path_names	get_pathsget_platformget_python_versionget_scheme_namesparse_config_hMACOSX_DEPLOYMENT_TARGETz6{installed_base}/{platlibdir}/python{py_version_short}z0{platbase}/{platlibdir}/python{py_version_short}z1{base}/lib/python{py_version_short}/site-packagesz>{platbase}/{platlibdir}/python{py_version_short}/site-packagesz;{installed_base}/include/python{py_version_short}{abiflags}z?{installed_platbase}/include/python{py_version_short}{abiflags}z
{base}/binz{base})stdlib
platstdlibpurelibplatlibincludeplatincludescriptsdataz{installed_base}/lib/pythonz{base}/lib/pythonz{installed_base}/include/pythonz{installed_base}/Libz
{base}/Libz{base}/Lib/site-packagesz{installed_base}/Includez{base}/Scripts)posix_prefix
posix_homent
posix_venvnt_venvr   r   venvr   c            	         t         j                  j                  dd       } | r| S t        j                  dv ry d }t         j
                  dk(  r,t         j                  j                  d      xs d} ||d      S t        j                  dk(  rPt        j                  r@ |dd	t        j                  t        j                  d
    dt        j                  d          S  |dd      S )NPYTHONUSERBASE>   wasivxworks
emscriptenc                  t    t         j                  j                  t        j                  j                  |        S N)ospath
expanduserjoin)argss    $/root/Python-3.12.4/Lib/sysconfig.pyjoinuserz_getuserbase.<locals>.joinuserw   s$    ww!!"'',,"566    r   APPDATA~PythondarwinLibraryr   .   z.local)r%   environgetsysplatformname
_frameworkversion_info)env_baser+   bases      r*   _getuserbaser=   n   s    zz~~.5H ||887 
ww$zz~~i(/Ch''
||xCNNY++A./q1A1A!1D0EFH 	H C""r,   z({userbase}/Python{py_version_nodot_plat}z6{userbase}/Python{py_version_nodot_plat}/site-packagesz0{userbase}/Python{py_version_nodot_plat}/Includez0{userbase}/Python{py_version_nodot_plat}/Scriptsz
{userbase})r   r   r   r   r   r   r   z0{userbase}/{platlibdir}/python{py_version_short}z5{userbase}/lib/python{py_version_short}/site-packagesz+{userbase}/include/python{py_version_short}z{userbase}/binz{userbase}/lib/pythonz#{userbase}/lib/python/site-packages)nt_user
posix_userosx_framework_userr2   r3   Fz"([a-zA-Z][a-zA-Z0-9_]+)\s*=\s*(.*)z\$\(([A-Za-z][A-Za-z0-9_]*)\)z\${([A-Za-z][A-Za-z0-9_]*)}c                 <    	 t        |       S # t        $ r | cY S w xY wr$   )r   OSError)r&   s    r*   _safe_realpathrC      s%    ~ s   
 _homez\PCbuild_PYTHON_PROJECT_BASEc                     | dd l }|j                  dt        d       dD ]F  }t        j                  j                  t        j                  j                  t        d|            sF y y)	Nr   z.check_home argument is deprecated and ignored.   )
stacklevel)SetupzSetup.localModulesTF)warningswarnDeprecationWarningr%   r&   isfiler(   _PROJECT_BASE)
check_homerK   fns      r*   is_python_buildrR      s\    F(Q 	 	8& 77>>"'',,}iDE r,   )r   r   r   headersz{srcdir}/Includez{projectbase}/.r   c                     	  | j                   di |S # t        $ rE}	  | j                   di t        j                  cY d }~S # t        $ r t	        |       d w xY wd }~ww xY w)N )formatKeyErrorr%   r4   AttributeError)s
local_varsvars      r*   _subst_varsr\      se    5qxx%*%% 5	5188)bjj)) 	5 C5*4	55s%    	A"AA"AAA"c                 h    | j                         }|j                         D ]  \  }}||v r|| |<    y r$   )keysitems)target_dict
other_dicttarget_keyskeyvalues        r*   _extend_dictre     sA    ""$K &&( !
U+ C!r,   c                 f   i }|i }t        |t                      t        j                  dk(  r|ddiz  }t        |    j                         D ]b  \  }}t        j                  dv rt        j                  j                  |      }t        j                  j                  t        ||            ||<   d |S )Nr   
platlibdirlib)posixr   )
re   r   r%   r8   _INSTALL_SCHEMESr_   r&   r'   normpathr\   )schemevarsresrc   rd   s        r*   _expand_varsro   
  s    
C|()	ww$ |U++&v.446 >
U77o%GG&&u-E77##Kt$<=C> Jr,   c                      t         j                  dk(  rddddS t        j                  dk(  rt        j                  rddddS ddddS )	Nr   r   r>   )prefixhomeuserr0   r   r@   r?   )r%   r8   r6   r7   r9   rU   r,   r*   _get_preferred_schemesrt     s\    	ww$ 
 	

 ||xCNN$ (
 	
 ! r,   c                     | dk(  r"t         j                  t         j                  k7  ryt               |    }|t        vrt        | d|d      |S )Nrq   r   z
 returned z., which is not a valid scheme on this platform)r6   rq   base_prefixrt   rj   
ValueError)rc   rl   s     r*   get_preferred_schemerx   0  sZ    
h3::8#%c*F%%gZz *  
 	
 Mr,   c                      t        d      S )Nrq   )rx   rU   r,   r*   get_default_schemerz   <  s    ))r,   Tc                    	 dd l }|i }i }i }t        | t        j                         d      5 }|j	                         }d d d        D ]  }|j                  d      s|j                         dk(  r(|j                  t        |      }	|	sA|	j                  dd      \  }
}|j                         }|j                  dd      }d	|v r|||
<   	 |
t        v rt        t        |      }|||
<    t        |j                               }d
}t!        |      dkD  rt#        |      D ]  }||   }|j%                  t&        |      }|j%                  t(        |      }|r(|r&|j+                         |j+                         k  r|n|}	n|r|n|}	|	.|	j                  d      }
d}|
|v rt-        ||
         }no|
|v rd}nh|
t.        j0                  v rt.        j0                  |
   }nB|
|v r7|j                  d      r
|dd  |v rd}n#d|
z   |v rd}nt-        |d|
z            }ndx||
<   }|s||	j3                         d  }|d |	j+                          z   |z   }d	|v r|||<   8	 |t        v rt        t        |      }|||<   |j5                  |       |j                  d      s{|dd  |v s|dd  }||vs|||<   |r|||<   |j5                  |        t!        |      dkD  r|j7                         D ])  \  }}t9        |t,              s|j                         ||<   + |j;                  |       |S # 1 sw Y   xY w# t        $ r |j                  dd	      ||
<   Y w xY w# t        $ r |j                         ||<   Y 
w xY w)Nr   surrogateescape)encodingerrors# r3   rG   z$$$)CFLAGSLDFLAGSCPPFLAGSTFPY_   )reopenr6   getfilesystemencoding	readlines
startswithstripmatch_variable_rxgroupreplace_ALWAYS_STRrw   intlistr^   lentuplesearch_findvar1_rx_findvar2_rxstartstrr%   r4   endremover_   
isinstanceupdate)filenamerm   keep_unresolvedr   donenotdoneflineslinemnvtmpv	variablesrenamed_variablesr8   rd   m1m2founditemafterks                          r*   _parse_makefiler   @  s    |DG	h!:!:!<&
( +,   ??34::<2#5HH\4(771a=DAq	A99T2&Dd{
	 K'((AA
  DG- 2 W\\^$I :
i.1
)$ @	'DDME</B</Bb((*rxxz1BrB"}GGAJ9tAw<D'\!E"**_::a=D++.QR$55!g- %  #4	?3 &('DGd!!%%'(OE!*1779-4u<Ee|(-/#{2&0 0$'JE */DJ!((.??51 H(99#'8D#4/-2T

 #!&DJ   &A@	' i.1
H 

  1aggiDG 
 	KKK_ , " 3iic2DG3x  * 7).DJ7s/   L1L>M#1L;>M M #NNc                  x   	 t         r$t        j                  j                  t        d      S t        t        d      rdt         t        j                   } nd} t        t        j                  d      r | dt        j                  j                   z  } t        j                  j                  t        d      | d      S )NMakefileabiflagszconfig-config
_multiarch-r   )_PYTHON_BUILDr%   r&   r(   rO   hasattrr6   _PY_VERSION_SHORTr   implementationr   r   )config_dir_names    r*   r   r     s    *ww||M:66sJ#$5#6s||nE"s!!<0Qs11<<=>>77<<*OZHHr,   c            	          t        t        j                  dd      } t        j                  j                  ddt        j                   dt        j                   d|        S )Nr   r   _PYTHON_SYSCONFIGDATA_NAME_sysconfigdata__)getattrr6   r   r%   r4   r5   r   r7   )	multiarchs    r*   _get_sysconfigdata_namer     sL    **L"=I::>>$
#,,qa	{C r,   c                  @   	 dd l } i }t               }	 t        ||       t               }	 t        |d      5 }t        ||       d d d        t        r|d   |d	<   t               }d
t        j                  v r/dd l}|j                  |      }	||	_        |	t        j                   |<   dt#                dt$         }
t	        t        d      r|
dz  }
t'        j(                  |
d       t&        j*                  j-                  |
|dz         }t        |dd      5 }|j/                  d       |j/                  d       | j                  ||       d d d        t        ddd      5 }|j/                  |
       d d d        y # t        $ r3}d| }t	        |d      r| d|j
                   d}t        |      d }~ww xY w# 1 sw Y   zxY w# t        $ r3}d| }t	        |d      r| d|j
                   d}t        |      d }~ww xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nr   z,invalid Python installation: unable to open strerrorz ()zutf-8)r}   LDSHARED	BLDSHAREDr0   z
build/lib.r   gettotalrefcountz-pydebugT)exist_okz.pywutf8zB# system configuration generated and used by the sysconfig module
zbuild_time_vars = )streamzpybuilddir.txt)pprintr   r   rB   r   r   r   r   r   r   r   r6   r7   types
ModuleTypebuild_time_varsmodulesr   r   r%   makedirsr&   r(   write)r   rm   makefileemsgconfig_hr   r8   r   module
pybuilddirdestfiles               r*   _generate_posix_varsr     s   ED$&H$' %&H(W- 	$1d#	$  ,[ #$D3<<!!$'!%"Dln-Q/@.ABJs&'j 
KK
T*ww||Ju5H	hf	- &	 * 	+	$%d1%	& 
f	5 	
 i  <XJG1j!EAJJ<q)Ccl		$ 	$ <XJG1j!EAJJ<q)Ccl	F& & s]   E= G	 F<G	 6H"H=	F9.F44F9<GG	 		H.H  HHHc                     	 t               }t        |t               t               dgd      }|j                  }| j                  |       y )Nr   r   )r   
__import__globalslocalsr   r   )rm   r8   _tempr   s       r*   _init_posixr     s>    A"$DtWY3D2EqIE++OKK r,   c                 F   	 dd l }t        d      | d<   t        d      | d<   t        d      | d<   	 |j                         d   | d<   d	| d
<   t        | d<   t
        j                  j                  t        t        j                              | d<   d| d<   y # t        $ r Y Xw xY w)Nr   r   LIBDESTr   
BINLIBDESTr   	INCLUDEPY
EXT_SUFFIXz.exeEXEVERSIONBINDIRr   TZPATH)_impr   extension_suffixes
IndexError_PY_VERSION_SHORT_NO_DOTr%   r&   dirnamerC   r6   
executable)rm   r   s     r*   _init_non_posixr     s    5x(DO!,/D +D "446q9\ DK.DOWW__^CNN%CDDNDN  s   B 	B B c                    	 |i }dd l }|j                  d      }|j                  d      }	 | j                         }|s	 |S |j                  |      }|r5|j	                  dd      \  }}	 |t
        v rt        t        |      }|||<   n'|j                  |      }|rd||j	                  d      <   # t        $ r Y 9w xY w)Nr   z"#define ([A-Z][A-Za-z0-9_]+) (.*)
z&/[*] #undef ([A-Z][A-Za-z0-9_]+) [*]/
r3   rG   )r   compilereadliner   r   r   rw   r   )	fprm   r   	define_rxundef_rxr   r   r   r   s	            r*   r   r   3  s     |

@AIzzCDH
{{} K OOD!771a=DAq#$$F DGt$A#$QWWQZ #   s   +B2 2	B>=B>c                      	 t         r?t        j                  dk(  r%t        j                  j	                  t
        d      } nt
        } nt        d      } t        j                  j	                  | d      S )Nr   PCr   z
pyconfig.h)r   r%   r8   r&   r(   rO   r   )inc_dirs    r*   r   r   U  sK    (77d?ggll=$7G#G=)77<<..r,   c                  4    	 t        t        t                    S r$   )r   sortedrj   rU   r,   r*   r   r   a  s    6()**r,   c                      	 t         S r$   )_SCHEME_KEYSrU   r,   r*   r	   r	   f  s    4r,   c                 2    	 |rt        | |      S t        |    S r$   )ro   rj   )rl   rm   expands      r*   r
   r
   k  s$    
 FD))''r,   c                 $    	 t        |||      |    S r$   )r
   )r8   rl   rm   r  s       r*   r   r   w  s     VT6*400r,   c                     i a t        t         d<   t        t         d<   t        t         d<   t        t         d<   t
        t         d<   t        t         d<   t        t         d<   t        t         d<   t        t         d	<   t        t         d
<   t        j                  t         d<   	 t        j                  t         d<   	 t        j                  j                  dd      t         d<   t        j                   dk(  r&t#        t                t        j$                  t         d<   t        j                   dk(  rt'        t                t(        rt+               t         d<   t         j-                  dt              } t        j                   dk(  rut.        rHt        j0                  j3                  t5                     }t        j0                  j7                  ||       } n't        j0                  j3                  t5                     } t9        |       t         d<   t        j:                  dk(  rdd l}|j?                  t                da y # t        $ r dt         d<   Y w xY w# t        $ r dt         d<   Y w xY w)Nrq   exec_prefix
py_versionpy_version_shortpy_version_nodotinstalled_baser<   installed_platbaseplatbaseprojectbaserg   r   r   r2   py_version_nodot_platr   VPATHri   userbasesrcdirr0   r   T)!_CONFIG_VARS_PREFIX_EXEC_PREFIX_PY_VERSIONr   r   _BASE_PREFIX_BASE_EXEC_PREFIXrO   r6   rg   r   rX   winverr   r%   r8   r   _vpathr   _HAS_USER_BASEr=   r5   r   r&   r   r   r(   rC   r7   _osx_supportcustomize_config_vars_CONFIG_VARS_INITIALIZED)r  r<   r  s      r*   _init_config_varsr    s   L %L".L!,L'8L#$'?L#$%1L!""L):L%&+L"/L!$L&#&<<Z 303

0B0B30K,- 
ww$% #

W	ww'L! $0>Z  h6F	ww' 77??#8#:;DWW\\$/F WW__%:%<=F+F3L ||x**<8  $W  &#%Z &
  302,-3s$   H1 5'I
 1II
I I c                      	 t         st        5  t        
t                d d d        | r/g }| D ]&  }|j	                  t        j                  |             ( |S t        S # 1 sw Y   @xY wr$   )r  _CONFIG_VARS_LOCKr  r  appendr5   )r)   valsr8   s      r*   r   r     sm     $ 	$
 #!#	$  	0DKK((./	0	$ 	$s   AA'c                 6    	 t               j                  |       S r$   )r   r5   )r8   s    r*   r   r     s    
   &&r,   c                  J   	 t         j                  dk(  rsdt        j                  j	                         v rydt        j                  j	                         v rydt        j                  j	                         v ryt        j
                  S t         j                  dk7  st        t         d	      st        j
                  S d
t         j                  v rt         j                  d
   S t        j                         \  } }}}}| j	                         j                  dd      } |j                  dd      }|j                  dd      }| d d dk(  r|  d| S | d d dk(  rB|d   dk\  rd} t        |d         dz
   d|dd   }ddd}|d|t        j                      z  }n| d d dk(  rddlm}  |       S | d d dk(  r;d} dd l}|j                  d       }|j!                  |      }	|	r=|	j#                         }n,| d d d!k(  r$dd l}
|
j'                  t)               | ||      \  } }}|  d| d| S )"Nr   amd64z	win-amd64z(arm)z	win-arm32z(arm64)z	win-arm64ri   uname_PYTHON_HOST_PLATFORM/r    r   r      linuxsunosr   5solarisr   r2   rG   32bit64bit)il    aix)aix_platform   cygwinz[\d.]+r0   )r%   r8   r6   versionlowerr7   r   r4   r%  r   r   maxsize_aix_supportr1  r   r   r   r   r  get_platform_osxr   )osnamehostreleaser4  machinebitnessr1  r   rel_rer   r  s              r*   r   r     s(   ( 
ww$ckk''))ckk''))))++||	ww'W!5|| "**,zz122 /1hhj+FD'7G \\^##C,Fooc3'Gooc3'GbqzW (!G9%%	w	1:FWQZ1,-Qwqr{m<G #*wGG73;;/011G	u	-~	x	I&LL!ggiG	x	#/#@#@,;,=,2GW$F  XQwiq	**r,   c                      t         S r$   )r   rU   r,   r*   r   r   8  s    r,   c                     	 dd l }	 |j                  t        |       xs |j                  t        |       }|r@|j	                         \  }}| d| |j                  |j                  d            z   | |d  z   } n	 | S t)Nr   r3   )r   r   r   r   spanr5   r   )rY   rm   r   r   begr   s         r*   expand_makefile_varsrC  <  s|      IIlA&D"))L!*DJS#!C488AGGAJ//!CD'9AH r,   c                     t        t        |j                                     D ]-  \  }\  }}|dk(  rt        |  d       t        d| d| d       / y )Nr   z: 	z = "")	enumerater   r_   print)titler   indexrc   rd   s        r*   _print_dictrK  V  sV    (

)=> &|UA:UG2,3%tE7!$%&r,   c                  B   	 dt         j                  v rt                y t        dt	                d       t        dt                d       t        dt                d       t                t        dt                      t                t        dt                      y )Nz--generate-posix-varszPlatform: "rF  zPython version: "zCurrent installation scheme: "Paths	Variables)
r6   argvr   rH  r   r   rz   rK  r
   r   rU   r,   r*   _mainrP  ]  s    4#((*	K'q
)*	0231
56	*+=+?*@
BC	G%	G_./r,   __main__r$   )NT)Kr%   r6   	threadingos.pathr   __all__r   rj   r8   r=   r  r   r4  splitr  r:   r   r   r&   rk   rq   r  rv   r  r  r  base_exec_prefixr  RLockr  r  r  
_USER_BASEr   r   r   rC   r   r   rO   getcwdr   	_sys_homer   r4   rR   r   rl   r\   re   ro   rt   rx   rz   r   r   r   r   r   r   r   r   r   r	   r
   r   r  r   r   r   r   rC  rK  rP  __name__rU   r,   r*   <module>r\     s1   3 	 
     KHFSIM
 0)&&48	
 )"---1#	
8 KHFSIM
 )"---1#	
}H V 77d?/	:V/=V
#, ., ADOOII  ILNND'  .1<<D' ) ># kk!!$''*+1S-=-=a-@,AB !..q1233C3CA3F2GH 
''

3::
&ww0ww0GG$$S%9%9: #IOO%   
 5/- >>GGOON3>>$BCM #9299;/M
 C$'	M77d? m$//l^9568$ RZZ'"2::.D#EFM  !0 2
 "&)"9-y.y 1}2 	5!$(	*}@
I=~!.D	/+

 ()T 	( -.T$ 1>$B<'N+b4&0 z	G r,   