Ë
    nûàgòM  ã                   óÖ  — 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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mZmZmZmZ d dlmZ d dlmZ d dlmZmZ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'  e"jP                  «       d„ «       Z)e jT                  d„ «       Z+e jT                  d„ «       Z,e"jZ                  j]                  d«       G d„ de«      «       Z/ G d„ de/«      Z0y)é    N)Ú	sysconfig©Ú	build_ext)ÚDistribution)ÚCompileErrorÚDistutilsPlatformErrorÚDistutilsSetupErrorÚUnknownFileError)Ú	Extension)Úmissing_compiler_executable)ÚTempdirManagerÚcopy_xxmodule_cÚfixup_build_ext)ÚStringIO)Úsupporté   )Úpy39c              #   óŒ  K  — | j                   }|j                  «       |_        t        j                  |j                  «      |_        ddlm} t        j                  }|j                  «       t        _	        t        j                  |_	        |j
                  5  d –— d d d «       |t        _	        ||_	        y # 1 sw Y   ŒxY w­w)Nr   r   )
ÚinstanceÚmkdtempÚtmp_dirÚpathÚPathÚtmp_pathÚdistutils.commandr   ÚsiteÚ	USER_BASE)ÚrequestÚselfr   Úorig_user_bases       úh/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/setuptools/_distutils/tests/test_build_ext.pyÚuser_site_dirr"   !   sˆ   è ø€ à×Ñ€DØ—<‘<“>€D„LÜ—I‘I˜dŸl™lÓ+€D„MÝ+ä—^‘^€Nà—\‘\“^„D„NÜŸ.™.€IÔð
 
�‰ñ Û÷ð $„D„NØ(€IÕ÷	ð üs   ‚BCÂB8ÂCÂ8CÂ=Cc              #   óþ   K  — t        j                  | «      5  t        | |«      5 }t        j                  |«      5  d –— d d d «       d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   ŒxY w# 1 sw Y   y xY w­w©N)Úimport_helperÚCleanImportÚextension_redirectÚDirsOnSysPath)Únamer   Únew_paths      r!   Úsafe_extension_importr+   7   st   è ø€ ä	×	"Ñ	" 4Ó	(ñ Ü  dÓ+ð 	¨xÜ×,Ñ,¨XÓ6ñ Û÷÷	÷ð ÷ð ú÷	ð 	ú÷ð üsJ   ‚A=˜A1¥A%»AÁ A%ÁA1Á	A=ÁA"ÁA%Á%A.	Á*A1Á1A:Á6A=c              #   ó<  K  — t        j                  «       dk7  rt        j                   dk7  r|–— yt        j                  |«      5  t
        j                  j                  | «      }ddd«       t        j                  j                  j                  «      }t        j                  d¬«      }t        j                  j                  |t        j                  j                  |«      «      }t        j                   |j                  |«       |–— y# 1 sw Y   ŒªxY w­w)zÁ
    Tests will fail to tear down an extension module if it's been imported.

    Before importing, copy the file to a temporary directory that won't
    be cleaned up. Yield the new path.
    ÚWindowsÚcygwinNÚdeleteme)Úprefix)ÚplatformÚsystemÚsysr%   r(   Ú	importlibÚutilÚ	find_specÚosr   ÚbasenameÚoriginÚtempfiler   ÚjoinÚshutilÚcopy)Úmodr   ÚspecÚfilenameÚ	trash_dirÚdests         r!   r'   r'   ?   sÂ   è ø€ ô ‡�Ó˜IÒ%¬#¯,©,¸(Ò*BØŠ
