Ë
    nûàgÒ.  ã                   óâ   — d Z ddlZddlZddlZddlZddlZddlZddlmZ ddlm	Z	 ddl
mZ ddlZddlZddlZddlmZ ddlmZ d„ Zej*                  j-                  d	«       G d
„ d«      «       Zy)zTests for distutils.sysconfig.é    N)Ú	sysconfig)Únew_compiler)ÚUnixCCompiler)Útrim)Ú	swap_itemc                 ób   — t         j                  j                  dt        |«      i| «       | dz  S )NÚMakefile)ÚjaracoÚpathÚbuildr   )ÚrootÚcontentss     úh/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/setuptools/_distutils/tests/test_sysconfig.pyÚ_gen_makefiler      s*   € Ü
‡K�K×Ñ�z¤4¨£>Ð2°DÔ9Ø�*ÑÐó    Úsave_envc                   ó’  — e Zd Zd„ Zej
                  j                  d«      ej
                  j                  d«      d„ «       «       Zd„ Zd„ Z	ej
                  j                  d«      ej
                  j                  d«      ej
                  j                  d	«      d
„ «       «       «       Zej
                  j                  d«      ej
                  j                  d«      d„ «       «       Zd„ Zd„ Zej
                  j                  d«      ej
                  j                  d«      d„ «       «       Zd„ Zd„ Zd„ Zej
                  j                  d«      d„ «       Zej
                  j                  d«      d„ «       Zd„ Zd„ Zej
                  j                  d«      ej
                  j                  d«      d„ «       «       Zej
                  j                  d«      ej
                  j                  d«      ej
                  j                  dj3                  «       ej6                  j3                  «       vd¬«      d „ «       «       «       Zd!„ Zy")#ÚTestSysconfigc                 ón   — t        j                  «       }t        j                  j	                  |«      sJ ‚y ©N)r   Úget_config_h_filenameÚosr   Úisfile)ÚselfÚconfig_hs     r   Útest_get_config_h_filenamez(TestSysconfig.test_get_config_h_filename   s&   € Ü×2Ñ2Ó4ˆÜ�w‰w�~‰~˜hÔ'Ð'Ñ'r   zplatform.system() == 'Windows'z$sys.implementation.name != 'cpython'c                 ón   — t        j                  «       }t        j                  j	                  |«      sJ ‚y r   )r   Úget_makefile_filenamer   r   r   )r   Úmakefiles     r   Útest_get_makefile_filenamez(TestSysconfig.test_get_makefile_filename   s(   € ô ×2Ñ2Ó4ˆÜ�w‰w�~‰~˜hÔ'Ð'Ñ'r   c                 ó^   — t        j                  «       t        j                  |¬«      k7  sJ ‚y )N)Úprefix)r   Úget_python_lib)r   Útmp_paths     r   Útest_get_python_libz!TestSysconfig.test_get_python_lib%   s$   € Ü×'Ñ'Ó)¬Y×-EÑ-EÈXÔ-VÒVÐVÑVr   c                 óX   — t        j                  «       }t        |t        «      sJ ‚|sJ ‚y r   )r   Úget_config_varsÚ
