
    Wg}                     .   	 d dl Z d dlZd dlmZ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<   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 eed+          sej        ej        k    sd,e j        vrd-Zd#Zej                                        d          Zej        d           d.ej        d/          Zej        d           ej        d/          Ze j                            ej                  Ze j                            ej                  Ze j                            ej                  Ze j                            ej                  ZdadZ d0Z!d1Z"d2Z#d3 Z$ej%        r)e j        &                     e$ej%                            Z'n e$ e j(                              Z' e)ed4d          Z*e*re*Z'e j        dk    r, e$e'          +                     e$e d5                    reZ'd6e j        v r e$e j        d6                   Z'dZd7Z, e,            Z-e-r#d8D ]Z.ee.         Z.e.d9         e.d:<   d;e.d9<   d<e.d=<    [.d> Z/d? Z0da1d@ Z2dA Z3dB Z4dC Z5dD Z6d[dFZ7dG Z8dH Z9dI Z:dJ Z;dK Z<dZdLZ=dM Z>dN Z?dO Z@ e6            ddEfdPZA e6            ddEfdQZBdR ZCdS ZDdT ZEdU ZFdV ZGdW ZHdX ZIeJdYk    r eI             dS dS )\    N)pardir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   r   
rpm_prefixc            	         t           j                            dd           } | r| S t          j        dv rd S d }t           j        dk    r-t           j                            d          pd} ||d          S t          j        dk    rIt          j        r= |dd	t          j        t          j        d
          dt          j        d                    S  |dd          S )NPYTHONUSERBASE>   wasivxworks