ØÜ	×	$Ñ	$ TÓ	*ñ -Ü�~‰~×'Ñ'¨Ó,ˆ÷-ä�w‰w×Ñ §¡Ó,€HÜ× Ñ ¨
Ô3€IÜ�7‰7�<‰<˜	¤2§7¡7×#3Ñ#3°HÓ#=Ó>€DÜ
‡K�K�—‘˜TÔ"Ø
ƒO÷-ð -üs   ‚ADÁ DÁ'B)DÄDÄDr"   c                   óä  — e Zd Zd„ Zd„ Zed„ «       Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zej$                  j'                  d«      ej$                  j)                  d«      d„ «       «       Zej$                  j'                  d«      ej$                  j)                  d«      d„ «       «       Zej$                  j'                  d«      ej$                  j)                  d«      d„ «       «       Zd„ Zy)ÚTestBuildExtc                 ó   — t        |i |¤ŽS r$   r   )r   ÚargsÚkwargss      r!   r   zTestBuildExt.build_extV   s   € Ü˜$Ð) &Ñ)Ð)ó    c                 óÀ  — t        «        t        | j                  «       t        j                  j                  | j                  d«      }t        d|g«      }t        d|gdœ«      }| j                  |_        | j                  |«      }t        |«       | j                  |_        | j                  |_        t        j                  }t        j                   st#        «       t        _        	 |j%                  «        |j'                  «        |t        _        t)        d| j                  «      5  | j+                  «        d d d «       y # |t        _        w xY w# 1 sw Y   y xY w)Nz
xxmodule.cÚxx©r)   Úext_modules)r   r   r   r7   r   r;   r   r   Úpackage_dirr   r   Ú	build_libÚ
build_tempr3   Ústdoutr   Úverboser   Úensure_finalizedÚrunr+   Ú_test_xx)r   Úxx_cÚxx_extÚdistÚcmdÚ
old_stdouts         r!   Útest_build_extzTestBuildExt.test_build_extY   sù   € Ü#Ô%Ü˜Ÿ™Ô%Ü�w‰w�|‰|˜DŸL™L¨,Ó7ˆÜ˜4 $ Ó(ˆÜ T¸6¸(ÑCÓDˆØŸ<™<ˆÔØ�n‰n˜TÓ"ˆÜ˜ÔØŸ™ˆŒØŸ™ˆŒä—Z‘Zˆ
Ü�Šä!›ŒCŒJð	$Ø× Ñ Ô"Ø�G‰GŒIà#ŒCŒJä" 4¨¯©Ó6ñ 	Ø�M‰MŒO÷	ð 	øð $ŒC�Jú÷	ð 	ús   Ã) E Ä*EÅEÅEc                  ó°  — dd l } dD ]  }t        | |«      rŒJ ‚ | j                  dd«      dk(  sJ ‚| j                  dd«      dk(  sJ ‚| j                  «       j	                  «       �J ‚t
        j                  rd	}| j                  |k(  sJ ‚t        | j                  «       | j                  «      sJ ‚t        | j                  «       | j                  «      sJ ‚y )
Nr   )ÚerrorÚfooÚnewÚrojé   é   é   é   é   é   z/This is a template module just for instruction.)rJ   Úhasattrr]   r^   Údemor   ÚHAVE_DOCSTRINGSÚ__doc__Ú
isinstanceÚNullÚStr)rJ   ÚattrÚdocs      r!   rT   zTestBuildExt._test_xxr   sÂ   € ãà2ò 	%ˆDÜ˜2˜tÕ$Ð$Ð$ð	%ð �v‰v�a˜‹|˜qÒ Ð Ð Ø�v‰v�b˜"‹~ Ò#Ð#Ð#Ø�v‰v‹x�}‰}‹Ð&Ð&Ð&Ü×"Ò"ØCˆCØ—:‘: Ò$Ð$Ð$Ü˜"Ÿ'™'›) R§W¡WÔ-Ð-Ð-Ü˜"Ÿ&™&›( B§F¡FÔ+Ð+Ñ+rH   c                 óh  — t        ddi«      }| j                  |«      }t        j                  }dt        _        ddlm} |j                  d«      }d|d<   	 |j                  «        |t        _        |€|d= n||d<   	 t        |j                  «      dkD  sJ ‚y # |t        _        |€|d= w ||d<   w xY w)Nr)   rJ   Úsunosr   )Ú_config_varsÚPy_ENABLE_SHAREDT)
r   r   r3   r1   Údistutils.sysconfigrq   ÚgetrR   ÚlenÚlibrary_dirs)r   rW   rX   Úoldrq   Úold_vars         r!   Útest_solaris_enable_sharedz'TestBuildExt.test_solaris_enable_shared‚   s½   € Ü˜V T˜NÓ+ˆØ�n‰n˜TÓ"ˆÜ�l‰lˆàŒŒÝ4à×"Ñ"Ð#5Ó6ˆØ+/ˆÐ'Ñ(ð	;Ø× Ñ Ô"àŒCŒLØˆØ Ð!3Ñ4à3:�Ð/Ò0ô �3×#Ñ#Ó$ qÒ(Ð(Ñ(øð ŒCŒLØˆØ Ð!3Ñ4à3:�Ð/Ò0ús   ÁB ÂB1c                 ó.  — dd l }t        ddi«      }| j                  |«      }|j                  D ���cg c]  \  }}}|‘Œ
 }}}}d|v sJ ‚d|_        t
        j                  j                  |j                  d«      }t
        j                  j                  |j                  d«      }	t        j                  |«       t        j                  |	«       |j                  «        ||j                  v sJ ‚||j                  v sJ ‚|	|j                  v sJ ‚y c c}}}w )Nr   r)   rJ   ÚuserTÚlibÚinclude)r   r   r   Úuser_optionsr{   r7   r   r;   r   ÚmkdirrR   rv   ÚrpathÚinclude_dirs)
