D,biQi SrSSKrSSKrSSKrSSKJr /SQrSS1rSSS S S S S SS.SSSSSSS SS.SSSSSSSSS.SSS S S S S SS.SSSSSSSSS.S.r\RS:Xa \S\S'O\S\S'Sr Sr \ "5SLr \ (a!\SSS S S!S"S#S$.S%S%S&S&S'S(S#S$.S)S)S*S*S+S(S#S$.S,.-rS$r \RR5Sr\R"SS-\R"S.3r\R"S\R"S.3r\R(R+\R,5r\R(R+\R05r\R4"5rSqS/qSrS0r\R@(a,\R(RC\"\R@55r"O\"\RF"55r"\$"\S1S5r%\%(a\%r"\RS:Xa'\"\"5RM\"\S2355(a\r"S3\RN;a\"\RNS35r"SSS4jr(\("5r)\)(a!S5Hr*\\*r*\*S6\*S7'S8\*S6'S9\*S:'M C*S;r+S<r,S=r-S>r.S?r/S@r0SAr1SBr2SCr3SDr4SSSEjr5SFr6SGr7SHr8\0"5SSI4SJjr9\0"5SSI4SKjr:SLr;SMrSPr?SQr@SRrAg)Tz-Access to Python's configuration information.N)realpath) get_config_h_filenameget_config_varget_config_varsget_makefile_filenameget_pathget_path_names get_paths get_platformget_python_versionget_scheme_namesparse_config_hIPHONEOS_DEPLOYMENT_TARGETMACOSX_DEPLOYMENT_TARGETzR{installed_base}/{platlibdir}/{implementation_lower}{py_version_short}{abi_thread}zL{platbase}/{platlibdir}/{implementation_lower}{py_version_short}{abi_thread}zM{base}/lib/{implementation_lower}{py_version_short}{abi_thread}/site-packageszZ{platbase}/{platlibdir}/{implementation_lower}{py_version_short}{abi_thread}/site-packageszK{installed_base}/include/{implementation_lower}{py_version_short}{abiflags}zO{installed_platbase}/include/{implementation_lower}{py_version_short}{abiflags}z {base}/binz{base})stdlib platstdlibpurelibplatlibinclude platincludescriptsdataz+{installed_base}/lib/{implementation_lower}z!{base}/lib/{implementation_lower}z/{installed_base}/include/{implementation_lower}z{installed_base}/Libz {base}/Libz{base}/Lib/site-packagesz{installed_base}/Includez{base}/Scripts) posix_prefix posix_homent posix_venvnt_venvrrvenvrcg)NPythonr!9/opt/alt/python313/lib64/python3.13/sysconfig/__init__.py_get_implementationr$ms r"c [RRSS5nU(aU$[RS;agSn[R S:Xa9[RRS5=(d SnU"U[ 55$[RS:XaU[R(a@U"SS[R[RS S [RS 35$U"SS 5$) NPYTHONUSERBASE>iostvoswasivxworkswatchos emscriptencv[RR[RR"U65$N)ospath expanduserjoin)argss r#joinuser_getuserbase..joinuser{s$ww!!"'',,"566r"rAPPDATA~darwinLibraryr.z.local) r/environgetsysplatformnamer$ _framework version_info)env_baser4bases r# _getuserbaserErszz~~.5H ||RR7 ww$zz~~i(/C2455 ||xCNNY++A./q1A1A!1D0EFH H C ""r"z2{userbase}/{implementation}{py_version_nodot_plat}z@{userbase}/{implementation}{py_version_nodot_plat}/site-packagesz:{userbase}/{implementation}{py_version_nodot_plat}/Includez:{userbase}/{implementation}{py_version_nodot_plat}/Scriptsz {userbase})rrrrrrrzL{userbase}/{platlibdir}/{implementation_lower}{py_version_short}{abi_thread}zQ{userbase}/lib/{implementation_lower}{py_version_short}{abi_thread}/site-packageszG{userbase}/include/{implementation_lower}{py_version_short}{abi_thread}z{userbase}/binz%{userbase}/lib/{implementation_lower}z3{userbase}/lib/{implementation_lower}/site-packagesz;{userbase}/include/{implementation_lower}{py_version_short})nt_user posix_userosx_framework_userr:r;Fc>[U5$![a Us$f=fr.)rOSError)r0s r#_safe_realpathrKs%~  s _homez\PCbuild_PYTHON_PROJECT_BASEcUbSSKnURS[SS9 SHLn[RR [RR [SU55(dML g g) NrzThe check_home argument of sysconfig.is_python_build is deprecated and its value is ignored. It will be removed in Python 3.15.) stacklevel)Setupz Setup.localModulesTF)warningswarnDeprecationWarningr/r0isfiler2 _PROJECT_BASE) check_homerSfns r#is_python_buildrZsa 5   ' 77>>"'',,}iD E E' r")rrrheadersz{srcdir}/Includez{projectbase}/.rcUR"S0UD6$![aFnUR"S0[RD6sSnA$![a [ U5Sef=fSnAff=f)Nr!)formatKeyErrorr/r<AttributeError)s local_varsvars r# _subst_varsrcsa5xx%*%% 5 588)bjj) ) 5 C5* 4 55s% A$AA$AAA$clUR5nUR5Hup4X2;aM X@U'M gr.)keysitems) target_dict other_dict target_keyskeyvalues r# _extend_dictrls6""$K &&(     C)r"cl0nUc0n[U[55 [RS:XaUSS0-n[UR 5Hbup4[RS;a[R RU5n[R R[XA55X#'Md U$)Nr platlibdirlib)posixr) rlrr/r@_INSTALL_SCHEMESrfr0r1normpathrc)schemevarsresrjrks r# _expand_varsrv s C |() ww$|U++&v.446  77o %GG&&u-E77##K$<=7 Jr"c[RS:XaSSSS.$[RS:Xa[R(aSSSS.$SSSS.$) NrrrF)prefixhomeuserr8rrHrG)r/r@r>r?rAr!r"r#_get_preferred_schemesr{s\ ww$    ||xCNN$ (  ! r"cUS:Xa#[R[R:wag[5UnU[;a[ U<SU<S35eU$)Nrxrz returned z., which is not a valid scheme on this platform)r>rx base_prefixr{rq ValueError)rjrss r#get_preferred_schemer4sZ h3::8 # %c *F %%gZz*    Mr"c[S5$)Nrx)rr!r"r#get_default_schemer@s  ))r"c[(a$[RR[S5$[ [ S5(aS[[ R3nOSn[ [ RS5(a US[ RR3- n[RR[S5US5$)z Return the path of the Makefile.Makefileabiflagszconfig-config _multiarch-r) _PYTHON_BUILDr/r0r2rWhasattrr>_PY_VERSION_SHORTrimplementationrr)config_dir_names r#rrDs}ww||M:66sJ#$5#6s||nE"s!!<00Qs11<<=>> 77<<*OZ HHr"c [[RSS5n[RR SS[R S[RSU35$)Nr_PYTHON_SYSCONFIGDATA_NAME_sysconfigdata__)getattrr>rr/r<r=rr?) multiarchs r#_get_sysconfigdata_namerQsL**L"=I ::>>$ #,,qa {C r"cx[5n[RRS5=n(aMSSKJnJnJn SSKJ n U"X$U45RU5nU"U5nURRU5 O [U[5[5S/S5nUR n UR#U 5 g)z7Initialize the module as appropriate for POSIX systems._PYTHON_SYSCONFIGDATA_PATHr) FileFinderSourceFileLoaderSOURCE_SUFFIXES)module_from_specbuild_time_varsN)rr/r<r=importlib.machineryrrrimportlib.utilr find_specloader exec_module __import__globalslocalsrupdate) rtr@r0rrrrspec_temprs r# _init_posixrXs # $D ;<<<UU3$? CDNNtT & &4FH7H6I1M++OKK r"cvSSKnSSKn[S5US'[S5US'[S5US'URUR 55 [ [ RR[S 5S 55US '[[S 5(aRUR[R5n[ RR[ U55US 'US US'SUS'[US'[ RR![ [R"55US'SUS'g)z+Initialize the module as appropriate for NTrNrLIBDESTr BINLIBDESTr INCLUDEPYinstalled_baselibsLIBDIR dllhandleLIBRARY LDLIBRARYz.exeEXEVERSIONBINDIRrTZPATH)_winapi _sysconfigrr config_varsrKr/r0r2rrr>GetModuleFileNamerbasename_PY_VERSION_SHORT_NO_DOTdirname executable)rtrrrs r#_init_non_posixrmsx(DO!,/D +D KK &&()#BGGLL@P1QSY$Z[DNsK  --cmm< ''**>)+DEY O[DK.DOWW__^CNN%CDDNDNr"cUc0nSSKnURS5nURS5nUR5nU(dU$URU5nU(a5UR SS5upxU[ ;a[ e[U5nXU'O+URU5nU(aSXR S5'M![ a N>f=f)zParse a config.h-style file. A dictionary containing name/value pairs is returned. If an optional dictionary is passed in as the second argument, it is used instead of a new dictionary. Nrz"#define ([A-Z][A-Za-z0-9_]+) (.*) z&/[*] #undef ([A-Z][A-Za-z0-9_]+) [*]/ r;rO)recompilereadlinematchgroup _ALWAYS_STRr~int) fprtr define_rxundef_rxlinemnvs r#rrs |  @AIzzCDH {{}  K OOD ! 771a=DA  #$$FGt$A#$WWQZ #   s4C C Cc[(aI[RS:Xa.[RR [ R 5nO[nO [S5n[RRUS5$)zReturn the path of pyconfig.h.rrz pyconfig.h) rr/r@r0rr>_base_executablerWrr2)inc_dirs r#rrsN} 77d?ggooc&:&:;G#G=) 77<< ..r"c2[[[55$)z,Return a tuple containing the schemes names.)tuplesortedrqr!r"r#r r s () **r"c[$)z*Return a tuple containing the paths names.) _SCHEME_KEYSr!r"r#r r s r"Tc8U(a [X5$[U$)zReturn a mapping containing an install scheme. ``scheme`` is the install scheme name. If not provided, it will return the default scheme for the current platform. )rvrq)rsrtexpands r#r r s F))''r"c [XU5U$)zSReturn a path corresponding to the scheme. ``scheme`` is the install scheme name. )r )r@rsrtrs r#rrs V6 *4 00r"c"0q[RR[R 5n[RR[R 5nU[S'U[S'[[S'[[S'[[S'[[S'U[S'[[S'U[S '[[S '[R[S '[5[S '[5R5[S '[R [S'[R$R'SS5[S'[R(S:Xa&[+[5 [R,[S'[R(S:Xa[/[5 [0(a[35[S'[R5S5(aSOS[S'[R5S[5n[R(S:Xay[6(aG[RR9[;55n[RR=X25nO'[RR9[;55n[?U5[S'[R@S:XaSSK!nURE[5 Sq#g!["a S[S'GNf=f!["a S[S'GNf=f)Nrx exec_prefix py_versionpy_version_shortpy_version_nodotrrDinstalled_platbaseplatbase projectbasernrimplementation_lowerrrr:py_version_nodot_platrVPATHrpuserbasePy_GIL_DISABLEDt abi_threadsrcdirr8rT)$ _CONFIG_VARSr/r0rrr>rxr _PY_VERSIONrr _BASE_PREFIX_BASE_EXEC_PREFIXrWrnr$lowerrr_winverreplacer@r_vpathr_HAS_USER_BASErEr=rrrr2rKr? _osx_supportcustomize_config_vars_CONFIG_VARS_INITIALIZED)_PREFIX _EXEC_PREFIXrrDrs r#_init_config_varsrsFLggszz*G77##COO4L$L".L!,L'8L#$'?L#$%1L!""L):L%&+L"/L!$L%8%:L!"+>+@+F+F+HL'(&#&<< Z 303 0B0B30K ,- ww$ % # W ww'L!~$0> Z )5(8(89J(K(KQSL  h 6F ww' =77??#8#:;DWW\\$/F WW__%:%<=F+F3L ||x**<8 $] &#% Z & 302 ,-3s$K/'K7K43K47L Lc[(d![ [c [5 SSS5 OS[S[R R [R5:wa[ Sq[5 SSS5 U(a1/nUH'nUR[RU55 M) U$[$!,(df  NL=f!,(df  N]=f)aVWith no arguments, return a dictionary of all configuration variables relevant for the current platform. On Unix, this means every variable defined in Python's installed Makefile; On Windows it's a much smaller set. With arguments, return a list of values that result from looking up each argument in the configuration variable dictionary. NrDF) r_CONFIG_VARS_LOCKrrr/r0rrr>rxappendr=)r3valsr@s r#rrs $ #  #!#    277#3#3CJJ#? ?"+0(!## D KK ((. / / #"sB>+ C> C  Cc4[5RU5$)zReturn the value of a single variable using the dictionary returned by 'get_config_vars()'. Equivalent to get_config_vars().get(name) )rr=)r@s r#rrDs    &&r"c[RS:XayS[RR 5;agS[RR 5;agS[RR 5;ag[R $[RS:wd[ [S 5(d[R $S [R;a[RS $[R"5upp#nUR 5RS S 5nURS S5nURS S5nUSSS:Xa4[R S:XaSn[S5nSSSSS.UnGO6USU3$USSS:XaCUSS:a9Sn[US5S- SUS S3nS!S"S#.nUSU[R3- nOUSSS$:Xa SS%K Jn U"5$USS&S':Xa@S'nSSKnUR!S(5nUR#U5n U (aU R%5nOUSS&S):Xa{[R S*:XaE['5R)S+S,5n[R n[R*R,nO"SSKn U R1['5XU5upnUSUSU3$)-a3Return a string that identifies the current platform. This is used mainly to distinguish platform-specific build directories and platform-specific built distributions. Typically includes the OS name and version and the architecture (as supplied by 'os.uname()'), although the exact information included depends on the OS; on Linux, the kernel version isn't particularly important. Examples of returned values: Windows: - win-amd64 (64-bit Windows on AMD64, aka x86_64, Intel64, and EM64T) - win-arm64 (64-bit Windows on ARM64, aka AArch64) - win32 (all others - specifically, sys.platform is returned) POSIX based OS: - linux-x86_64 - macosx-15.5-arm64 - macosx-26.0-universal2 (macOS on Apple Silicon or Intel) - android-24-arm64_v8a For other non-POSIX platforms, currently just returns :data:`sys.platform`.ramd64z win-amd64z(arm)z win-arm32z(arm64)z win-arm64rpuname_PYTHON_HOST_PLATFORM/r rrNlinuxandroidANDROID_API_LEVELx86_64x86 arm64_v8a armeabi_v7a)ri686aarch64armv7lsunosr5solarisr:rO32bit64bit)ilaix) aix_platformcygwinz[\d.]+r8r'rz13.0)r/r@r>versionrr?rr<rrrrmaxsize _aix_supportrrrrrrr=rrrget_platform_osx) osnamehostreleasermachinebitnessrrrel_rerrs r#r r Ms4 ww$ ckk'') ) ckk'') )  ))+ +|| ww'W!5!5||"**,zz122/1hhj+F'G\\^ # #C ,Fooc3'Gooc3'G bqzW <<9 $F$%89G#&'   Ghay) ) w  1: FWQZ1,-Qwqr{mUR5upgUSUURUR S55-XS-nOU$Ms)aExpand Makefile-style variables -- "${foo}" or "$(foo)" -- in 'string' according to 'vars' (a dictionary mapping variable names to values). Variables not present in 'vars' are silently expanded to the empty string. The variable values in 'vars' should not contain further variable expansions; if 'vars' is the output of 'parse_makefile()', you're fine. Returns a variable-expanded version of 's'. rNz\$\(([A-Za-z][A-Za-z0-9_]*)\)z\${([A-Za-z][A-Za-z0-9_]*)}r;)rsearchspanr=r)r`rtr _findvar1_rx _findvar2_rxrbegends r#expand_makefile_varsr,sy3L1L  IIl & D"))L*D JS!C488AGGAJ//!D'9A  H r"r.)B__doc__r/r> threadingos.pathr__all__rrqr@r$rErrrsplitrrBrrr0rrr}rbase_exec_prefixrRLockrrr _USER_BASErKrrrWgetcwdr _sys_home startswithr<rZrrsrcrlrvr{rrrrrrrrr r r rrrrr r r$r,r!r"r#r8s3   ! gdbo Y ]  @966DH  )"---1# :gdbo Y ]  )"---1#  IX77d?/ :V/ =V #,.,KNYYSS ehjj`' >ALLT' )># kk!!$ ''*+1S-=-=a-@,AB!..q1233C3CA3F2GHww0 GG$$S%9%9:OO%     >>GGOON3>>$BCM#299;/M C$ '  M77d? m$// l^95 688$ RZZ'"2::.D#EFM" ! 0 "&)"9-y.y 1}1 5!$* * I!*6D /+  ()T (-.T$1E$P%P'd+N< r"