o ?Ogk @sB ddlZddlZddlmZmZgdZdhZddddd d d d d ddddddd d d dddddddd d dZddZeduZ e rdeddddddddddd d d!d"ddd#d#d$d$d!d"ddd%OZdZ ej dZ ejdd&ejd'Zejdejd'ZejejZejejZejejZejejZdadZd(Zd)Zd*Zd+d,Z ej!rej"e ej!Z#ne e$Z#ej%d-kre#&'d.re ej(e#eeZ#d/ej)vre ej)d/Z#d0d1Z*e+ed2dZ,ej%d-krd3d4Z-e-e#Z#e-e,Z,drd6d7Z.e.d8Z/e/r%d9D]Z0ee0Z0e0d:e0d;<d<qd?d@Z1dAdBZ2dCdDZ3dEdFZ4dGdHZ5dIdJZ6dsdKdLZ7dMdNZ8dOdPZ9dQdRZ:dSdTZ;dUdVZd[d\Z?d]d^Z@e6dd8fd_d`ZAe6dd8fdadbZBdcddZCdedfZDdgdhZEdidjZFdkdlZGdmdnZHdodpZIeJdqkreIdSdS)uN)pardirrealpath) get_config_h_filenameget_config_varget_config_varsget_makefile_filenameget_pathget_path_names get_paths get_platformget_python_versionget_scheme_namesparse_config_hZMACOSX_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 platstdlibpurelibplatlibinclude platincludescriptsdataz{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_homentcCstjdd}|r |StjdkrdSdd}tjdkr(tjdp"d}||dStjd krCtjrC|dd tjtjd d tjd S|ddS)NPYTHONUSERBASEvxworkscWstjtjj|SN)ospath expanduserjoin)argsr"0/opt/alt/python310/lib64/python3.10/sysconfig.pyjoinuserIsz_getuserbase..joinuserrAPPDATA~PythondarwinLibraryr.z.local)renvirongetsysplatformname _framework version_info)env_baser$baser"r"r# _getuserbase@s     r5z({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})rrrrrrrz0{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_userosx_framework_userr*r+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_]*)}cCs"zt|WSty|YSwr)rOSError)rr"r"r#_safe_realpaths   r:r)z\pcbuild\win32z\pcbuild\amd64Z_PYTHON_PROJECT_BASEcCs,dD]}tjtj|d|rdSqdS)N)ZSetupz Setup.localZModulesTF)rrisfiler )dfnr"r"r#_is_python_source_dirs r>_homecCs0|rtj|tjtjtdrtS|S)NZPCbuild)rrnormcase startswithr _PREFIX)r<r"r"r# _fix_pcbuilds rCFcCs|rtrttSttSr) _sys_homer> _PROJECT_BASE)Z check_homer"r"r#is_python_buildsrFT)rrrZheadersz{srcdir}/Includez{projectbase}/.rc Cshz |jdi|WSty3}zz|jditjWWYd}~Sty.t|dwd}~ww)Nr")formatKeyErrorrr,AttributeError)sZ local_varsvarr"r"r# _subst_varss   rLcCs0|}|D] \}}||vrq|||<qdSr)keysitems)Z target_dictZ other_dictZ target_keyskeyvaluer"r"r# _extend_dicts  rQcCsbi}|duri}t|tt|D]\}}tjdvr#tj|}tjt ||||<q|S)N)posixr) rQr_INSTALL_SCHEMESrNrr0rrnormpathrL)schemevarsresrOrPr"r"r# _expand_varss   rXcCs>tjdkr ddddStjdkrtjrddddSddddS) Nrrr6)prefixhomeuserr(rr8r7)rr0r.r/r1r"r"r"r#_get_preferred_schemess r\cCs*t|}|tvrt|d|d|S)Nz returned z., which is not a valid scheme on this platform)r\rS ValueError)rOrUr"r"r#get_preferred_schemes r^cCstdS)NrY)r^r"r"r"r#get_default_schemesr_c CsX ddl}|dur i}i}i}t|tdd }|}Wdn1s'wY|D]S}|ds;|dkrt t |}Wnt yS|||<Ynw|||<| ||d r{|dd|vr{|dd}||vr{|||<q|r|||<| |qt| dks|D]\}} t| tr| ||<q|||S)Nrsurrogateescape)encodingerrors#r+z$$$)ZCFLAGSZLDFLAGSZCPPFLAGSTFZPY_)reopenr.getfilesystemencoding readlinesrAstripmatch _variable_rxgroupreplace _ALWAYS_STRr]intlistrMlentuplesearch _findvar1_rx _findvar2_rxstartstrrr,endremoverN isinstanceupdate)filenamerVZkeep_unresolvedrhZdoneZnotdoneflineslinemnvZtmpvZ variablesZrenamed_variablesr0rPZm1Zm2founditemZafterkr"r"r#_parse_makefiles                             D   rcCsj tr tjtp tdSttdrdttj }nd}ttj dr+|dtj j 7}tjt d|dS)NZMakefileabiflagszconfig-Zconfig _multiarch-r) _PYTHON_BUILDrrr rDrEhasattrr._PY_VERSION_SHORTrimplementationrr)Zconfig_dir_namer"r"r#rs  rc Cs2ttjdd}tjddtjdtjd|S)NrrdZ_PYTHON_SYSCONFIGDATA_NAMEZ_sysconfigdata__)getattrr.rrr,r-rr/)Z multiarchr"r"r#_get_sysconfigdata_names rc Cs ddl}i}t}zt||Wn#ty4}zd|}t|dr,|d|jd}t|d}~wwt}zt|dd }t||Wdn1sOwYWn#tyx}zd|}t|drp|d|jd}t|d}~wwt r|d|d <t }d t j vrddl }||} || _| t j|<d td t} tt d r| d7} tj| ddtj| |d} t| ddd}|d|d|j||dWdn1swYtdddd}|| WddS1swYdS)Nrz,invalid Python installation: unable to open strerrorz ()zutf-8)raZLDSHAREDZ BLDSHAREDr(z build/lib.rZgettotalrefcountz-pydebugT)exist_okz.pywutf8zB# system configuration generated and used by the sysconfig module zbuild_time_vars = )streamzpybuilddir.txt)pprintrrr9rrrrirrrr.r/types ModuleTypebuild_time_varsmodulesr rrmakedirsrr write) rrVZmakefileemsgZconfig_hrr0rmoduleZ pybuilddirZdestfiler"r"r#_generate_posix_varss^             "rcCs2 t}t|ttdgd}|j}||dS)Nrr)r __import__globalslocalsrr~)rVr0Z_temprr"r"r# _init_posixs rcCsp ddl}td|d<td|d<td|d<|d|d<d |d <t|d <tjttj |d <d |d<dS)NrrZLIBDESTrZ BINLIBDESTrZ INCLUDEPY EXT_SUFFIXz.exeZEXEZVERSIONZBINDIRrdZTZPATH) _imprextension_suffixes_PY_VERSION_SHORT_NO_DOTrrdirnamer:r. executable)rVrr"r"r#_init_non_posixs    rc Cs |duri}ddl}|d}|d} |}|s |S||}|rI|dd\}}z |tvr5tt|}Wn tyCYnw|||<n||}|rWd||d<q)Nrz"#define ([A-Z][A-Za-z0-9_]+) (.*) z&/[*] #undef ([A-Z][A-Za-z0-9_]+) [*]/ Tr+re)rhcompilereadlinermrorqr]rr) fprVrhZ define_rxZundef_rxrrrrr"r"r#rs4       rcCsD trtjdkrtjtptd}n tpt}ntd}tj|dS)NrZPCrz pyconfig.h)rrr0rr rDrEr)Zinc_dirr"r"r#rs  rcCs tttSr)rusortedrSr"r"r"r#r !s r cCs tSr) _SCHEME_KEYSr"r"r"r#r &sr cCs |rt||St|Sr)rXrS)rUrVexpandr"r"r#r +s r cCs t||||Sr)r )r0rUrVrr"r"r#r7srcGs tduriattd<ttd<ttd<ttd<ttd<ttd<ttd<ttd<ttd <ttd <t j td <zt j td <Wn t yHd td <Ynwz t j dd td<Wn t yad td<Ynwtjdkrktttjdkrttttd}|dur|td<trttd<tdt}tjdkrtrtjt}tj||}ntjt}t|td<t jdkrddl}|t|rg}|D] }|t|q|StS)NrY exec_prefixZ py_versionZpy_version_shortZpy_version_nodotZinstalled_baser4Zinstalled_platbaseZplatbaseZ projectbase platlibdirrrdr*Zpy_version_nodot_platrrRrSOuserbasesrcdirr(r) _CONFIG_VARSrB _EXEC_PREFIX _PY_VERSIONrr _BASE_PREFIX_BASE_EXEC_PREFIXrEr.rrrIwinverrprr0rrr-_HAS_USER_BASEr5rrrrr r:r/ _osx_supportZcustomize_config_varsappend)r!rrr4rZvalsr0r"r"r#r?sb               rcCs, |dkrddl}|dtdt|S)Nrrz SO is deprecated, use EXT_SUFFIXre)warningswarnDeprecationWarningrr-)r0rr"r"r#rs  rc Cs tjdkr$dtjvrdSdtjvrdSdtjvr!dStjStjdks.ttd s1tjSd tjvr;tjd St\}}}}}| d d }| d d}| d d}|dddkrg|d|S|dddkr|ddkrd}t |ddd|dd}ddd}|d|tj 7}nH|dddkrddl m }|S|dddkrd}ddl}|d }||} | r| }n|ddd!krddl} | t|||\}}}|d|d|S)"NrZamd64z win-amd64z(arm)z win-arm32z(arm64)z win-arm64rRunameZ_PYTHON_HOST_PLATFORM/rd rrZlinuxZsunosr5Zsolarisrgr*reZ32bitZ64bit)ilZaix) aix_platformcygwinz[\d.]+r()rr0r.versionlowerr/rr,rrprrmaxsizeZ _aix_supportrrhrrmrorZget_platform_osxr) ZosnameZhostreleasermachineZbitnessrrhZrel_rerrr"r"r#r sX      "     r cCstSr)rr"r"r"r#r sr cCsf ddl} |t|p|t|}|r/|\}}|d|||d||d}n |Sq)NrTr+)rhrvrwrxspanr-ro)rJrVrhrZbegr{r"r"r#expand_makefile_varss *rcCsNtt|D]\}\}}|dkrt|dtd|d|dqdS)Nrz:  z = "") enumeraterrNprint)titlerindexrOrPr"r"r# _print_dict s rcCst dtjvr tdStdtdtdtdtdtdttdtttdt dS)Nz--generate-posix-varsz Platform: "rzPython version: "zCurrent installation scheme: "ZPathsZ Variables) r.argvrrr r r_rr rr"r"r"r#_mains  r__main__)F)NTr)Krr.Zos.pathrr__all__rqrSr5rrrsplitrr2rrrrTrYrB base_prefixrrrbase_exec_prefixrrZ _USER_BASErnrwrxr:rrrEgetcwdr0rendswithr r,r>rrDrCrFrrUrLrQrXr\r^r_rrrrrrrrr r r rrrr r rrr__name__r"r"r"r#s  &                ? "  S Q