r   r   rW   rX   r)   ÚshortÚlabelÚoptionsr|   Úincls
             r!   Útest_user_sitezTestBuildExt.test_user_site˜   sõ   € Ûä˜V T˜NÓ+ˆØ�n‰n˜TÓ"ˆð 36×2BÑ2B×CÐCÑ.˜D %¨’4ÐCˆÒCØ˜Ñ Ð Ð ð ˆŒô �g‰g�l‰l˜4Ÿ>™>¨5Ó1ˆÜ�w‰w�|‰|˜DŸN™N¨IÓ6ˆÜ
�‰�ŒÜ
�‰�Œð 	×ÑÔð �c×&Ñ&Ñ&Ð&Ð&Ø�c—i‘iÑÐÐØ�s×'Ñ'Ñ'Ð'Ñ'ùô' Ds   ³Dc                 ó¨  — t        ddgd¬«      g}t        d|dœ«      }| j                  |«      }|j                  «        t	        j
                  t        t        f«      5  |j                  «        d d d «       t        ddgd¬«      g}t        d|dœ«      }| j                  |«      }|j                  «        |j                  «        y # 1 sw Y   ŒYxY w)Nr]   ÚxxxF©ÚoptionalrJ   rK   T)	r   r   r   rR   ÚpytestÚraisesr
   r   rS   ©r   ÚmodulesrW   rX   s       r!   Útest_optional_extensionz$TestBuildExt.test_optional_extension´   s·   € ô ˜U U G°eÔ<Ð=ˆÜ T¸'ÑBÓCˆØ�n‰n˜TÓ"ˆØ×ÑÔÜ�]‰]Ô,¬lÐ;Ó<ñ 	Ø�G‰GŒI÷	ô ˜U U G°dÔ;Ð<ˆÜ T¸'ÑBÓCˆØ�n‰n˜TÓ"ˆØ×ÑÔØ�‰�	÷	ð 	ús   ÁCÃCc                 óÐ  — t        ddgd¬«      g}t        d|dœ«      }| j                  |«      }|j                  «        t	        j
                  «       }|j                  t        j                  j                  «      D ]  }||j                  v rŒJ ‚ t	        j
                  d¬«      }|j                  t        j                  j                  «      D ]  }||j                  v rŒJ ‚ | j                  |«      }d	|_        |j                  «        |j                  g d
¢k(  sJ ‚| j                  |«      }dt        j                  › d�|_        |j                  «        d|j                  v sJ ‚d|j                  v sJ ‚| j                  |«      }dt        j                  › d�|_        |j                  «        |j                  ddgk(  sJ ‚t        |«      }d|_        |j                  «        |j                  g d¢k(  sJ ‚| j                  |«      }d|_        |j                  «        |j                  ddgk(  sJ ‚| j                  |«      }d|_        |j                  «        |j                   ddgk(  sJ ‚| j                  |«      }d |_        |j                  «        |j"                  g k(  sJ ‚| j                  |«      }d|_        |j                  «        |j"                  ddgk(  sJ ‚y )Nr]   rˆ   Fr‰   rJ   rK   T)Úplat_specificzmy_lib, other_lib lastlib)Úmy_libÚ	other_libÚlastlibÚ
my_lib_dirÚother_lib_dirÚoneÚtwozone two,three)r—   r˜   Úthreezone,two)r—   Ú1)r˜   rš   z1 2rš   Ú2)r   r   r   Úfinalize_optionsr   Úget_python_incÚsplitr7   r   Úpathsepr�   Ú	librariesrv   r€   Úlink_objectsÚdefineÚundefÚ	swig_opts)r   rŽ   rW   rX   Ú
py_includeÚpÚplat_py_includes          r!   Útest_finalize_optionsz"TestBuildExt.test_finalize_optionsÄ   s´  € ô ˜U U G°eÔ<Ð=ˆÜ T¸'ÑBÓCˆØ�n‰n˜TÓ"ˆØ×ÑÔä×-Ñ-Ó/ˆ
Ø×!Ñ!¤"§'¡'§/¡/Ó2ò 	)ˆAØ˜×(Ñ(Ò(Ð(Ð(ð	)ô $×2Ñ2ÀÔFˆØ ×&Ñ&¤r§w¡w§¡Ó7ò 	)ˆAØ˜×(Ñ(Ò(Ð(Ð(ð	)ð
 �n‰n˜TÓ"ˆØ3ˆŒØ×ÑÔØ�}‰}Ò BÒBÐBÐBð �n‰n˜TÓ"ˆØ'¬¯
