a0biISrSSKrSSKrSSKrSSKrSSKrSSKJr SSKJ r SSK J r S\R;r \RR\R 5r\RR\R$5r\RR\R(5r\RR\R,5rS\R0;a)\RR3\R0S5rOa\R6(a?\RR9\RR3\R655rO\R:"5rS r\"\S S5r S r!\RDS :Xa\ S 5r#\#"\5r\#"\ 5r Sr$\$"5r%Sr&\%(d \RNr&Sr)S%Sjr*\ S5r+Sr,Sr-Sr.Sr/Sr0Sr1S&Sjr2Sr3Sr4Sr5S'Sjr6\Rn"S5r8\Rn"S5r9\Rn"S 5r:S'S!jr;S"rS$r?g!\(a Nf=f)(aProvide access to Python's configuration information. The specific configuration variables available depend heavily on the platform and configuration. The values may be retrieved using get_config_var(name), and the list of variables is available via get_config_vars().keys(). Additional convenience functions are also available. Written by: Fred L. Drake, Jr. Email: N)DistutilsPlatformError) py39compat) pass_none__pypy___PYTHON_PROJECT_BASEcx^[R"U5RS5m[U4SjS55$)zQ Return True if the target directory appears to point to an un-installed Python. Modulesc3b># UH$nTRU5R5v M& g7fN)joinpathis_file).0fnmoduless ژ/builddir/build/BUILDROOT/alt-python313-setuptools-69.0.2-3.el8.x86_64/opt/alt/python313/lib/python3.13/site-packages/setuptools/_distutils/sysconfig.py (_is_python_source_dir..2s*Q8P"w#++--8Ps,/)Setupz Setup.local)pathlibPathr any)drs @r_is_python_source_dirr,s/ ll1o&&y1G Q8PQ QQ_homec[RRU5R[RRU55$)z$ Return True if a is a parent of b. )ospathnormcase startswith)dir_adir_bs r _is_parentr$8s3 77  E " - -bgg.>.>u.E FFrntcL^[[4nU4SjU5n[UT5$)Nc3># UH8n[T[RRUS55(dM4Uv M: g7f)PCbuildN)r$rrjoin)rprefixrs rr_fix_pcbuild..Es3 "!RWW\\&)<= F"s 3A A)PREFIX BASE_PREFIXnext)rprefixesmatcheds` r _fix_pcbuildr1As-;& "  GQrcT[(a[[5$[[5$r ) _sys_homer project_baserr _python_buildr6Psy$Y//  ..rc.S[RSS-$)zReturn a string containing the major and minor Python version, leaving off the patchlevel. Sample return values could be '1.5' or '2.2'. z%d.%dN)sys version_infor5rrget_python_versionr<fs S%%bq) ))rcU(a[O[nUbUOUn[5S[R3nU"X1U5$![ a [ S[R-5ef=f)aReturn the directory containing installed Python header files. If 'plat_specific' is false (the default), this is the path to the non-platform-specific header files, i.e. Python.h and so on; otherwise, this is the path to platform-specific header files (namely pyconfig.h). If 'prefix' is supplied, use it instead of sys.base_prefix or sys.base_exec_prefix -- i.e., ignore 'plat_specific'. _get_python_inc_zFI don't know where Python installs its C header files on platform '%s')BASE_EXEC_PREFIXr-globalsrnameKeyErrorr) plat_specificr*default_prefixresolved_prefixgetters rget_python_incrGnsu*7%KN & 2fO -bggY78 /= 99  $ !# )   s A'A*cR[RRU5(aU$S$)z- Replace path with None if it doesn't exist. N)rrexists)rs r_extantrJs! 77>>$''41T1rc[(a4[RS:a [RR US5$[ U5=(d& [[X!55=(d [U5$)Ninclude) IS_PYPYr:r;rrr)_get_python_inc_posix_pythonrJ_get_python_inc_from_config_get_python_inc_posix_prefixr* spec_prefixrCs r_get_python_inc_posixrVsVw3##f,ww||FI..$]3 0 .}J K 0 ' /rc[(dgU(a[=(d [$[RR [ S5S5n[RRU5$)z Assume the executable is in the build directory. The pyconfig.h file should be in the same directory. Since the build directory may not be the source directory, use "srcdir" from the makefile to find the "Include" directory. NsrcdirInclude) python_buildr3r4rrr)get_config_varnormpath)rCincdirs rrQrQsH <(L( WW\\.2I >F 77  F ##rc,Uc[SU-S-5$g)a* If no prefix was explicitly specified, provide the include directory from the config vars. Useful when cross-compiling, since the config vars may come from the host platform Python installation, while the current Python executable is from the build platform installation. >>> monkeypatch = getfixture('monkeypatch') >>> gpifc = _get_python_inc_from_config >>> monkeypatch.setitem(gpifc.__globals__, 'get_config_var', str.lower) >>> gpifc(False, '/usr/bin/') >>> gpifc(False, '') >>> gpifc(False, None) 'includepy' >>> gpifc(True, None) 'confincludepy' NCONF INCLUDEPY)r[)rCrUs rrRrRs$&f}4{BCCrc[(aSOSnU[5-[-n[RR USU5$)NpypypythonrO)rPr< build_flagsrrr))r*implementation python_dirs rrSrSs7&wVHN"4"66DJ 77<< : 66rc[(a\[RRUS5[RR-[RRUS5-$[RRUS5$)NrOPC)rZrrr)pathseprTs r_get_python_inc_ntrjs^| GGLL +ggoo ggll64( ) 77<< **rcTU(aU$[RRUS5$)N site-packages)rrr)) standard_lib libpython early_prefixr*s r _posix_librps ww||I77rcv[(av[RS:abUc[nU(a2[R R US[RS5$[R R US5$UnUc@U(aU=(a [=(d [nOU=(a [=(d [n[RS:XahU(dU(a[[SS5nOSn[(aSOS n[R R X$U[5-5n[XX25$[RS :XaHU(a [R R US 5$[R R US S5$[S [R-5e) a+Return the directory containing the Python library (standard or site additions). If 'plat_specific' is true, return the directory containing platform-specific modules, i.e. any module from a non-pure-Python module distribution; otherwise, return the platform-shared library directory. If 'standard_lib' is true, return the directory containing standard Python library modules; otherwise, return the directory for site-specific modules. If 'prefix' is supplied, use it instead of sys.base_prefix or sys.base_exec_prefix -- i.e., ignore 'plat_specific'. rLz lib-pythonrrlposix platlibdirlibrbrcr%Libz?I don't know where Python installs its library on platform '%s')rPr:r;r,rrr)versionr?r- EXEC_PREFIXrAgetattrr<rpr)rCrmr*rolibdirrerns rget_python_librzs8w3##f, >F 77<< ckk!nE Eww||FO44L ~ "7'7F;F"2{>H 2:: D!B  "Cx"**Y"77HCx(*HcF"   x/ !  rzz !h&:&:&>&>x&N&N  $ $BJJx,@ $ A(4%g(rc4[(ay[RS:Xa2[RR [ =(d [ S5nO[ =(d [ n[RR US5$[R"5$)z2Return full pathname of installed pyconfig.h file.r%rhz pyconfig.h) rZrrArr)r3r4 sysconfigget_config_h_filename)inc_dirs rrrjsY| 77d?ggll9#< dCG/O2O!g- % #4 ?3%''DGd!%%'),E!+AGGI.5=Ee|(- /$'JE*/J#M??511d12hBS6S#'8D#/-2T  07T1(M]" 'bHHJ 1 a  ggiDG HHTN HO"3iic2DG3` *7).DJ7s$ J J?J<;J<?KKc[RU5=(d [RU5nU(a>UR5up4USUUR UR S55-XS-nOU$M{)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'. rrN)rrrspanrr)srrbegrs rexpand_makefile_varsrsn     " rs.  *! 00 0   #** %ggs/ ggs/ 77##C$8$89 RZZ'77??2::.D#EFL ~~wwrwws~~'FG yy{ R C$ ' G77d?   -LY'I/    ll *:. 2 2 $ D.7 +83 lY5x 1- 0zz?@ zz:; zz89 i X 2 O$ 'M   s+H::II