Ë
    -TbjX  ã                   óî  — 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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&jX                  «       d„ «       Z-e j\                  d„ «       Z/e j\                  d„ «       Z0e&jb                  je                  d«       G d„ de«      «       Z3 G d„ de3«      Z4y)é    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        _	        ||_	        t        j                  dk(  rt        j                  d«       y y # 1 sw Y   ŒExY w­w)Nr   r   Úcygwinr   )ÚinstanceÚmkdtempÚtmp_dirÚpathÚPathÚtmp_pathÚdistutils.commandr   ÚsiteÚ	USER_BASEÚsysÚplatformÚtimeÚsleep)ÚrequestÚselfr   Úorig_user_bases       ú]/var/www/html/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Ôä
‡|�|�xÒÜ�
‰
�1�ð  ÷ð üs   ‚BC-ÂC!ÂAC-Ã!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_importr0   =   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.
    ÚWindowsr   NÚdeleteme)Úprefix)r    Úsystemr   r*   r-   Ú	importlibÚutilÚ	find_specÚosr   ÚbasenameÚoriginÚtempfiler   ÚjoinÚshutilÚcopy)Úmodr   ÚspecÚfilenameÚ	trash_dirÚdests         r&   r,   r,   E   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ej
                  j                  ddg«      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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_ext\   s   € Ü˜$Ð) &Ñ)Ð)ó    Úcopy_soFc                 ó’  — t        «        t        | j                  «       t        j                  j                  | j                  d«      }t        d|g«      }t        j                  dk7  r¤|st        d|gdgdgdg¬«      }n�t        j                  dk(  rzt        j                  d«      D �ch c]!  }t        j                  j                  |«      ’Œ# }}t        |d	„ ¬
«      }t        j                  |d   d«       t        d|gdgdgdg¬«      }t        d|gdœ«      }| j                  |_        | j#                  |«      }t%        |«       | j                  |_        | j                  |_        t        j*                  }t,        j.                  st1        «       t        _        	 |j3                  «        |j5                  «        |t        _        t7        d| j                  «      5  | j9                  |«       d d d «       t        j                  dk(  r|rt        j:                  d«       y y y c c}w # |t        _        w xY w# 1 sw Y   ŒKxY w)Nz
xxmodule.cÚxxÚwin32ú/usr/libÚz)Úlibrary_dirsÚ	librariesÚruntime_library_dirsÚlinuxz/usr/lib*/libz.so*c                 ó   — t        | «      S r)   )Úlen)Úlib_paths    r&   ú<lambda>z-TestBuildExt.test_build_ext.<locals>.<lambda>r   s
   € ¼sÀ8»}€ rJ   )Úkeyéÿÿÿÿz/tmp/libxx_z.soú/tmpÚxx_z©r.   Úext_modules)r   r   r   r9   r   r=   r   r   r    ÚglobÚiglobÚrealpathÚsortedr>   Úcopyfiler   Úpackage_dirr   r   Ú	build_libÚ