©
 |°=ÐAˆÔØ×ÑÔØ˜s×/Ñ/Ñ/Ð/Ð/Ø #×"2Ñ"2Ñ2Ð2Ð2ð �n‰n˜TÓ"ˆØœ"Ÿ*™*˜ SÐ)ˆŒ	Ø×ÑÔØ�y‰y˜U E˜NÒ*Ð*Ð*ô ˜‹oˆØ*ˆÔØ×ÑÔØ×ÑÒ#:Ò:Ð:Ð:ð �n‰n˜TÓ"ˆØˆŒ
Ø×ÑÔØ�z‰z˜l¨LÐ9Ò9Ð9Ð9ð �n‰n˜TÓ"ˆØˆŒ	Ø×ÑÔØ�y‰y˜U E˜NÒ*Ð*Ð*ð �n‰n˜TÓ"ˆØˆŒØ×ÑÔØ�}‰} Ò"Ð"Ð"à�n‰n˜TÓ"ˆØˆŒØ×ÑÔØ�}‰}  c 
Ò*Ð*Ñ*rH   c                 ó8  — t        «       }| j                  |«      }|j                  «        t        j                  t
        «      5  |j                  d«       d d d «       ddg}t        j                  t
        «      5  |j                  |«       d d d «       dg}t        j                  t
        «      5  |j                  |«       d d d «       dg}t        j                  t
        «      5  |j                  |«       d d d «       ddgdddœfg}|j                  |«       |d	   }t        |t        «      sJ ‚|j                  dk(  sJ ‚t        |d
«      rJ ‚ddgddddgdœfg}t        j                  t
        «      5  |j                  |«       d d d «       ddg|d	   d   d<   |j                  |«       |d	   j                  dgk(  sJ ‚|d	   j                  dgk(  sJ ‚y # 1 sw Y   �Œ‡xY w# 1 sw Y   �Œ]xY w# 1 sw Y   �Œ4xY w# 1 sw Y   �ŒxY w# 1 sw Y   Œ†xY w)Nr]   )Úbarr]   rª   )zfoo-barÚ )úfoo.barr«   r¬   r«   rª   )Úsourcesr    Úsomer   r®   )rš   r›   Ú3)r­   r    r®   Úmacros)rš   r›   )r¯   r   r°   r¯   )r   r   rœ   r‹   rŒ   r	   Úcheck_extensions_listrj   r   r    rf   Úundef_macrosÚdefine_macros)r   rW   rX   ÚextsÚexts        r!   Útest_check_extensions_listz'TestBuildExt.test_check_extensions_list  s  € Ü‹~ˆØ�n‰n˜TÓ"ˆØ×ÑÔô �]‰]Ô.Ó/ñ 	-Ø×%Ñ% eÔ,÷	-ð
 & uÐ-ˆÜ�]‰]Ô.Ó/ñ 	,Ø×%Ñ% dÔ+÷	,ð  Ð ˆÜ�]‰]Ô.Ó/ñ 	,Ø×%Ñ% dÔ+÷	,ð
  Ð ˆÜ�]‰]Ô.Ó/ñ 	,Ø×%Ñ% dÔ+÷	,ð ¨¨¸5È%ÑPÐQÐRˆØ×!Ñ! $Ô'Ø�1‰gˆÜ˜#œyÔ)Ð)Ð)ð
 �}‰} Ò%Ð%Ð%Ü˜3 Ô'Ð'Ð'ð
 à "˜tØ!&Ø!Ø.°Ð6ñ	ðð