isinstanceÚdict)r   Úcvarss     r   Útest_get_config_varsz"TestSysconfig.test_get_config_vars(   s'   € Ü×)Ñ)Ó+ˆÜ˜%¤Ô&Ð&Ð&Ùˆ‰ur   zsysconfig.IS_PYPYzsysconfig.python_buildzplatform.system() == "Windows"c                 ó$  — t        j                  t        j                  d«      «      }|j	                  «       sJ ‚|j                  «       sJ ‚t        j                  t        j                  «       «      }|j                  j                  |«      sJ ‚y )NÚsrcdir)	ÚpathlibÚPathr   Úget_config_varÚabsoluteÚis_dirr   ÚparentÚsamefile)r   r-   r   s      r   Útest_srcdir_simplez TestSysconfig.test_srcdir_simple-   sj   € ô
 —‘œi×6Ñ6°xÓ@ÓAˆà�‰Ô Ð Ð Ø�}‰}ŒÐˆä—<‘<¤	× ?Ñ ?Ó AÓBˆØ�‰×'Ñ'¨Ô/Ð/Ñ/r   znot sysconfig.python_buildc                 ó
  — t        j                  t        j                  d«      «      }|j	                  dd«      }|j                  «       sJ ‚t        j                  |«      sJ ‚t        j                  t        |«      «      sJ ‚y )Nr-   ÚIncludezPython.h)r.   r/   r   r0   ÚjoinpathÚis_fileÚ_is_python_source_dirÚstr)r   r-   ÚPython_hs      r   Útest_srcdir_python_buildz&TestSysconfig.test_srcdir_python_build:   sm   € ô —‘œi×6Ñ6°xÓ@ÓAˆð —?‘? 9¨jÓ9ˆØ×ÑÔ!Ð!Ð!Ü×.Ñ.¨vÔ6Ð6Ð6Ü×.Ñ.¬s°6«{Ô;Ð;Ñ;r   c                 óº   — t        j                  d«      }t        j                  d«      5  t        j                  d«      }ddd«       |k(  sJ ‚y# 1 sw Y   ŒxY w)zO
        srcdir should be independent of the current working directory
        r-   z..N)r   r0   r   r/   )r   r-   Úsrcdir2s      r   Útest_srcdir_independent_of_cwdz,TestSysconfig.test_srcdir_independent_of_cwdG   sR   € ô
 ×)Ñ)¨(Ó3ˆÜ�Y‰Y�t‹_ñ 	9Ü×.Ñ.¨xÓ8ˆG÷	9à˜Ò Ð Ñ ÷	9ð 	9ús   «AÁAc           	      ó@  —  G d„ d«      }ddddddd	d