emscriptenc                  b    t           j                            t          j        j        |            S N)ospath
expanduserjoin)argss    "/usr/lib64/python3.11/sysconfig.pyjoinuserz_getuserbase.<locals>.joinuser{   s!    w!!"',"5666    r   APPDATA~PythondarwinLibraryr   .   z.local)r'   environgetsysplatformname
_frameworkversion_info)env_baser-   bases      r,   _getuserbaser?   r   s    z~~.55H  |888t7 7 7 
w$z~~i((/Cxh'''
|xCNxY+A.FF1A!1DFFH H 	H 8C"""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_userreal_prefixRPM_BUILD_ROOTz/localr4   r5   z"([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                 F    	 t          |           S # t          $ r | cY S w xY wr&   )r   OSError)r(   s    r,   _safe_realpathrG      s7    ~~   s      _homez\PCbuild_PYTHON_PROJECT_BASEc                     | !dd l }|                    dt          d           dD ]H}t          j                            t          j                            t          d|                    r dS IdS )	Nr   z.check_home argument is deprecated and ignored.   )
stacklevel)SetupzSetup.localModulesTF)warningswarnDeprecationWarningr'   r(   isfiler*   _PROJECT_BASE)
check_homerO   fns      r,   is_python_buildrV      s|    F(Q 	 	8 	8 	8&  7>>"',,}iDDEE 	44	5r.   )r   r   r   headersz{srcdir}/Includez{projectbase}/.r   c                     	  | j         di |S # t          $ rA}	  | 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'   r6   AttributeError)s
local_varsvars      r,   _subst_varsr`     s    5qx%%*%%% 5 5 5	518))bj)))))))) 	5 	5 	5 C**4	55s#    
A6AAAAc                 v    |                                  }|                                D ]\  }}||v r
|| |<   d S r&   )keysitems)target_dict
other_dicttarget_keyskeyvalues        r,   _extend_dictri     sW    ""$$K &&(( ! !
U+ C! !r.   c                  |    t           /t          t                                a dt           d<   dt           d<   t           S )Nz
/usr/localr>   platbase)_CONFIG_VARS_LOCALdictr   rY   r.   r,   _config_vars_localrn     s:     !!/"3"344%16")5:&r.   c                    i }|i }| dk    r6t           dk    r+dt          j        vrt          |t	                                 nt          |t                                 t          j        dk    r|ddiz  }t          |                                          D ]b\  }}t          j        dv rt          j	        
                    |          }t          j	                            t          ||                    ||<   c|S )Nr   z/usrrD   r   
platlibdirlib)posixr   )_PREFIXr'   r6   ri   rn   r   r:   _INSTALL_SCHEMESrc   r(   r)   normpathr`   )schemevarsresrg   rh   s        r,   _expand_varsry   %  s    
C| 	.  6
**1334444T?,,---	w$ |U++&v.4466 > >
U7o%%G&&u--E7##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userr2   r   rB   rA   )r'   r:   r8   r9   r;   rY   r.   r,   _get_preferred_schemesr~   F  sm    	w$ 
 
 	

 |xCN$ (
 
 	
 !  r.   c                     | dk    rt           j        t           j        k    rdS t                      |          }|t          vrt          | d|d          |S )Nr{   r   z
 returned z., which is not a valid scheme on this platform)r8   r{   base_prefixr~   rt   
ValueError)rg   rv   s     r,   get_preferred_schemer   Z  sq    
h3:88v#%%c*F%%%          
 
 	
 Mr.   c                       t          d          S )Nr{   )r   rY   r.   r,   get_default_schemer   f  s    )))r.   Tc                 R   	 dd l }|i }i }i }t          | t          j                    d          5 }|                                }d d d            n# 1 swxY w Y   |D ]}|                    d          s|                                dk    r0|                    t          |          }	|	r|		                    dd          \  }
}|                                }|
                    dd          }d	|v r|||
<   	 |
t          v rt          t          |          }|||
<   # t          $ r |
                    dd	          ||
<   Y w xY wt          |                                          }d
}t!          |          dk    rLt#          |          D ]'}||         }|                    t&          |          }|                    t(          |          }|r1|r/|                                |                                k     r|n|}	n|r|n|}	|	|		                    d          }
d}|
|v rt-          ||
                   }nz|
|v rd}ns|
t.          j        v rt.          j        |
         }nR|
|v rG|                    d          r|dd          |v rd}n*d|
z   |v rd}n t-          |d|
z                      }ndx||
<   }|r||	                                d          }|d |	                                         |z   |z   }d	|v r|||<   s	 |t          v rt          t          |          }|||<   n'# t          $ r |                                ||<   Y nw xY w|                    |           |                    d          r|dd          |v r|dd          }||vr|||<   |r|||<   |                    |           )t!          |          dk    L|                                D ]1\  }}t9          |t,                    r|                                ||<   2|                    |           |S )Nr   surrogateescape)encodingerrors# r5   rK   z$$$)CFLAGSLDFLAGSCPPFLAGSTFPY_   )reopenr8   getfilesystemencoding	readlines
startswithstripmatch_variable_rxgroupreplace_ALWAYS_STRr   intlistrb   lentuplesearch_findvar1_rx_findvar2_rxstartstrr'   r6   endremoverc   
isinstanceupdate)filenamerw   keep_unresolvedr   donenotdoneflineslinemnvtmpv	variablesrenamed_variablesr:   rh   m1m2founditemafterks                          r,   _parse_makefiler   j  s    III|DG	h!:!<!<&
( 
( 
( +,                   ??3 	4::<<2#5#5HH\4(( 	 771a==DAq		A99T2&&Dd{{

	 K''((AA
  DGG	 " 3 3 3iic22DGGG3	 * W\\^^$$I :
i..1

)$$ @	' @	'DDME<//B<//B %b %((**rxxzz11BBr$BB"}GGAJJ99tAw<<DD'\\!EE"*__:a=DD+++.. 4QRR$555!g-- %  #4	?33 &('DGd 3!!%%''((OE!*17799*-4u<Ee||(-/#{22&0 0$'JJE */DJJ  * 7 7 7).DJJJ7 "((...??511 3 H(999#'8D#4//-2T

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

    1a 	 ggiiDG 	KKKs5   AAA:D#EEL((!MMc                  v   	 t           r%t          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                            t          d          | d          S )NMakefileabiflagszconfig-config
_multiarch-r   )_PYTHON_BUILDr'   r(   r*   rS   hasattrr8   _PY_VERSION_SHORTr   implementationr   r	   )config_dir_names    r,   r   r     s    * 7w||M:666sJ #E$5Es|EE"s!<00 ?>s1<>>>7<<**OZHHHr.   c            	          t          t          j        dd          } t          j                            ddt          j         dt          j         d|            S )Nr   r   _PYTHON_SYSCONFIGDATA_NAME_sysconfigdata__)getattrr8   r   r'   r6   r7   r   r9   )	multiarchs    r,   _get_sysconfigdata_namer     sP    *L"==I:>>$C#,CCCC	CC  r.   c                     	 dd l } i }t                      }	 t          ||           nC# t          $ r6}d| }t	          |d          r| d|j         d}t          |          d }~ww xY wt                      }	 t          |d          5 }t          ||           d d d            n# 1 swxY w Y   nC# t          $ r6}d| }t	          |d          r| d|j         d}t          |          d }~ww xY wt          r|d         |d	<   t                      }d
t          j        v r/dd l}|                    |          }	||	_        |	t          j        |<   dt#                       dt$           }
t	          t          d          r|
dz  }
t'          j        |
d           t&          j                            |
|dz             }t          |dd          5 }|                    d           |                    d           |                      ||           d d d            n# 1 swxY w Y   t          ddd          5 }|                    |
           d d d            d S # 1 swxY w Y   d S )Nr   z,invalid Python installation: unable to open strerrorz ()zutf-8)r   LDSHARED	BLDSHAREDr2   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   rF   r   r   r   r   r   r   r   r8   r9   types
ModuleTypebuild_time_varsmodulesr   r   r'   makedirsr(   r*   write)r   rw   makefileemsgconfig_hr   r:   r   module
pybuilddirdestfiles               r,   _generate_posix_varsr     s   EMMMD$&&H$''''   GXGG1j!! 	*))AJ)))Ccll	 %&&H(W--- 	$1d###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$   GXGG1j!! 	*))AJ)))Ccll	  - ,[ #$$D3<!!$''!%"DBlnnBB/@BBJs&'' !j 
K
T****w||Ju55H	hf	-	-	- &	 * 	+ 	+ 	+	$%%%d1%%%	& & & & & & & & & & & & & & & 
f	5	5	5 	
                 su   ( 
A(1A##A(:B4 B(B4 (B,,B4 /B,0B4 4
C4>1C//C4AH  H$'H$=I  I$'I$c                     	 t                      }t          |t                      t                      dgd          }|j        }|                     |           d S )Nr   r   )r   
__import__globalslocalsr   r   )rw   r:   _tempr   s       r,   _init_posixr   >  sQ    A"$$DtWYY3D2EqIIE+OKK     r.   c                 P   	 dd l }t          d          | d<   t          d          | d<   t          d          | d<   |                                d         | d<   d	| d
<   t          | d<   t          j                            t          t          j	                            | d<   d| d<   d S )Nr   r   LIBDESTr   
BINLIBDESTr   	INCLUDEPY
EXT_SUFFIXz.exeEXEVERSIONBINDIRr   TZPATH)
_impr	   extension_suffixes_PY_VERSION_SHORT_NO_DOTr'   r(   dirnamerG   r8   
executable)rw   r   s     r,   _init_non_posixr   F  s    5KKKx((DO!,//D ++D002215DDK.DOW__^CN%C%CDDDNDNNNr.   c                    	 |i }dd l }|                    d          }|                    d          }	 |                                 }|sn|                    |          }|rP|                    dd          \  }}	 |t
          v rt          t          |          }n# t          $ r Y nw xY w|||<   n/|                    |          }|rd||                    d          <   |S )Nr   z"#define ([A-Z][A-Za-z0-9_]+) (.*)
z&/[*] #undef ([A-Z][A-Za-z0-9_]+) [*]/
Tr5   rK   )r   compilereadliner   r   r   r   r   )	fprw   r   	define_rxundef_rxr   r   r   r   s	            r,   r   r   X  s    |III