ˆô �]‰]Ô.Ó/ñ 	,Ø×%Ñ% dÔ+÷	,ð !+¨FÐ3ˆˆQ‰�‰
�8ÑØ×!Ñ! $Ô'Ø�A‰w×#Ñ#¨ uÒ,Ð,Ð,Ø�A‰w×$Ñ$¨¨Ò4Ð4Ñ4÷i	-ñ 	-ú÷	,ñ 	,ú÷	,ñ 	,ú÷	,ñ 	,ú÷6	,ð 	,ús<   ÁGÁ<G)Â2G6Ã(HÅ9HÇG&Ç)G3Ç6H ÈHÈHc                 ó®   — t        ddgd¬«      g}t        d|dœ«      }| j                  |«      }|j                  «        |j	                  «       dgk(  sJ ‚y )Nr]   rˆ   Fr‰   rJ   rK   )r   r   r   rR   Úget_source_filesr�   s       r!   Útest_get_source_filesz"TestBuildExt.test_get_source_filesH  sW   € Ü˜U U G°eÔ<Ð=ˆÜ T¸'ÑBÓCˆØ�n‰n˜TÓ"ˆØ×ÑÔØ×#Ñ#Ó%¨%¨Ò0Ð0Ñ0rH   c                 óÖ  — t        ddgd¬«      t        ddgd¬«      g}t        d|dœ«      }| j                  |«      }|j                  «        t	        j
                  d	|j                  |d
   j                  «      «      sJ ‚t	        j
                  d|j                  |d   j                  «      «      sJ ‚|j                  |d
   «      dgk(  sJ ‚|j                  |d   «      dgk(  sJ ‚y )Nr]   ÚaaaFr‰   u   fÃ¶Ã¶ÚuuurJ   rK   zfoo(_d)?\..*r   u   fÃ¶Ã¶(_d)?\..*r   Ú
