ó
    µ'ÔiÒ.  ã                   óâ   • S r SSKrSSKrSSKrSSKrSSKrSSKrSSKJr  SSKJ	r	  SSK
Jr  SSKrSSKrSSKrSSKJr  SSKJr  S r\R*                  R-                  S	5       " S
 S5      5       rg)zTests for distutils.sysconfig.é    N)Ú	sysconfig)Únew_compiler)ÚUnixCCompiler)Útrim)Ú	swap_itemc                 ób   • [         R                  R                  S[        U5      0U 5        U S-  $ )NÚMakefile)ÚjaracoÚpathÚbuildr   )ÚrootÚcontentss     Úi/var/www/surfInsights/venv3-11/lib/python3.13/site-packages/setuptools/_distutils/tests/test_sysconfig.pyÚ_gen_makefiler      s*   € Ü
‡K�K×Ñ�z¤4¨£>Ð2°DÔ9Ø�*ÑÐó    Úsave_envc                   ó–  • \ rS rSrS r\R                  R                  S5      \R                  R                  S5      S 5       5       rS r	S r
\R                  R                  S5      \R                  R                  S	5      \R                  R                  S
5      S 5       5       5       r\R                  R                  S5      \R                  R                  S5      S 5       5       rS rS r\R                  R                  S5      \R                  R!                  S5      S 5       5       rS rS rS r\R                  R                  S5      S 5       r\R                  R                  S5      S 5       rS rS r\R                  R                  S5      \R                  R                  S5      S 5       5       r\R                  R                  S5      \R                  R                  S5      \R                  R                  SR5                  5       \R8                  R5                  5       ;  SS 9S! 5       5       5       rS" rS#rg$)%ÚTestSysconfigé   c                 óz   • [         R                  " 5       n[        R                  R	                  U5      (       d   eg ©N)r   Úget_config_h_filenameÚosr   Úisfile)ÚselfÚconfig_hs     r   Útest_get_config_h_filenameÚ(TestSysconfig.test_get_config_h_filename   s)   € Ü×2Ò2Ó4ˆÜ�w‰w�~‰~˜h×'Ñ'Ð'Ñ'r   zplatform.system() == 'Windows'z$sys.implementation.name != 'cpython'c                 óz   • [         R                  " 5       n[        R                  R	                  U5      (       d   eg r   )r   Úget_makefile_filenamer   r   r   )r   Úmakefiles     r   Útest_get_makefile_filenameÚ(TestSysconfig.test_get_makefile_filename   s+   € ô ×2Ò2Ó4ˆÜ�w‰w�~‰~˜h×'Ñ'Ð'Ñ'r   c                 ó^   • [         R                  " 5       [         R                  " US9:w  d   eg )N)Úprefix)r   Úget_python_lib)r   Útmp_paths     r   Útest_get_python_libÚ!TestSysconfig.test_get_python_lib%   s$   € Ü×'Ò'Ó)¬Y×-EÒ-EÈXÑ-VÓVÐVÑVr   c                 ón   • [         R                  " 5       n[        U[        5      (       d   eU(       d   eg r   )r   Úget_config_varsÚ
isinstanceÚdict)r   Úcvarss     r   Útest_get_config_varsÚ"TestSysconfig.test_get_config_vars(   s*   € Ü×)Ò)Ó+ˆÜ˜%¤×&Ñ&Ð&Ð&Þˆ‰ur   zsysconfig.IS_PYPYzsysconfig.python_buildzplatform.system() == "Windows"c                 óJ  • [         R                  " [        R                  " S5      5      nUR	                  5       (       d   eUR                  5       (       d   e[         R                  " [        R                  " 5       5      nUR                  R                  U5      (       d   eg )NÚsrcdir)	ÚpathlibÚPathr   Úget_config_varÚabsoluteÚis_dirr    ÚparentÚsamefile)r   r2   r!   s      r   Útest_srcdir_simpleÚ TestSysconfig.test_srcdir_simple-   sr   € ô
 —’œi×6Ò6°xÓ@ÓAˆà�‰× Ñ Ð Ð Ø�}‰}�‰Ðˆä—<’<¤	× ?Ò ?Ó AÓBˆØ�‰×'Ñ'¨×/Ñ/Ð/Ñ/r   znot sysconfig.python_buildc                 ó0  • [         R                  " [        R                  " S5      5      nUR	                  SS5      nUR                  5       (       d   e[        R                  " U5      (       d   e[        R                  " [        U5      5      (       d   eg )Nr2   ÚIncludezPython.h)r3   r4   r   r5   ÚjoinpathÚis_fileÚ_is_python_source_dirÚstr)r   r2   ÚPython_hs      r   Útest_srcdir_python_buildÚ&TestSysconfig.test_srcdir_python_build:   sv   € ô —’œi×6Ò6°xÓ@ÓAˆð —?‘? 9¨jÓ9ˆØ×Ñ×!Ñ!Ð!Ð!Ü×.Ò.¨v×6Ñ6Ð6Ð6Ü×.Ò.¬s°6«{×;Ñ;Ð;Ñ;r   c                 óÌ   • [         R                  " S5      n[        R                  " S5         [         R                  " S5      nSSS5        UW:X  d   eg! , (       d  f       N= f)z?
srcdir should be independent of the current working directory
r2   z..N)r   r5   r   r4   )r   r2   Úsrcdir2s      r   Útest_srcdir_independent_of_cwdÚ,TestSysconfig.test_srcdir_independent_of_cwdG   sJ   € ô
 ×)Ò)¨(Ó3ˆÜ�YŠY�t�_Ü×.Ò.¨xÓ8ˆG÷ à˜Ó Ð Ñ ÷ �_ús   ­AÁ
A#c           	      óN  •  " S S5      nSSSSSSS	S
S.nU" 5       n[         R                  " 5        nUR                  5        H.  u  pVUR                  [	        [
        R                  XV5      5        M0     [
        R                  " U5        S S S 5        U$ ! , (       d  f       U$ = f)Nc                   ó<   • \ rS rSrSr\R                  rS rS rSr	g)Ú2TestSysconfig.customize_compiler.<locals>.compileréS   Úunixc                 ó   • 0 U l         g r   ©Úexes©r   s    r   Ú__init__Ú;TestSysconfig.customize_compiler.<locals>.compiler.__init__W   s	   € Ø�•	r   c                 óR   • UR                  5        H  u  p#X0R                  U'   M     g r   )ÚitemsrP   )r   ÚkwÚkÚvs       r   Úset_executablesÚBTestSysconfig.customize_compiler.<locals>.compiler.set_executablesZ   s   € ØŸH™HžJ‘D�AØ#$—I‘I˜a“Lò 'r   rO   N)
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Úcompiler_typer   ÚexecutablesrR   rY   Ú__static_attributes__© r   r   ÚcompilerrK   S   s   † Ø"ˆMØ'×3Ñ3ˆKòõ%r   rc   Úsc_arÚsc_ccÚsc_cxxz--sc-arflagsz--sc-cflagsz--sc-ccsharedÚsc_ldsharedÚsc_shutil_suffix)ÚARÚCCÚCXXÚARFLAGSÚCFLAGSÚCCSHAREDÚLDSHAREDÚSHLIB_SUFFIX)Ú
contextlibÚ	ExitStackrU   Úenter_contextr   r   Ú_config_varsÚcustomize_compiler)r   rc   Úsysconfig_varsÚcompÚcmÚkeyÚvalues          r   ru   Ú TestSysconfig.customize_compilerQ   sž   € ÷		%ñ 		%ð ØØØ%Ø#Ø'Ø%Ø.ñ	
ˆñ ‹zˆÜ×!Ò!Ô# rØ,×2Ñ2Ö4‘
�Ø× Ñ ¤¬9×+AÑ+AÀ3Ó!NÖOñ 5ä×(Ò(¨Ô.÷ $ð
 ˆ÷ $Ô#ð
 ˆús   ²ABÂ
B$z-not isinstance(new_compiler(), UnixCCompiler)Údisable_macos_customizationc                 ón  • [         R                  " 5         S[        R                  S'   S[        R                  S'   S[        R                  S'   S[        R                  S'   S	[        R                  S
'   S[        R                  S'   S[        R                  S'   S[        R                  S'   S[        R                  S'   S[        R                  S'   U R	                  5       nUR
                  S   S:X  d   eUR
                  S   S:X  d   eUR
                  S   S:X  d   eUR
                  S   S:X  d   eUR
                  S   S:X  d   eUR
                  S   S:X  d   eUR
                  S    S!:X  d   eUR                  S":X  d   e[        R                  S#:X  a  UR
                  S$   S:X  d   eOS$UR
                  ;  d   e[        R                  S	 [        R                  S	 [        R                  S	 [        R                  S	 [        R                  S
	 [        R                  S	 [        R                  S	 [        R                  S	 [        R                  S	 [        R                  S	 U R	                  5       nUR
                  S   S%:X  d   eUR
                  S   S&:X  d   eUR
                  S   S':X  d   eUR
                  S   S(:X  d   eUR
                  S   S):X  d   eUR
                  S   S*:X  d   eUR
                  S    S+:X  d   eUR                  S":X  d   eS$UR
                  ;  d   eg ),NÚenv_arri   Úenv_ccrj   Úenv_cppÚCPPzenv_cxx --env-cxx-flagsrk   Úenv_ldsharedro   z--env-ldflagsÚLDFLAGSz--env-arflagsrl   z--env-cflagsrm   z--env-cppflagsÚCPPFLAGSÚ
env_ranlibÚRANLIBÚarchiverzenv_ar --env-arflagsÚpreprocessorzenv_cpp --env-cppflagsrc   z"env_cc --env-cflags --env-cppflagsÚcompiler_soz0env_cc --env-cflags --env-cppflags --sc-ccsharedÚcompiler_cxxz2env_cxx --env-cxx-flags --sc-cflags --env-cppflagsÚ
linker_exeÚ	linker_soz6env_ldshared --env-ldflags --env-cflags --env-cppflagsrh   ÚdarwinÚranlibzsc_ar --sc-arflagszsc_cc -Ezsc_cc --sc-cflagszsc_cc --sc-cflags --sc-ccsharedzsc_cxx --sc-cflagsre   rg   )	r   r+   r   Úenvironru   rP   Úshared_lib_extensionÚsysÚplatform)r   rw   s     r   Útest_customize_compilerÚ%TestSysconfig.test_customize_compilerq   s  € ô 	×!Ò!Ô#à#Œ�
‰
�4ÑØ#Œ�
‰
�4ÑØ%Œ�
‰
�5ÑØ5Œ�
‰
�5ÑØ!/Œ�
‰
�:ÑØ /Œ�
‰
�9ÑØ /Œ�
‰
�9ÑØ-Œ�
‰
�8ÑØ!1Œ�
‰
�:ÑØ+Œ�
‰
�8Ñà×&Ñ&Ó(ˆØ�y‰y˜Ñ$Ð(>Ó>Ð>Ð>Ø�y‰y˜Ñ(Ð,DÓDÐDÐDØ�y‰y˜Ñ$Ð(LÓLÐLÐLØ�y‰y˜Ñ'Ø>ó
ð 	
ð 
ð �I‰I�nÑ%ØCóDð	
ðDð �y‰y˜Ñ&¨(Ó2Ð2Ð2Ø�y‰y˜Ñ%ØDó
ð 	
ð 
ð ×(Ñ(Ð,>Ó>Ð>Ð>ä�<‰<˜8Ó#Ø—9‘9˜XÑ&¨,Ó6Ð6Ñ6à 4§9¡9Ó,Ð,Ð,ä�J‰J�tÐÜ�J‰J�tÐÜ�J‰J�uÐÜ�J‰J�uÐÜ�J‰J�zÐ"Ü�J‰J�yÐ!Ü�J‰J�yÐ!Ü�J‰J�xÐ Ü�J‰J�zÐ"Ü�J‰J�xÐ à×&Ñ&Ó(ˆØ�y‰y˜Ñ$Ð(<Ó<Ð<Ð<Ø�y‰y˜Ñ(¨JÓ6Ð6Ð6Ø�y‰y˜Ñ$Ð(;Ó;Ð;Ð;Ø�y‰y˜Ñ'Ð+LÓLÐLÐLØ�y‰y˜Ñ(Ð,@Ó@Ð@Ð@Ø�y‰y˜Ñ&¨'Ó1Ð1Ð1Ø�y‰y˜Ñ%¨Ó6Ð6Ð6Ø×(Ñ(Ð,>Ó>Ð>Ð>Ø˜tŸy™yÓ(Ð(Ñ(r   c                 ó^   • [        US5      n[        R                  " U5      nUSSS.:X  d   eg )Nzo
            CONFIG_ARGS=  '--arg1=optarg1' 'ENV=LIB'
            VAR=$OTHER
            OTHER=foo
            z'--arg1=optarg1' 'ENV=LIB'Úfoo©ÚCONFIG_ARGSÚOTHER©r   r   Úparse_makefile©r   r'   r!   Úds       r   Útest_parse_makefile_baseÚ&TestSysconfig.test_parse_makefile_base®   s:   € Ü Øðó
ˆô ×$Ò$ XÓ.ˆØÐ$@È5ÑQÓQÐQÑQr   c                 ó^   • [        US5      n[        R                  " U5      nUSSS.:X  d   eg )Nzr
            CONFIG_ARGS=  '--arg1=optarg1' 'ENV=\$$LIB'
            VAR=$OTHER
            OTHER=foo
            z'--arg1=optarg1' 'ENV=\$LIB'r–   r—   rš   rœ   s       r   Ú"test_parse_makefile_literal_dollarÚ0TestSysconfig.test_parse_makefile_literal_dollarº   s:   € Ü Øðó
ˆô ×$Ò$ XÓ.ˆØÐ$CÈeÑTÓTÐTÑTr   c                 ó¸   • SS K nUR                  S5      [         R                  " S5      :X  d   eUR                  S5      [         R                  " S5      :X  d   eg )Nr   rm   rƒ   ©r   r5   ©r   Úglobal_sysconfigs     r   Útest_sysconfig_moduleÚ#TestSysconfig.test_sysconfig_moduleÆ   sa   € Û,à×.Ñ.¨xÓ8¼I×<TÒ<TØó=
ó 
ð 	
ð 
ð  ×.Ñ.¨yÓ9¼Y×=UÒ=UØó>
ó 
ð 	
ñ 
r   z3sysconfig.get_config_var('CUSTOMIZED_OSX_COMPILER')c                 ó  • SS K n[         R                  " S5      (       a  [        R                  " S5        UR                  S5      [         R                  " S5      :X  d   eUR                  S5      [         R                  " S5      :X  d   eg )Nr   ÚCUSTOMIZED_OSX_COMPILERzcompiler flags customizedro   rj   )r   r5   ÚpytestÚskipr¥   s     r   Útest_sysconfig_compiler_varsÚ*TestSysconfig.test_sysconfig_compiler_varsÝ   sx   € ã,ä×#Ò#Ð$=×>Ñ>Ü�KŠKÐ3Ô4Ø×.Ñ.¨zÓ:¼i×>VÒ>VØó?
ó 
ð 	
ð 
ð  ×.Ñ.¨tÓ4¼	×8PÒ8PÐQUÓ8VÓVÐVÑVr   z*not sysconfig.get_config_var('EXT_SUFFIX')c                 ó˜   • [         R                  " [        5         [        R                  " S5        S S S 5        g ! , (       d  f       g = f)NÚSO)r«   ÚwarnsÚDeprecationWarningr   r5   rQ   s    r   Útest_SO_deprecationÚ!TestSysconfig.test_SO_deprecationè   s)   € ä�\Š\Ô,Õ-Ü×$Ò$ TÔ*÷ .×-Ö-ús	   ›;»
A	c                 ó@  • [         R                  R                  S[        S5      0U5        [        R
                  " [        R                  US-  /[        R                  [        R                  SSS9nUR                  5       u  p4SUR                  :X  d
   SU-   5       eg )NÚfilea[  
                    from distutils.core import Distribution
                    config = Distribution().get_command_obj('config')
                    # try_compile may pass or it may fail if no compiler
                    # is found but it should not raise an exception.
                    rc = config.try_compile('int x;')
                    Túutf-8)ÚstdoutÚstderrÚuniversal_newlinesÚencodingr   zSubprocess failed: )r
   r   r   r   Ú
subprocessÚPopenr‘   Ú
executableÚPIPEÚSTDOUTÚcommunicateÚ
returncode)r   r'   ÚpÚoutsÚerrss        r   Ú.test_customize_compiler_before_get_config_varsÚ<TestSysconfig.test_customize_compiler_before_get_config_varsí   s”   € ô 	�‰×Ñàœð ó ðð ô	
ô ×ÒÜ�^‰^˜X¨Ñ.Ð/Ü—?‘?Ü×$Ñ$Ø#Øñ
ˆð —]‘]“_‰
ˆØ�A—L‘LÓ Ð>Ð"7¸$Ñ">Ó>Ñ r   c                 óR  • [         R                  " 5       n0 n[        USS9 n[         R                  " X2S9nS S S 5        UWL d   e[        USS9 n[         R                  " U5      nS S S 5        [	        U[
        5      (       d   eg ! , (       d  f       NV= f! , (       d  f       N7= f)Nr·   )r»   )Úg)r   r   ÚopenÚparse_config_hr,   r-   )r   r   ÚinputÚfÚresults        r   Útest_parse_config_hÚ!TestSysconfig.test_parse_config_h  sˆ   € Ü×2Ò2Ó4ˆØˆÜ�( WÒ-°Ü×-Ò-¨aÑ9ˆF÷ .à˜ŠÐˆÜ�( WÒ-°Ü×-Ò-¨aÓ0ˆF÷ .ä˜&¤$×'Ñ'Ð'Ñ'÷ .Õ-ú÷ .Õ-ús   ¢BÁBÂ
BÂ
B&zplatform.system() != 'Windows'c                 ó”   • [         R                  " S5      R                  S5      (       d   e[         R                  " S5      S:w  d   eg )NÚ
EXT_SUFFIXz.pyd)r   r5   ÚendswithrQ   s    r   Útest_win_ext_suffixÚ!TestSysconfig.test_win_ext_suffix  s?   € ô ×'Ò'¨Ó5×>Ñ>¸v×FÑFÐFÐFÜ×'Ò'¨Ó5¸Ó?Ð?Ñ?r   z	\PCbuild\z*Need sys.executable to be in a source tree)Úreasonc                 óª  • [         R                  R                  5       nUR                  Ul        Xl        UR                  5         UR                  5       SS/n[        R                  R                  [        R                  R                  [        R                  5      5      n[        R                  " U0 [        R                  ESU0ES9nUS:X  d   eg)zAEnsure distutils.sysconfig detects venvs from source tree builds.z-czCimport distutils.sysconfig; print(distutils.sysconfig.python_build)Ú
PYTHONPATH)ÚenvÚTrueN)r
   ÚenvsÚVEnvÚ
clean_optsÚcreate_optsr   Ú
ensure_envÚexer   r   ÚdirnameÚ	distutilsÚ__file__r¼   Úcheck_outputr�   )r   r'   rÙ   ÚcmdÚdistutils_pathÚouts         r   Ú$test_win_build_venv_from_source_treeÚ2TestSysconfig.test_win_build_venv_from_source_tree  s¡   € ô �k‰k×ÑÓ ˆØŸ.™.ˆŒØŒØ�‰Ôà�G‰G‹IØØQð
ˆô
 Ÿ™Ÿ™¬¯©¯©¼×9KÑ9KÓ)LÓMˆÜ×%Ò%ØÐAœŸ
™
ÐA L°.ÑAñ
ˆð �f‹}Ð‰}r   c                 óª   • S nUR                  [        SU5        [        R                  R	                  [        R
                  " 5       5      (       d   eg)a  
In portable Python installations, the sysconfig will be broken,
pointing to the directories where the installation was built and
not where it currently is. In this case, ensure that the missing
directory isn't used for get_python_inc.

See pypa/distutils#178.
c                 ó<   • U S:X  a  g[         R                  " U 5      $ )NÚ	INCLUDEPYz/does-not-existr¤   )Únames    r   ÚoverrideÚFTestSysconfig.test_get_python_inc_missing_config_dir.<locals>.override8  s   € Ø�{Ó"Ø(Ü×+Ò+¨DÓ1Ð1r   r5   N)Úsetattrr   r   r   ÚexistsÚget_python_inc)r   Úmonkeypatchrî   s      r   Ú&test_get_python_inc_missing_config_dirÚ4TestSysconfig.test_get_python_inc_missing_config_dir.  s>   € ò	2ð
 	×ÑœIÐ'7¸ÔBä�w‰w�~‰~œi×6Ò6Ó8×9Ñ9Ð9Ñ9r   rb   N) r[   r\   r]   r^   r   r«   ÚmarkÚskipifr"   r(   r/   Úxfailr:   rC   rG   ru   Úusefixturesr“   rž   r¡   r§   r­   r³   rÆ   rÏ   rÔ   Úcasefoldr‘   r¾   rè   rô   ra   rb   r   r   r   r      sM  † ò(ð ‡[�[×ÑÐ8Ó9Ø‡[�[×ÑÐ>Ó?ñ(ó @ó :ð(òWòð
 ‡[�[×ÑÐ+Ó,Ø‡[�[×ÑÐ0Ó1Ø‡[�[×ÑÐ7Ó8ñ0ó 9ó 2ó -ð0ð ‡[�[×ÑÐ+Ó,Ø‡[�[×ÑÐ4Ó5ñ	<ó 6ó -ð	<ò!òð@ ‡[�[×ÑÐGÓHØ‡[�[×ÑÐ:Ó;ñ9)ó <ó Ið9)òv
Rò
Uò
ð. ‡[�[×ÑÐMÓNñWó OðWð ‡[�[×ÑÐDÓEñ+ó Fð+ò?ò4(ð ‡[�[×ÑÐ8Ó9Ø‡[�[×ÑÐ>Ó?ñ@ó @ó :ð@ð ‡[�[×ÑÐ8Ó9Ø‡[�[×ÑÐ>Ó?Ø‡[�[×ÑØ×ÑÓ ¨¯©×(?Ñ(?Ó(AÑAØ;ð ð ñó	ó @ó :ðõ":r   r   )Ú__doc__rq   râ   r   r3   r¼   r‘   r   Údistutils.ccompilerr   Údistutils.unixccompilerr   Újaraco.envsr
   r   r«   Újaraco.textr   Útest.supportr   r   rö   rù   r   rb   r   r   Ú<module>r     sb   ðÙ $ã Û Û 	Û Û Û 
Ý Ý ,Ý 1ã Û Û Ý Ý "òð
 ‡�×Ñ˜Ó$÷e:ð e:ó %ñe:r   