@AAIzzCDDH%{{}} 	OOD!! 	%771a==DAq##$$FF   DGGt$$A %#$QWWQZZ #%$ Ks   =B 
B*)B*c                      	 t           r>t          j        dk    r&t          j                            t
          d          } nt
          } nt          d          } t          j                            | d          S )Nr   PCr   zpyconfig-64.h)r   r'   r:   r(   r*   rS   r	   )inc_dirs    r,   r   r   z  sY    ( *7d??gll=$77GG#GG=))7<<111r.   c                  F    	 t          t          t                              S r&   )r   sortedrt   rY   r.   r,   r   r     s    6())***r.   c                      	 t           S r&   )_SCHEME_KEYSrY   r.   r,   r
   r
     s    4r.   c                 B    	 |rt          | |          S t          |          S r&   )ry   rt   )rv   rw   expands      r,   r   r     s,    
  (FD)))''r.   c                 2    	 t          |||          |          S r&   )r   )r:   rv   rw   r  s       r,   r	   r	     s      VT6**400r.   c                     	 t           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<   n# t          $ r dt           d<   Y nw xY w	 t          j                            dd          t           d<   n# t          $ r dt           d<   Y nw xY wt          j        dk    r(t#          t                      t          j        t           d<   t          j        dk    rt'          t                      t(          rt+                      t           d<   t                               dt                    }t          j        dk    r~t.          rLt          j                            t5                                }t          j                            ||          }n+t          j                            t5                                }t9          |          t           d<   t          j        dk    rdd l}|                    t                      | r6g }| D ]/}|                     t                               |                     0|S t           S )Nr{   exec_prefix
py_versionpy_version_shortpy_version_nodotinstalled_baser>   installed_platbaserk   projectbaserp   r   r   r4   py_version_nodot_platr   VPATHrr   userbasesrcdirr2   r   )!_CONFIG_VARSrs   _EXEC_PREFIX_PY_VERSIONr   r   _BASE_PREFIX_BASE_EXEC_PREFIXrS   r8   rp   r   r\   winverr   r'   r:   r   _vpathr   _HAS_USER_BASEr?   r7   r   r(   r   r   r*   rG   r9   _osx_supportcustomize_config_varsappend)r+   r  r>   r!  valsr:   s         r,   r   r     s{     ")X&2]#%0\"+<'(+C'()5%&&V->)*#/Z &3]#%(^\"	*'*|L$$ 	* 	* 	*')L$$$	*	747J4F4FsB4O4OL011 	7 	7 	746L0111	7 7d??L)))$'JL!7g%%% 	6 (4~~L$ !!(M::7g B w'<'>'>??dF33 )>)@)@AA!/!7!7X <8##..|<<<  	0 	0DKK((..////s$   7C C#"C#'(D D'&D'c                 F    	 t                                          |           S r&   )r   r7   )r:   s    r,   r   r     s#    
   &&&r.   c                     	 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 t           j        dk    st          t           d	          st          j        S d
t           j        v rt           j        d
         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} 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    rGd} dd l}|                    d           }|                    |          }	|	r|	                                }n:| d d         d!k    r,dd l}