PyInit_fooÚPyInitU_f_1gaa)	r   r   r   rR   ÚreÚsearchÚget_ext_filenamer)   Úget_export_symbolsr�   s       r!   Útest_unicode_module_namesz&TestBuildExt.test_unicode_module_namesO  sß   € ä�e˜e˜W¨uÔ5Ü�g ˜w°Ô7ð
ˆô  T¸'ÑBÓCˆØ�n‰n˜TÓ"ˆØ×ÑÔÜ�y‰y˜¨#×*>Ñ*>¸wÀq¹z¿¹Ó*OÔPÐPÐPÜ�y‰yÐ*¨C×,@Ñ,@ÀÈÁÇÁÓ,QÔRÐRÐRØ×%Ñ% g¨a¡jÓ1°l°^ÒCÐCÐCØ×%Ñ% g¨a¡jÓ1Ð6FÐ5GÒGÐGÑGrH   c                 óª   — t        «       }| j                  |«      }d|_        |j                  «        |j	                  «        |j                  dk(  sJ ‚y )NÚunix)r   r   ÚcompilerrR   rS   )r   rW   rX   s      r!   Útest_compiler_optionz!TestBuildExt.test_compiler_option\  sG   € ô ‹~ˆØ�n‰n˜TÓ"ˆØˆŒØ×ÑÔØ�‰Œ	Ø�|‰|˜vÒ%Ð%Ñ%rH   c                 ó  — t        «        | j                  «       }t        j                  j	                  |d«      }| j                  |d«       t        d|gd¬«      }t        d|gdœ«      }| j                  |«      }t        |«       |j                  «        t        |j                  «       «      dk(  sJ ‚t        j                  j	                  | j                  d	«      |_        t        j                  j	                  | j                  d
«      |_        t        j                  j!                  | j                  «       «      }t        j"                  «       }t        j$                  |«       	 d|_        |j)                  «        |j                  «       d   }t        j$                  |«       t        j                  j+                  |«      sJ ‚t-        j.                  d«      }	|j1                  |	«      sJ ‚t        j                  j3                  |«      }
|
|k(  sJ ‚d|_        d |_        |j)                  «        |j                  «       d   }t        j                  j+                  |«      sJ ‚|j1                  |	«      sJ ‚t        j                  j3                  |«      }
|
|j                  k(  sJ ‚|j7                  d«      }ddi|_        |j;                  d«      }t        j                  j=                  |«      d   }||j                  k(  sJ ‚d|_        t        j                  j!                  | j                  «       «      }t        j"                  «       }t        j$                  |«       	 |j;                  d«      }t        j$                  |«       t        j                  j=                  |«      d   }t        j                  j=                  |«      d   }|dk(  sJ ‚y # t        j$                  |«       w xY w# t        j$                  |«       w xY w)Nzfoo.czvoid PyInit_foo(void) {}
r]   Fr‰   rJ   rK   r   ÚbuildÚtemptTr   Ú
EXT_SUFFIXÚbuild_pyr«   rª   éÿÿÿÿ)r   r   r7   r   r;   Ú
write_filer   r   r   r   rR   ru   Úget_outputsr   rN   rO   ÚrealpathÚgetcwdÚchdirÚinplacerS   Úexistsr   Úget_config_varÚendswithÚdirnamerÆ   Úget_finalized_commandrM   Úget_ext_fullpathrž   )r   r   Úc_filerµ   rW   rX   Úother_tmp_dirÚold_wdÚso_fileÚ
ext_suffixÚso_dirrÌ   r   Úlastdirs                 r!   Útest_get_outputszTestBuildExt.test_get_outputsg  s  € Ü#Ô%Ø—,‘,“.ˆÜ—‘—‘˜g wÓ/ˆØ�‰˜Ð <Ô=Ü˜ ˜x°%Ô8ˆÜ T¸3¸%Ñ@ÓAˆØ�n‰n˜TÓ"ˆÜ˜ÔØ×ÑÔÜ�3—?‘?Ó$Ó%¨Ò*Ð*Ð*äŸ™Ÿ™ T§\¡\°7Ó;ˆŒÜŸ™Ÿ™ d§l¡l°GÓ<ˆŒô Ÿ™×(Ñ(¨¯©«Ó8ˆÜ—‘“ˆÜ
�‰�Ôð	ØˆCŒKØ�G‰GŒIØ—o‘oÓ'¨Ñ*ˆGä�H‰H�VÔÜ�w‰w�~‰~˜gÔ&Ð&Ð&Ü×-Ñ-¨lÓ;ˆ
Ø×Ñ 
Ô+Ð+Ð+Ü—‘—‘ Ó)ˆØ˜Ò&Ð&Ð&àˆŒØˆŒØ�‰Œ	Ø—/‘/Ó# AÑ&ˆÜ�w‰w�~‰~˜gÔ&Ð&Ð&Ø×Ñ 
Ô+Ð+Ð+Ü—‘—‘ Ó)ˆØ˜Ÿ™Ò&Ð&Ð&ð ×,Ñ,¨ZÓ8ˆØ " E˜{ˆÔØ×#Ñ# EÓ*ˆä�w‰w�}‰}˜TÓ" 1Ñ%ˆØ�s—}‘}Ò$Ð$Ð$ð ˆŒÜŸ™×(Ñ(¨¯©«Ó8ˆÜ—‘“ˆÜ
�‰�Ôð	Ø×'Ñ'¨Ó.ˆDä�H‰H�VÔä�w‰w�}‰}˜TÓ" 1Ñ%ˆÜ—'‘'—-‘- Ó% bÑ)ˆØ˜%ÒÐÑøôI �H‰H�VÕûô@ �H‰H�VÕús   Å**O Í)O5 ÏO2Ï5Pc                 óŒ  — t        j                  d«      }t        «       }| j                  |«      }d|_        ddi|j
                  _        ddg|j
                  _        t        j                  «       }t        j                  j                  |ddd|z   «      }|j                  d«      }||k(  sJ ‚d	|_        t        j                  j                  |d
«      |_        t        j                  j                  |d
dd|z   «      }|j                  d«      }||k(  sJ ‚|j                  d«      }i |_        ddg|j
                  _        |j                  d«      }t        j                  j                  |d