dœ} |«       }t        j                  «       5 }|j                  «       D ]/  \  }}|j                  t	        t
        j                  ||«      «       Œ1 t        j                  |«       d d d «       |S # 1 sw Y   |S xY w)Nc                   ó4   — e Zd ZdZej
                  Zd„ Zd„ Zy)ú2TestSysconfig.customize_compiler.<locals>.compilerÚunixc                 ó   — i | _         y r   )Úexes©r   s    r   Ú__init__z;TestSysconfig.customize_compiler.<locals>.compiler.__init__W   s	   € Ø�•	r   c                 óR   — |j                  «       D ]  \  }}|| j                  |<   Œ y r   )ÚitemsrF   )r   ÚkwÚkÚvs       r   Úset_executableszBTestSysconfig.customize_compiler.<locals>.compiler.set_executablesZ   s(   € ØŸH™H›Jò %‘D�A�qØ#$�D—I‘I˜a’Lñ%r   N)Ú__name__Ú
__module__Ú__qualname__Úcompiler_typer   ÚexecutablesrH   rN   © r   r   ÚcompilerrC   S   s   „ Ø"ˆMØ'×3Ñ3ˆKòó%r   rU   Ú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Ú	ExitStackrJ   Úenter_contextr   r   Ú_config_varsÚcustomize_compiler)r   rU   Úsysconfig_varsÚcompÚcmÚkeyÚvalues          r   rg   z TestSysconfig.customize_compilerQ   s«   € ÷		%ñ 		%ð ØØØ%Ø#Ø'Ø%Ø.ñ	
ˆñ ‹zˆÜ×!Ñ!Ó#ð 	/ rØ,×2Ñ2Ó4ò P‘
��UØ× Ñ ¤¬9×+AÑ+AÀ3ÈÓ!NÕOðPä×(Ñ(¨Ô.÷	/ð
 ˆ÷	/ð
 ˆús   ±ABÂBz-not isinstance(new_compiler(), UnixCCompiler)Údisable_macos_customizationc                 ó>  — t        j                  «        dt        j                  d<   dt        j                  d<   dt        j                  d<   dt        j                  d<   d	t        j                  d
<   dt        j                  d<   dt        j                  d<   dt        j                  d<   dt        j                  d<   dt        j                  d<   | j	                  «       }|j
                  d   dk(  sJ ‚|j
                  d   dk(  sJ ‚|j
                  d   dk(  sJ ‚|j
                  d   dk(  sJ ‚|j
                  d   dk(  sJ ‚|j
                  d   dk(  sJ ‚|j
                  d    d!k(  sJ ‚|j                  d"k(  sJ ‚t        j                  d#k(  r|j
                  d$   dk(  sJ ‚d$|j
                  vsJ ‚t        j                  d= t        j                  d= t        j                  d= t        j                  d= t        j                  d
= t        j                  d= t        j                  d= t        j                  d= t        j                  d= t        j                  d= | j	                  «       }|j
                  d   d%k(  sJ ‚|j
                  d   d&k(  sJ ‚|j
                  d   d'k(  sJ ‚|j
                  d   d(k(  sJ ‚|j
                  d   d)k(  sJ ‚|j
                  d   d*k(  sJ ‚|j
                  d    d+k(  sJ ‚|j                  d"k(  sJ ‚d$|j
                  vsJ ‚y ),NÚenv_arr[   Úenv_ccr\   Úenv_cppÚCPPzenv_cxx --env-cxx-flagsr]   Úenv_ldsharedra   z--env-ldflagsÚLDFLAGSz--env-arflagsr^   z--env-cflagsr_   z--env-cppflagsÚCPPFLAGSÚ
env_ranlibÚRANLIBÚarchiverzenv_ar --env-arflagsÚpreprocessorzenv_cpp --env-cppflagsrU   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-cppflagsrZ   ÚdarwinÚranlibzsc_ar --sc-arflagszsc_cc -Ezsc_cc --sc-cflagszsc_cc --sc-cflags --sc-ccsharedzsc_cxx --sc-cflagsrW   rY   )	r   r'   r   Úenvironrg   rF   Úshared_lib_extensionÚsysÚplatform)r   ri   s     r   Útest_customize_compilerz%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                 óZ   — t        |d«      }t        j                  |«      }|dddœk(  sJ ‚y )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_basez&TestSysconfig.test_parse_makefile_base®   s:   € Ü Øðó
ˆô ×$Ñ$ XÓ.ˆØÐ$@È5ÑQÒQÐQÑQr   c                 óZ   — t        |d«      }t        j                  |«      }|dddœk(  sJ ‚y )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_dollarz0TestSysconfig.test_parse_makefile_literal_dollarº   s:   € Ü Øðó
ˆô ×$Ñ$ XÓ.ˆØÐ$CÈeÑTÒTÐTÑTr   c                 ó°   — dd l }|j                  d«      t        j                  d«      k(  sJ ‚|j                  d«      t        j                  d«      k(  sJ ‚y )Nr   r_   rt   ©r   r0   ©r   Úglobal_sysconfigs     r   Útest_sysconfig_modulez#TestSysconfig.test_sysconfig_moduleÆ   sa   € Û,à×.Ñ.¨xÓ8¼I×<TÑ<TØó=
ò 
ð 	
ð 
ð  ×.Ñ.¨yÓ9¼Y×=UÑ=UØó>
ò 
ð 	
ñ 
r   z3sysconfig.get_config_var('CUSTOMIZED_OSX_COMPILER')c                 ó  — dd l }t        j                  d«      rt        j                  d«       |j                  d«      t        j                  d«      k(  sJ ‚|j                  d«      t        j                  d«      k(  sJ ‚y )Nr   ÚCUSTOMIZED_OSX_COMPILERzcompiler flags customizedra   r\   )r   r0   ÚpytestÚskipr“   s     r   Útest_sysconfig_compiler_varsz*TestSysconfig.test_sysconfig_compiler_varsÝ   su   € ã,ä×#Ñ#Ð$=Ô>Ü�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                 óŠ   — t        j                  t        «      5  t        j                  d«       d d d «       y # 1 sw Y   y xY w)NÚSO)r˜   ÚwarnsÚDeprecationWarningr   r0   rG   s    r   Útest_SO_deprecationz!TestSysconfig.test_SO_deprecationè   s2   € ä�\‰\Ô,Ó-ñ 	+Ü×$Ñ$ TÔ*÷	+÷ 	+ñ 	+ús	   š9¹Ac                 óD  — t         j                  j                  dt        d«      i|«       t	        j
                  t        j                  |dz  gt        j                  t        j                  dd¬«      }|j                  «       \  }}d|j                  k(  s
J d|z   «       ‚y )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_varsz<TestSysconfig.test_customize_compiler_before_get_config_varsí   s–   € ô 	�‰×Ñàœð ó ðð ô	
ô ×ÑÜ�^‰^˜X¨Ñ.Ð/Ü—?‘?Ü×$Ñ$Ø#Øô
ˆð —]‘]“_‰
ˆˆdØ�A—L‘LÒ Ð>Ð"7¸$Ñ">Ó>Ñ r   c                 ó@  — t        j                  «       }i }t        |d¬«      5 }t        j                  ||¬«      }d d d «       |u sJ ‚t        |d¬«      5 }t        j                  |«      }d d d «       t	        |t
        «      sJ ‚y # 1 sw Y   ŒMxY w# 1 sw Y   Œ(xY w)Nr¢   )r¦   )Úg)r   r   ÚopenÚparse_config_hr(   r)   )r   r   ÚinputÚfÚresults        r   Útest_parse_config_hz!TestSysconfig.test_parse_config_h  s•   € Ü×2Ñ2Ó4ˆØˆÜ�( WÔ-ð 	:°Ü×-Ñ-¨a°5Ô9ˆF÷	:à˜‰ÐˆÜ�( WÔ-ð 	1°Ü×-Ñ-¨aÓ0ˆF÷	1ä˜&¤$Ô'Ð'Ñ'÷	:ð 	:ú÷	1ð 	1ús   ¤BÁBÂBÂBzplatform.system() != 'Windows'c                 ó„   — t        j                  d«      j                  d«      sJ ‚t        j                  d«      dk7  sJ ‚y )NÚ