|
                    t)                      | ||          \  } }}|  d| d| S )"Nr   amd64z	win-amd64z(arm)z	win-arm32z(arm64)z	win-arm64rr   uname_PYTHON_HOST_PLATFORM/r    r   r      linuxsunosr   5solarisr   r4   rK   32bit64bit)il    aix)aix_platform   cygwinz[\d.]+r2   )r'   r:   r8   versionlowerr9   r   r6   r(  r   r   maxsize_aix_supportr4  r   r   r   r   r!  get_platform_osxr   )osnamehostreleaser7  machinebitnessr4  r   rel_rer   r!  s              r,   r   r     s   ( 
w$ck''))));ck''))));))++++;|	w'W!5!5| "*,,z122 /1hjj+FD'7G \\^^##C,,Fooc3''Gooc3''GbqbzW %%G%%%	w		1:FWQZ1,<<wqrr{<<G #*wGGG173;/111G	u		------|~~	x					I&&LL!! 	 ggiiG	x		#/#@#@,;,=,=,2GW$F $F  **w*****r.   c                      t           S r&   )r   rY   r.   r,   r   r   N  s    r.   c                 2   	 dd l }	 |                    t          |           p|                    t          |           }|rV|                                \  }}| d|         |                    |                    d                    z   | |d          z   } nn| S )Nr   Tr5   )r   r   r   r   spanr7   r   )r]   rw   r   r   begr   s         r,   expand_makefile_varsrF  R  s     IIIIIlA&&D"))L!*D*D 	JS#!C%488AGGAJJ///!CDD'9AA Hr.   c                     t          t          |                                                    D ]6\  }\  }}|dk    rt          |  d           t          d| d| d           7d S )Nr   z: 	z = "")	enumerater  rc   print)titler   indexrg   rh   s        r,   _print_dictrN  l  s~    (

)=)=>> & &|UA::U,,,$3$$E$$$%%%%& &r.   c                     	 dt           j        v rt                       d S t          dt	                       d           t          dt                       d           t          dt                       d           t                       t          dt                                 t                       t          dt                                 d S )Nz--generate-posix-varszPlatform: "rI  zPython version: "zCurrent installation scheme: "Paths	Variables)
r8   argvr   rK  r   r   r   rN  r   r   rY   r.   r,   _mainrS  s  s    4#(**	
)
)
)
)***	
5022
5
5
5666	
B+=+?+?
B
B
BCCC	GGG%%%	GGG_../////r.   __main__r&   )NT)Kr'   r8   os.pathr   r   __all__r   rt   r:   r?   r   r   r{   r   r6   _prefix_additionr	  r7  splitr  r<   r   r   r(   ru   rs   r  r  r  base_exec_prefixr  r  
_USER_BASEr   r   r   rG   r   r   rS   getcwdr   	_sys_homer   rV   r   rv   r`   ri   rl   rn   ry   r~   r   r   r   r   r   r   r   r   r   r   r   r
   r   r	   r   r   r   r   rF  rN  rS  __name__rY   r.   r,   <module>r^     sf   3 				 



 $ $ $ $ $ $ $ $     KHFSIM
 
 0)&&48	
 	
 )"---1#	
 	
8 KHFSIM
 
 )"---1#	
 	
}H H V 7d??/	:V/=V
 "2.!A  
# # #, ,..,  ADOOII   ILNND'   .1<<D'  )  L 
m	$	$  J#/!!BJ&&# k!!!$'*BBS-=a-@BB !.q1H33CA3FHH 
'

3:
&
&w00w00G$$S%9:: 
 5/-   > 0GOONN3>$B$BCCMM #N929;;//M
 GC$''	 M7d?? ~m$$//Nl555668 8 %$ RZ''"N2:.D#EFFM     !! 
0 2 2
 "&)"9-y.y 1}5 5 5! ! !      B  (	 	 	* * *} } } }@
I 
I 
I  = = =~! ! !  $   D	2 	2 	2+ + +
  
 ('))T 	( 	( 	( 	( -,..T$ 1 1 1 1M M M`' ' 'N+ N+ N+b    4& & &0 0 0 z	EGGGGG r.   