build_tempÚstdoutr   Úverboser   Úensure_finalizedÚrunr0   Ú_test_xxÚunlink)	r$   rK   Úxx_cÚxx_extr.   Úlibz_soÚdistÚcmdÚ
old_stdouts	            r&   Útest_build_extzTestBuildExt.test_build_ext_   sØ  € ä#Ô%Ü˜Ÿ™Ô%Ü�w‰w�|‰|˜DŸL™L¨,Ó7ˆÜ˜4 $ Ó(ˆÜ�<‰<˜7Ò"ÙÜ"ØØ�FØ", Ø"˜eØ*4¨ô‘ô —‘ Ò(ä7;·z±zÐBVÓ7WöØ/3”B—G‘G×$Ñ$ TÕ*ð�ð ô ! Ñ.LÔM�Ü—‘ ¨¡Ð->Ô?ä"ØØ�FØ"( Ø%˜hØ*0¨ô�ô  T¸6¸(ÑCÓDˆØŸ<™<ˆÔØ�n‰n˜TÓ"ˆÜ˜ÔØŸ™ˆŒØŸ™ˆŒä—Z‘Zˆ
Ü�Šä!›ŒCŒJð	$Ø× Ñ Ô"Ø�G‰GŒIà#ŒCŒJä" 4¨¯©Ó6ñ 	#Ø�M‰M˜'Ô"÷	#ô �<‰<˜7Ò"¡wÜ�I‰IÐ'Õ(ð (/Ð"ùòCøð8 $ŒC�Jú÷	#ð 	#ús   Â+&H(Æ  H- Ç!H=È-H:È=Ic                 óB  — 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 ‚t        j                  d
k(  r°t        j                  dd|j                  gd¬«      }dd l}|j!                  |«       |j#                  d«      D ��cg c]6  }d|v sd|v r,|j#                  «       d   dd j#                  d«      D ]  }|‘Œ Œ8 }}}| s|j!                  |«       d|vrd|vsJ ‚y d|v sJ ‚y y c c}}w )Nr   )ÚerrorÚfooÚnewÚrojé   é   é   é   é   é   z/This is a template module just for instruction.rT   Úreadelfz-dT)Úuniversal_newlinesú
ÚRPATHÚRUNPATHr   rZ   ú:rO   z
/usr/lib64r[   )rM   Úhasattrrv   rw   Údemor   ÚHAVE_DOCSTRINGSÚ__doc__Ú
isinstanceÚNullÚStrr   r    Ú
subprocessÚcheck_outputÚ__file__ÚpprintÚsplit)	rK   rM   ÚattrÚdocÚ
so_headersr�   ÚlineÚrpathÚrpathss	            r&   rk   zTestBuildExt._test_xx“   s«  € ãà2ò 	%ˆDÜ˜2˜tÕ$Ð$Ð$ð	%ð �v‰v�a˜‹|˜qÒ Ð Ð Ø�v‰v�b˜"‹~ Ò#Ð#Ð#Ø�v‰v‹x�}‰}‹Ð&Ð&Ð&Ü×"Ò"ØCˆCØ—:‘: Ò$Ð$Ð$Ü˜"Ÿ'™'›) R§W¡WÔ-Ð-Ð-Ü˜"Ÿ&™&›( B§F¡FÔ+Ð+Ð+ä�<‰<˜7Ò"Ü#×0Ñ0Ø˜D "§+¡+Ð.À4ôˆJó à�M‰M˜*Ô%ð '×,Ñ,¨TÓ2÷àØ˜d‘? i°4Ñ&7Ø!ŸZ™Z›\¨!™_¨Q¨rÐ2×8Ñ8¸Ó=ò	ð ò ðØðˆFñ ñ Ø—‘˜fÔ%à!¨Ñ/°LÈÑ4NÐNÐNÐ4Nð  Ñ'Ð'Ñ'ð' #ùós   Ä7;F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.   rM   Úsunosr   )Ú_config_varsÚPy_ENABLE_SHAREDT)
r   r   r   r    Údistutils.sysconfigr™   Úgetri   rV   rQ   )r$   rp   rq   Úoldr™   Ú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.   rM   ÚuserTÚlibÚinclude)r   r   r   Úuser_optionsr¡   r9   r   r=   r   Úmkdirri   rQ   r•   Úinclude_dirs)
r$   r   rp   rq   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)Nrv   ÚxxxF©ÚoptionalrM   r]   T)	r   r   r   ri   ÚpytestÚraisesr
   r   rj   ©r$   Úmodulesrp   rq   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 )Nrv   r­   Fr®   rM   r]   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_incr�   r9   r   Úpathsepr¦   rR   rQ   r•   Úlink_objectsÚdefineÚundefÚ	swig_opts)r$   r³   rp   rq   Ú
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 
Ò*Ð*Ñ*rJ   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)Nrv   )Úbarrv   rÍ   )zfoo-barÚ )úfoo.barrÎ   rÏ   rÎ   rÍ   )ÚsourcesrR   Úsomer   rÑ   )r¿   rÀ   Ú3)rÐ   rR   rÑ   Úmacros)r¿   rÀ   )rÒ   r   rÓ   rÒ   )r   r   rÁ   r°   r±   r	   Úcheck_extensions_listr‰   r   rR   r…   Úundef_macrosÚdefine_macros)r$   rp   rq   ÚextsÚexts        r&   Útest_check_extensions_listz'TestBuildExt.test_check_extensions_listC  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 )Nrv   r­   Fr®   rM   r]   )r   r   r   ri   Úget_source_filesr²   s       r&   Útest_get_source_filesz"TestBuildExt.test_get_source_files  sW   € Ü˜U U G°eÔ<Ð=ˆÜ T¸'ÑBÓCˆØ�n‰n˜TÓ"ˆØ×ÑÔØ×#Ñ#Ó%¨%¨Ò0Ð0Ñ0rJ   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 )Nrv   ÚaaaFr®   u   fÃ¶Ã¶ÚuuurM   r]   zfoo(_d)?\..*r   u   fÃ¶Ã¶(_d)?\..*r   Ú
PyInit_fooÚPyInitU_f_1gaa)	r   r   r   ri   ÚreÚsearchÚget_ext_filenamer.   Úget_export_symbolsr²   s       r&   Útest_unicode_module_namesz&TestBuildExt.test_unicode_module_names†  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ÑGrJ   c                 óþ   — t        ddg«      t        ddg«      g}t        d|dœ«      }| j                  |«      }|j                  «        |j	                  |d   «      dgk(  sJ ‚|j	                  |d	   «      d
gk(  sJ ‚y )Nzfoo.__init__rÞ   u   fÃ¶Ã¶.__init__rß   rM   r]   r   rà   r   rá   )r   r   r   ri   rå   r²   s       r&   Útest_export_symbols__init__z(TestBuildExt.test_export_symbols__init__“  s�   € ô �n u gÓ.ÜÐ&¨¨Ó0ð
ˆô  T¸'ÑBÓCˆØ�n‰n˜TÓ"ˆØ×ÑÔØ×%Ñ% g¨a¡jÓ1°l°^ÒCÐCÐCØ×%Ñ% g¨a¡jÓ1Ð6FÐ5GÒGÐGÑGrJ   c                 óª   — t        «       }| j                  |«      }d|_        |j                  «        |j	                  «        |j                  dk(  sJ ‚y )NÚunix)r   r   Úcompilerri   rj   )r$   rp   rq   s      r&   Útest_compiler_optionz!TestBuildExt.test_compiler_option   sG   € ô ‹~ˆØ�n‰n˜TÓ"ˆØˆŒØ×ÑÔØ�‰Œ	Ø�|‰|˜vÒ%Ð%Ñ%rJ   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) {}
rv   Fr®   rM   r]   r   ÚbuildÚtemptTr   Ú
EXT_SUFFIXÚbuild_pyrÎ   rÍ   rZ   )r   r   r9   r   r=   Ú
write_filer   r   r   r   ri   rV   Úget_outputsr   re   rf   ra   ÚgetcwdÚchdirÚinplacerj   Úexistsr   Úget_config_varÚendswithÚdirnamerë   Úget_finalized_commandrd   Úget_ext_fullpathr�   )r$   r   Úc_filerØ   rp   rq   Úother_tmp_dirÚold_wdÚso_fileÚ
ext_suffixÚso_dirrñ   r   Úlastdirs                 r&   Útest_get_outputszTestBuildExt.test_get_outputs«  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ö   Údistributionrd   Úpackagesr9   rô   r   r=   rü   re   rû   )r$   rØ   rp   rq   Ú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ˆØ˜Š~Ð‰~rJ   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°$Õ7rJ   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ú.rZ   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   ry   )é
   r(  z{:02}{:01}0z{:02}{:02}00z	{:02}0000r$  z	-DTARGET=)Úextra_compile_argsr]   z*Wrong deployment target during compilation)!r9   Úenvironrœ   Újaracor   rî   ÚtextwrapÚdedentr   r   rø   ÚtupleÚmapr#  r�   rV   Úformatr   r   r   rd   r   re   rf   r   rg   r   rh   r   ri   rj   r   Úfail)r$   ÚoperatorÚtargetÚtmplÚdeptarget_extrp   rq   rr   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   r°   ÚmarkÚparametrizers   Ústaticmethodrk   rŸ   r«   r´   rË   rÙ   rÜ   ræ   rè   rì   r  r  ÚskipifÚusefixturesr  r  r&  r  © rJ   r&   rF   rF   Z   s<  „ ò*ð ‡[�[×Ñ˜Y¨¨Ó0ñ1)ó 1ð1)ðf ñ"(ó ð"(òJ)ò,(ò8ò F+òP:5òx1òHòHò	&ò= ò~#ðJ ‡[�[×ÑÐ7Ó8Ø‡[�[×Ñ˜ZÓ(ñ8ó )ó 9ð8ð ‡[�[×ÑÐ7Ó8Ø‡[�[×Ñ˜ZÓ(ñ=ó )ó 9ð=ð ‡[�[×ÑÐ7Ó8Ø‡[�[×Ñ˜ZÓ(ñ
@ó )ó 9ð
@ó@DrJ   rF   c                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )ÚTestParallelBuildExtc                 ó4   •— t        ‰| �  |i |¤Ž}d|_        |S )NT)Úsuperr   Úparallel)r$   rH   rI   r   Ú	__class__s       €r&   r   zTestParallelBuildExt.build_extq  s%   ø€ Ü‘GÑ% tÐ6¨vÑ6ˆ	Ø!ˆ	ÔØÐrJ   )r6  r7  r8  r   Ú__classcell__)rD  s   @r&   r@  r@  p  s   ø„ ÷ð rJ   r@  )5Ú
contextlibr_   r6   Úos.pathr9   r    râ   r>   r   rŒ   r   r<   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'   Úcontextmanagerr0   r,   r9  r=  rF   r@  r>  rJ   r&   ú<module>rU     sí   ðÛ Û Û Û Û Û 	Û Û Û Û 
Û Û Û Ý Ý 1Ý '÷ó õ *Ý 7ß TÑ TÝ ã Û Û Ý å )ð €‡�Óñó ðð0 ×Ññó ðð ×Ññó ðð( ‡�×Ñ˜Ó)ôRD�>ó RDó *ðRDôj˜<õ rJ   