grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026o ®û|jÙkã @sB ddlZddlZddlmZmZgd¢ZdhZddddd d d d d œddddddd d d œdddddddd d œdœZdd„ZeƒduZ e rdeddddddddœddd d d!d"ddœd#d#d$d$d!d"ddœd%œOZdZ ej   ¡dZ ejd›d&ejd'›�Zejd›ejd'›�Zej ej¡Zej ej¡Zej ej¡Zej ej¡ZdadZd(Zd)Zd*Zd+d,„Z ej!r½ej "e ej!ƒ¡Z#ne e $¡ƒZ#ej%d-krÙe# &¡ 'd.¡rÙe ej (e#ee¡ƒZ#d/ej)vråe ej)d/ƒZ#d0d1„Z*e+ed2dƒZ,ej%d-k�rd3d4„Z-e-e#ƒZ#e-e,ƒZ,drd6d7„Z.e.d8ƒZ/e/�r%d9D]Z0ee0Z0e0d:e0d;<d<�qd?d@„Z1dAdB„Z2dCdD„Z3dEdF„Z4dGdH„Z5dIdJ„Z6dsdKdL„Z7dMdN„Z8dOdP„Z9dQdR„Z:dSdT„Z;dUdV„Zd[d\„Z?d]d^„Z@e6ƒdd8fd_d`„ZAe6ƒdd8fdadb„ZBdcdd„ZCdedf„ZDdgdh„ZEdidj„ZFdkdl„ZGdmdn„ZHdodp„ZIeJdqk�rŸeIƒdSdS)ué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_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Ú 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ÚntcCs�tj dd¡}|r |StjdkrdSdd„}tjdkr(tj d¡p"d}||dƒStjd krCtjrC|dd tjtjd ›d tjd ›�ƒS|ddƒS)NÚPYTHONUSERBASEÚvxworkscWstj tjj|Ž¡S©N)ÚosÚpathÚ expanduserÚjoin)Úargs©r"ú0/opt/alt/python310/lib64/python3.10/sysconfig.pyÚjoinuserIsz_getuserbase..joinuserrÚAPPDATAú~ÚPythonÚdarwinÚLibraryrÚ.éz.local)rÚenvironÚgetÚsysÚplatformÚnameÚ _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_userÚosx_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)rÚOSError)rr"r"r#Ú_safe_realpathŒs   ÿr:r)z\pcbuild\win32z\pcbuild\amd64Z_PYTHON_PROJECT_BASEcCs,dD]}tj tj |d|¡¡rdSqdS)N)ZSetupz Setup.localZModulesTF)rrÚisfiler )ÚdÚfnr"r"r#Ú_is_python_source_dir¡s ÿr>Ú_homecCs0|rtj |¡ tj tj td¡¡¡rtS|S)NZPCbuild)rrÚnormcaseÚ startswithr Ú_PREFIX)r<r"r"r#Ú _fix_pcbuildªs ÿrCFcCs|rtrttƒSttƒSr)Ú _sys_homer>Ú _PROJECT_BASE)Z check_homer"r"r#Úis_python_build²srFT)rrrZheadersz{srcdir}/Includez{projectbase}/.rc Cshz |jdi|¤ŽWSty3}zz|jditj¤ŽWWYd}~Sty.t|›ƒd‚wd}~ww)Nr")ÚformatÚKeyErrorrr,ÚAttributeError)ÚsZ local_varsÚvarr"r"r#Ú _subst_varsÅs   ÿ€ýrLcCs0| ¡}| ¡D] \}}||vrq|||<qdSr)ÚkeysÚitems)Z target_dictZ other_dictZ target_keysÚkeyÚvaluer"r"r#Ú _extend_dictÎs  ýrQcCsbi}|duri}t|tƒƒt| ¡D]\}}tjdvr#tj |¡}tj t ||ƒ¡||<q|S)N)Úposixr) rQrÚ_INSTALL_SCHEMESrNrr0rrÚnormpathrL)ÚschemeÚvarsÚresrOrPr"r"r#Ú _expand_varsÖs   rXcCs>tjdkr ddddœStjdkrtjrddddœSddddœS) Nrrr6)ÚprefixÚhomeÚuserr(rr8r7)rr0r.r/r1r"r"r"r#Ú_get_preferred_schemesãs ýýý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_scheme÷s ÿr^cCstdƒS)NrY)r^r"r"r"r#Úget_default_schemesr_c CsX ddl}|dur i}i}i}t|t ¡dd�� }| ¡}Wdƒn1s'wY|D]S}| d¡s;| ¡dkrt ‚t |ƒ}Wnt �yS| ¡||<Ynw|||<|  |¡| d ¡�r{|dd…|v�r{|dd…}||v�r{|||<q•|�rƒ|||<|  |¡q•t| ƒdks‘| ¡D]\}} t| tƒ�r£|  ¡||<�q“| |¡|S)NrÚsurrogateescape)ÚencodingÚerrorsú#Úr+éz$$ú$)ZCFLAGSZLDFLAGSZCPPFLAGSTFZPY_é)ÚreÚopenr.ÚgetfilesystemencodingÚ readlinesrAÚstripÚmatchÚ _variable_rxÚgroupÚreplaceÚ _ALWAYS_STRr]ÚintÚlistrMÚlenÚtupleÚsearchÚ _findvar1_rxÚ _findvar2_rxÚstartÚstrrr,ÚendÚremoverNÚ isinstanceÚupdate)ÚfilenamerVZkeep_unresolvedrhZdoneZnotdoneÚfÚlinesÚlineÚmÚnÚvZtmpvZ variablesZrenamed_variablesr0rPZm1Zm2ÚfoundÚitemZafterÚkr"r"r#Ú_parse_makefiles° ÿ þ     þ€                ÿ    €  ¿D  € r‰cCsj tr tj tp td¡Sttdƒrdt›tj ›�}nd}ttj dƒr+|dtj j ›�7}tj t dƒ|d¡S)NZMakefileÚabiflagszconfig-ZconfigÚ _multiarchú-r) Ú _PYTHON_BUILDrrr rDrEÚhasattrr.Ú_PY_VERSION_SHORTrŠÚimplementationr‹r)Zconfig_dir_namer"r"r#r…s  rc Cs2ttjddƒ}tj ddtj›dtj›d|›�¡S)Nr‹rdZ_PYTHON_SYSCONFIGDATA_NAMEZ_sysconfigdata_Ú_)Úgetattrr.r�rr,r-rŠr/)Z multiarchr"r"r#Ú_get_sysconfigdata_name’s þr“c Cs ddl}i}tƒ}zt||ƒWn#ty4}zd|›�}t|dƒr,|›d|j›d�}t|ƒ‚d}~wwtƒ}zt|dd�� }t||ƒWdƒn1sOwYWn#tyx}zd|›�}t|dƒrp|›d|j›d�}t|ƒ‚d}~wwt r�|d|d <t ƒ}d t j vršddl }| |¡} || _| t j|<d tƒ›d t›�} tt d ƒr¬| d7} tj| dd�tj | |d¡} t| ddd��}| d¡| d¡|j||d�Wdƒn1sßwYtdddd��}| | ¡WdƒdS1süwYdS)Nrz,invalid Python installation: unable to open Ústrerrorz (ú)zutf-8)raZLDSHAREDZ BLDSHAREDr(z build/lib.rŒZgettotalrefcountz-pydebugT)Úexist_okz.pyÚwÚutf8zB# system configuration generated and used by the sysconfig module zbuild_time_vars = )Ústreamzpybuilddir.txt)Úpprintrr‰r9rŽr”rrirr�r“r.r/ÚtypesÚ ModuleTypeÚbuild_time_varsÚmodulesr r�rÚmakedirsrr Úwrite) ršrVZmakefileÚeÚmsgZconfig_hr€r0r›ÚmoduleZ pybuilddirZdestfiler"r"r#Ú_generate_posix_varsšs^  €ü ÿ€  €ü       ü "ÿr¤cCs2 tƒ}t|tƒtƒdgdƒ}|j}| |¡dS)Nr�r)r“Ú __import__ÚglobalsÚlocalsr�r~)rVr0Z_tempr�r"r"r#Ú _init_posixÙs r¨cCsp ddl}tdƒ|d<tdƒ|d<tdƒ|d<| ¡d|d<d |d <t|d <tj ttj ƒ¡|d <d |d<dS)NrrZLIBDESTrZ BINLIBDESTrZ INCLUDEPYÚ EXT_SUFFIXz.exeZEXEZVERSIONZBINDIRrdZTZPATH) Ú_imprÚextension_suffixesÚ_PY_VERSION_SHORT_NO_DOTrrÚdirnamer:r.Ú executable)rVrªr"r"r#Ú_init_non_posixás    r¯c Cs° |duri}ddl}| d¡}| d¡} | ¡}|s |S| |¡}|rI| dd¡\}}z |tvr5t‚t|ƒ}Wn tyCYnw|||<n| |¡}|rWd|| d¡<q)Nrz"#define ([A-Z][A-Za-z0-9_]+) (.*) z&/[*] #undef ([A-Z][A-Za-z0-9_]+) [*]/ Tr+re)rhÚcompileÚreadlinermrorqr]rr) ÚfprVrhZ define_rxZundef_rxr‚rƒr„r…r"r"r#rós4   ò  ÿ  ïrcCsD trtjdkrtj tptd¡}n tpt}ntdƒ}tj |d¡S)NrZPCrz pyconfig.h)r�rr0rr rDrEr)Zinc_dirr"r"r#rs  rcCs tttƒƒSr)ruÚsortedrSr"r"r"r#r !s r cCs tSr)Ú _SCHEME_KEYSr"r"r"r#r &sr cCs |rt||ƒSt|Sr)rXrS)rUrVÚexpandr"r"r#r +s r cCs t|||ƒ|Sr)r )r0rUrVrµr"r"r#r7srcGs¨ tdur¿iattd<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<Ynwtjdkrkttƒtjdkrtttƒt d¡}|dur�|td<trˆtƒtd<t dt¡}tjdkr«tr¤tj tƒ¡}tj ||¡}ntj tƒ¡}t|ƒtd<t jdkr¿ddl}| t¡|rÒg}|D] }| t |¡¡qÅ|StS)NrYÚ exec_prefixZ py_versionZpy_version_shortZpy_version_nodotZinstalled_baser4Zinstalled_platbaseZplatbaseZ projectbaseÚ platlibdirrŠrdr*Zpy_version_nodot_platrrRr©ÚSOÚuserbaseÚsrcdirr(r) Ú _CONFIG_VARSrBÚ _EXEC_PREFIXÚ _PY_VERSIONr�r¬Ú _BASE_PREFIXÚ_BASE_EXEC_PREFIXrEr.r·rŠrIÚwinverrprr0r¯r¨r-Ú_HAS_USER_BASEr5r�rr­rr r:r/Ú _osx_supportZcustomize_config_varsÚappend)r!r¸rºr4rÂZvalsr0r"r"r#r?sb    þ  ÿ         rcCs, |dkrddl}| dtd¡tƒ |¡S)Nr¸rz SO is deprecated, use EXT_SUFFIXre)ÚwarningsÚwarnÚDeprecationWarningrr-)r0rÄr"r"r#r’s  rc CsÔ tjdkr$dtj ¡vrdSdtj ¡vrdSdtj ¡vr!dStjStjdks.ttd ƒs1tjSd tjvr;tjd St ¡\}}}}}| ¡  d d ¡}|  d d¡}|  d d¡}|dd…dkrg|›d|›�S|dd…dkr˜|ddkr—d}t |dƒd›d|dd…›�}dddœ}|d|tj ›�7}nH|dd…dkr©ddl m }|ƒS|dd…dkrÈd}ddl}| d ¡}| |¡} | rÇ|  ¡}n|dd…d!kràddl} |  tƒ|||¡\}}}|›d|›d|›�S)"NrZamd64z win-amd64z(arm)z win-arm32z(arm64)z win-arm64rRÚunameZ_PYTHON_HOST_PLATFORMú/rdú r‘rŒéZlinuxZsunosrÚ5Zsolarisrgr*reZ32bitZ64bit)iÿÿÿlÿÿÿÿZaix)Ú aix_platforméÚcygwinz[\d.]+r()rr0r.ÚversionÚlowerr/rŽr,rÇrprrÚmaxsizeZ _aix_supportrÌrhr°rmrorÂZget_platform_osxr) ZosnameZhostÚreleaserÏÚmachineZbitnessrÌrhZrel_rerƒrÂr"r"r#r žsX      " €   € þr cCstSr)r�r"r"r"r#r ïsr cCsf ddl} | t|¡p| t|¡}|r/| ¡\}}|d|…| | d¡¡||d…}n |Sq)NrTr+)rhrvrwrxÚspanr-ro)rJrVrhrƒZbegr{r"r"r#Úexpand_makefile_varsós *ùrÕcCsNtt| ¡ƒƒD]\}\}}|dkrt|›d�ƒtd|›d|›d�ƒqdS)Nrz: ú z = "ú")Ú enumerater³rNÚprint)ÚtitlerÚindexrOrPr"r"r#Ú _print_dict s ýrÜcCst dtjvr tƒdStdtƒ›d�ƒtdtƒ›d�ƒtdtƒ›d�ƒtƒtdtƒƒtƒtdt ƒƒdS)Nz--generate-posix-varsz Platform: "r×zPython version: "zCurrent installation scheme: "ZPathsZ Variables) r.Úargvr¤rÙr r r_rÜr rr"r"r"r#Ú_mains  rÞÚ__main__)F)NTr)Krr.Zos.pathrrÚ__all__rqrSr5rÁr´rÏÚsplitr½r2r�r¬rrTrYrBÚ base_prefixr¾r¶r¼Úbase_exec_prefixr¿r»Z _USER_BASErnrwrxr:r®r­rEÚgetcwdr0rÐÚendswithr r,r>r’rDrCrFr�rUrLrQrXr\r^r_r‰rr“r¤r¨r¯rrr r r rrrr r rÕrÜrÞÚ__name__r"r"r"r#Úsÿö ø øé& ù ù ùì   ÿ          ? "  S Q  ÿ