ddd|z   «      }||k(  sJ ‚d|_        |j                  d«      }t        j                  j                  |ddd|z   «      }||k(  sJ ‚y )NrË   Tr«   ÚsrcÚlxmlz	lxml.htmlÚetreez
lxml.etreeFÚtmpdirrÌ   Útwistedztwisted.runner.portmapÚrunnerÚportmap)r   rÕ   r   r   rÓ   ÚdistributionrM   Úpackagesr7   rÑ   r   r;   rÙ   rN   rØ   )r   rµ   rW   rX   ÚcurdirÚwantedr   rÌ   s           r!   Útest_ext_fullpathzTestBuildExt.test_ext_fullpath¦  s›  € Ü×&Ñ& |Ó4ˆô
 ‹~ˆØ�n‰n˜TÓ"ˆØˆŒØ(*¨E {ˆ×ÑÔ$Ø%+¨[Ð$9ˆ×ÑÔ!Ü—‘“ˆÜ—‘—‘˜f e¨V°W¸s±]ÓCˆØ×#Ñ# LÓ1ˆØ˜Š~Ðˆ~ð ˆŒÜŸ™Ÿ™ V¨XÓ6ˆŒÜ—‘—‘˜f h°¸À#¹ÓFˆØ×#Ñ# LÓ1ˆØ˜Š~Ðˆ~ð ×,Ñ,¨ZÓ8ˆØ!ˆÔØ%.Ð0HÐ$Iˆ×ÑÔ!Ø×#Ñ#Ð$<Ó=ˆÜ—‘—‘˜f h°	¸8ÀYÐQTÁ_ÓUˆØ˜Š~Ðˆ~ð ˆŒØ×#Ñ#Ð$<Ó=ˆÜ—‘—‘˜f i°¸9Às¹?ÓKˆØ˜Š~Ð‰~rH   zplatform.system() != "Darwin"Úsave_envc                 ó(   — | j                  dd «       y )Nz==)Ú_try_compile_deployment_target©r   s    r!   Útest_deployment_target_defaultz+TestBuildExt.test_deployment_target_defaultË  s   € ð 	×+Ñ+¨D°$Õ7rH   c                 ó„   — t        j                  t        «      5  | j                  dd«       d d d «       y # 1 sw Y   y xY w)Nú>z10.1)r‹   rŒ   r   rñ   rò   s    r!   Útest_deployment_target_too_lowz+TestBuildExt.test_deployment_target_too_lowÓ  s6   € ô
 �]‰]Ô1Ó2ñ 	=Ø×/Ñ/°°VÔ<÷	=÷ 	=ñ 	=ús   š6¶?c                 óú   — t        j                  d«      }|r_|j                  d«      D �cg c]  }t        |«      ‘Œ }}|dxx   dz  cc<   dj	                  d„ |D «       «      }| j                  d|«       y y c c}w )NÚMACOSX_DEPLOYMENT_TARGETú.rÍ   r   c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr$   )Ústr)Ú.0Úis     r!   ú	<genexpr>z@TestBuildExt.test_deployment_target_higher_ok.<locals>.<genexpr>æ  s   è ø€ Ò ;¨A¤ Q§Ñ ;ùs   ‚ú<)r   rÕ   rž   Úintr;   rñ   )r   Ú	deptargetÚxs      r!   Ú test_deployment_target_higher_okz-TestBuildExt.test_deployment_target_higher_okÛ  sr   € ô ×,Ñ,Ð-GÓHˆ	Ùà)2¯©¸Ó)=Ö> Aœ˜Q�Ð>ˆIÐ>Ø�b‹M˜QÑ‹MØŸ™Ñ ;°Ô ;Ó;ˆIØ×/Ñ/°°YÕ?ð ùâ>s   «A8c                 óö  — |€1t         j                  j                  d«      r%t         j                  d= n|t         j                  d<   t        j                  j                  dt        j                  d|› d�«      i| j                  «       t        j                  d«      }t        t        t        |j                  d«      dd «      «      }|d d dk  rd	}nt        |«      dk\  rd
}nd} |j                   |Ž }t#        d| j                  dz  gd|› �g¬«      }t%        d|gdœ«      }| j&                  |_        | j+                  |«      }| j&                  |_        | j&                  |_        	 t0        j2                  }t4        j6                  st9        «       t0        _        	 |j;                  «        |j=                  «        |t0        _        y # |t0        _        w xY w# t>        $ r | jA                  d«       Y y w xY w)Nrø   zdeptargetmodule.czt                    #include <AvailabilityMacros.h>

                    int dummy;

                    #if TARGET z˜ MAC_OS_X_VERSION_MIN_REQUIRED
                    #else
                    #error "Unexpected target"
                    #endif

                    rù   r   r`   )é
   r  z{:02}{:01}0z{:02}{:02}00z	{:02}0000r  z	-DTARGET=)Úextra_compile_argsrK   z*Wrong deployment target during compilation)!r7   Úenvironrt   Újaracor   rÉ   ÚtextwrapÚdedentr   r   rÕ   ÚtupleÚmapr   rž   ru   Úformatr   r   r   rM   r   rN   rO   r3   rP   r   rQ   r   rR   rS   r   Úfail)r   ÚoperatorÚtargetÚtmplÚdeptarget_extrW   rX   rY   s           r!   rñ   z+TestBuildExt._try_compile_deployment_targeté  s½  € Øˆ>Ü�z‰z�~‰~Ð8Ô9Ü—J‘JÐ9Ñ:à5;ŒB�J‰JÐ1Ñ2ä�‰×Ñà#¤X§_¡_ð : ð
 !)˜zð *ð
6ó 
&ðð �M‰Mô	
ô$ ×)Ñ)Ð*DÓEˆÜ”sœ3 §¡¨SÓ 1°!°AÐ 6Ó7Ó8ˆð �"�1ˆ:˜Ò à ‰Dô �6‹{˜aÒØ%‘ð #�Ø�—‘˜fÐ%ˆÜ!ØØ�]‰]Ð0Ñ0Ð1Ø"+¨F¨8Ð 4Ð5ô
ˆô
  [À-ÀÑQÓRˆØŸ<™<ˆÔØ�n‰n˜TÓ"ˆØŸ™ˆŒØŸ™ˆŒð	DÜŸ™ˆJÜ—?’?ä%›Z””
ð(Ø×$Ñ$Ô&Ø—‘”	à'”•
ø˜Z”•
ûäò 	DØ�I‰IÐBÖCð	Dús*   Å+3G Æ G Æ?G ÇGÇG ÇG8Ç7G8N)Ú__name__Ú
__module__Ú__qualname__r   rZ   ÚstaticmethodrT   ry   r†   r�   r¨   r¶   r¹   rÃ   rÇ   rá   rî   r‹   ÚmarkÚskipifÚusefixturesró   rö   r  rñ   © rH   r!   rD   rD   T   s  „ ò*òð2 ñ,ó ð,ò)ò,(ò8ò F+òP:5òx1òHò	&ò= ò~#ðJ ‡[�[×ÑÐ7Ó8Ø‡[�[×Ñ˜ZÓ(ñ8ó )ó 9ð8ð ‡[�[×ÑÐ7Ó8Ø‡[�[×Ñ˜ZÓ(ñ=ó )ó 9ð=ð ‡[�[×ÑÐ7Ó8Ø‡[�[×Ñ˜ZÓ(ñ
@ó )ó 9ð
@ó@DrH   rD   c                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )ÚTestParallelBuildExtc                 ó4   •— t        ‰| �  |i |¤Ž}d|_        |S )NT)Úsuperr   Úparallel)r   rF   rG   r   Ú	__class__s       €r!   r   zTestParallelBuildExt.build_ext-  s%   ø€ Ü‘GÑ% tÐ6¨vÑ6ˆ	Ø!ˆ	ÔØÐrH   )r  r  r  r   Ú__classcell__)r   s   @r!   r  r  ,  s   ø„ ÷ð rH   r  )1Ú
contextlibr4   r7   r1   r¿   r<   r   r3   r:   r	  Ú	distutilsr   Údistutils.command.build_extr   Údistutils.corer   Údistutils.errorsr   r   r	   r
   Údistutils.extensionr   Údistutils.testsr   Údistutils.tests.supportr   r   r   Úior   Újaraco.pathr  r   r‹   Útestr   Úcompatr   r%   Úfixturer"   Úcontextmanagerr+   r'   r  r  rD   r  r  rH   r!   ú<module>r0     sä   ðÛ Û Û 	Û Û 	Û Û Û 
Û Û Ý Ý 1Ý '÷ó õ *Ý 7ß TÑ TÝ ã Û Û Ý å )ð €‡�Óñ)ó ð)ð* ×Ññó ðð ×Ññó ðð( ‡�×Ñ˜Ó)ôTD�>ó TDó *ðTDôn˜<õ rH   