EXT_SUFFIXz.pyd)r   r0   ÚendswithrG   s    r   Útest_win_ext_suffixz!TestSysconfig.test_win_ext_suffix  s<   € ô ×'Ñ'¨Ó5×>Ñ>¸vÔFÐFÐFÜ×'Ñ'¨Ó5¸Ò?Ð?Ñ?r   z	\PCbuild\z*Need sys.executable to be in a source tree)Úreasonc                 ó®  — t         j                  j                  «       }|j                  |_        ||_        |j                  «        |j                  «       ddg}t        j                  j                  t        j                  j                  t        j                  «      «      }t        j                  |i t        j                  ¥d|i¥¬«      }|dk(  sJ ‚y)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_treez2TestSysconfig.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                 óž   — d„ }|j                  t        d|«       t        j                  j	                  t        j
                  «       «      sJ ‚y)a5  
        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                 ó8   — | dk(  ryt        j                  | «      S )NÚ	INCLUDEPYz/does-not-existr’   )Únames    r   ÚoverridezFTestSysconfig.test_get_python_inc_missing_config_dir.<locals>.override8  s   € Ø�{Ò"Ø(Ü×+Ñ+¨DÓ1Ð1r   r0   N)Úsetattrr   r   r   ÚexistsÚget_python_inc)r   ÚmonkeypatchrÕ   s      r   Ú&test_get_python_inc_missing_config_dirz4TestSysconfig.test_get_python_inc_missing_config_dir.  s;   € ò	2ð
 	×ÑœIÐ'7¸ÔBä�w‰w�~‰~œi×6Ñ6Ó8Ô9Ð9Ñ9r   N)rO   rP   rQ   r   r˜   ÚmarkÚskipifr    r%   r+   Úxfailr5   r=   r@   rg   Úusefixturesr„   rŽ   r�   r•   rš   rŸ   r±   r¹   r½   Úcasefoldr‚   r©   rÐ   rÚ   rT   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__rc   rÊ   r   r.   r§   r‚   r   Údistutils.ccompilerr   Údistutils.unixccompilerr   Újaraco.envsr
   r   r˜   Újaraco.textr   Útest.supportr   r   rÛ   rÞ   r   rT   r   r   ú<module>ræ      sb   ðÙ $ã Û Û 	Û Û Û 
Ý Ý ,Ý 1ã Û Û Ý Ý "òð
 ‡�×Ñ˜Ó$÷e:ð e:ó %ñe:r   