
    shX                        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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JrJrJrJr  S SKJr  S SKJr  S SKJrJr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+  \&RX                  " 5       S 5       r-\ R\                  S 5       r/\ R\                  S 5       r0\&Rb                  Re                  S5       " S S\5      5       r3 " S S\35      r4g)    N)	sysconfig	build_ext)Distribution)CompileErrorDistutilsPlatformErrorDistutilsSetupErrorUnknownFileError)	Extension)missing_compiler_executable)TempdirManagercopy_xxmodule_cfixup_build_ext)StringIO)support   )py39c              #     #    U R                   nUR                  5       Ul        [        R                  " UR                  5      Ul        SSKJn  [        R                  nUR                  5       [        l	        [        R                  Ul	        UR
                     S v   S S S 5        U[        l	        X2l	        [        R                  S:X  a  [        R                  " S5        g g ! , (       d  f       NK= f7f)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       ~/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/setuptools/_distutils/tests/test_build_ext.pyuser_site_dirr'   $   s     D<<>DLIIdll+DM+^^N\\^DN..I
 
 
 $DN(
||x

1   
s   BC4C#AC4#
C1-C4c              #     #    [         R                  " U 5         [        X5       n[         R                  " U5         S v   S S S 5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N(= f! , (       d  f       g = f7fN)import_helperCleanImportextension_redirectDirsOnSysPath)namer   new_paths      r&   safe_extension_importr0   =   sX     		"	"4	(+x,,X6 7 , 
)	(66 ,+ 
)	(sJ   BA<A+AA+	A<	B
A($A++
A9	5A<<
B
Bc              #   L  #    [         R                  " 5       S:w  a  [        R                   S:w  a  Uv   g[        R                  " U5         [
        R                  R                  U 5      nSSS5        [        R                  R                  WR                  5      n[        R                  " SS9n[        R                  R                  U[        R                  R                  U5      5      n[        R                   " UR                  U5        Uv   g! , (       d  f       N= f7f)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	*~~'', 
+ww,H  
3I77<<	277#3#3H#=>D
KKT"
O 
+	*s   A	D$ D+B(D$
D!D$r'   c                   2   \ rS rSrS r\R                  R                  SS/5      S 5       r\	S 5       r
S rS rS	 rS
 rS rS rS rS rS 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      S 5       5       r\R                  R-                  S5      \R                  R/                  S5      S 5       5       rS rSrg)TestBuildExtZ   c                     [        U0 UD6$ r)   r   )r$   argskwargss      r&   r   TestBuildExt.build_ext\   s    $)&))    copy_soFc                    [        5         [        U R                  5        [        R                  R                  U R                  S5      n[        SU/5      n[        R                  S:w  a  U(       d  [        SU/S/S/S/S9nO[        R                  S:X  ay  [        R                  " S5       Vs1 s H"  n[        R                  R                  U5      iM$     nn[        US	 S
9n[        R                  " US   S5        [        SU/S/S/S/S9n[        SU/S.5      nU R                  Ul        U R#                  U5      n[%        U5        U R                  Ul        U R                  Ul        [        R*                  n[,        R.                  (       d  [1        5       [        l         UR3                  5         UR5                  5         U[        l        [7        SU R                  5         U R9                  U5        S S S 5        [        R                  S:X  a  U(       a  [        R:                  " S5        g g g s  snf ! U[        l        f = f! , (       d  f       NW= f)Nz
xxmodule.cxxwin32/usr/libz)library_dirs	librariesruntime_library_dirslinuxz/usr/lib*/libz.so*c                     [        U 5      $ r)   )len)lib_paths    r&   <lambda>-TestBuildExt.test_build_ext.<locals>.<lambda>r   s    s8}rL   )keyz/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$   rM   xx_cxx_extr.   libz_sodistcmd
old_stdouts	            r&   test_build_extTestBuildExt.test_build_ext_   s   #%%ww||DLL,74$(<<7""F","e*4 (7;zzBV7W7WtBGG$$T*7W   !.LM->?"F"(%h*0 T6(CD<<nnT"ZZ
!CJ	$  "GGI#CJ"46MM'" 7 <<7"wII'( (/"C8 $CJ66s   0)H7( H< )I<I	
Ic                    SS K nS H  n[        X5      (       a  M   e   UR                  SS5      S:X  d   eUR                  SS5      S:X  d   eUR                  5       R	                  5       b   e[
        R                  (       a  S	nUR                  U:X  d   e[        UR                  5       UR                  5      (       d   e[        UR                  5       UR                  5      (       d   e[        R                  S
:X  a  [        R                  " SSUR                  /SS9nSS KnUR!                  U5        UR#                  S5       VVs/ s H@  nSU;   d  SU;   d  M  UR#                  5       S   SS R#                  S5        H  nUPM     MB     nnnU (       d   UR!                  U5        SU;  a  SU;  d   eg SU;   d   eg g s  snnf )Nr   )errorfoonewroj                  z/This is a template module just for instruction.rV   readelfz-dT)universal_newlines
RPATHRUNPATHr   r]   :rQ   z
/usr/lib64r^   )rO   hasattrrz   r{   demor   HAVE_DOCSTRINGS__doc__
isinstanceNullStrr   r    
subprocesscheck_output__file__pprintsplit)	rM   rO   attrdoc
so_headersr   linerpathrpathss	            r&   rn   TestBuildExt._test_xx   s   2D2$$$$ 3 vva|q   vvb"~###vvx}}&&&""CC::$$$"'')RWW----"&&(BFF++++<<7"#00D"++.4J MM*% ',,T22Dd?i4&7  "ZZ\!_Qr288=E  > 2   f%!/L4NNN4N '''' #s   G
#3G
c                 j   [        SS05      nU R                  U5      n[        R                  nS[        l        SSKJn  UR                  S5      nSUS'    UR                  5         U[        l        Uc  US	 OXTS'    [        UR                  5      S:  d   eg ! U[        l        Uc  US	 f XTS'   f = f)Nr.   rO   sunosr   )_config_varsPy_ENABLE_SHAREDT)
r   r   r   r    distutils.sysconfigr   getrl   rX   rS   )r$   rs   rt   oldr   old_vars         r&   test_solaris_enable_shared'TestBuildExt.test_solaris_enable_shared   s    VTN+nnT"ll4""#56+/'(	;  "CL !343:/0 3##$q((( CL !343:/0s   B B2c                 >   SS K n[        SS05      nU R                  U5      nUR                   VVVs/ s H  u  pEodPM	     nnnnSU;   d   eSUl        [
        R                  R                  UR                  S5      n[
        R                  R                  UR                  S5      n	[
        R                  " U5        [
        R                  " U	5        UR                  5         XR                  ;   d   eXR                  ;   d   eXR                  ;   d   eg s  snnnf )Nr   r.   rO   userTlibinclude)r   r   r   user_optionsr   r9   r   r=   r   mkdirrl   rS   r   include_dirs)
r$   r   rs   rt   r.   shortlabeloptionsr   incls
             r&   test_user_siteTestBuildExt.test_user_site   s    VTN+nnT" 362B2BC2B.D42BC     ggll4>>51ww||DNNI6

 	 &&&&&ii'''''' Ds   Dc                    [        SS/SS9/n[        SUS.5      nU R                  U5      nUR                  5         [        R
                  " [        [        45         UR                  5         S S S 5        [        SS/SS9/n[        SUS.5      nU R                  U5      nUR                  5         UR                  5         g ! , (       d  f       N[= f)Nrz   xxxFoptionalrO   r`   T)	r   r   r   rl   pytestraisesr
   r   rm   r$   modulesrs   rt   s       r&   test_optional_extension$TestBuildExt.test_optional_extension   s     UUGe<=T'BCnnT"]],l;<GGI = UUGd;<T'BCnnT"	 =<s   C
Cc                    [        SS/SS9/n[        SUS.5      nU R                  U5      nUR                  5         [        R
                  " 5       nUR                  [        R                  R                  5       H  nXSR                  ;   a  M   e   [        R
                  " SS9nUR                  [        R                  R                  5       H  nXSR                  ;   a  M   e   U R                  U5      nS	Ul        UR                  5         UR                  / S
Q:X  d   eU R                  U5      nS[        R                   S3Ul        UR                  5         SUR                  ;   d   eSUR                  ;   d   eU R                  U5      nS[        R                   S3Ul        UR                  5         UR                  SS/:X  d   e[        U5      nSUl        UR                  5         UR                  / SQ:X  d   eU R                  U5      nSUl        UR                  5         UR                  SS/:X  d   eU R                  U5      nSUl        UR                  5         UR                   SS/:X  d   eU R                  U5      nS Ul        UR                  5         UR"                  / :X  d   eU R                  U5      nSUl        UR                  5         UR"                  SS/:X  d   eg )Nrz   r   Fr   rO   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   rT   rS   r   link_objectsdefineundef	swig_opts)r$   r   rs   rt   
py_includepplat_py_includes          r&   test_finalize_options"TestBuildExt.test_finalize_options   s    UUGe<=T'BCnnT"--/
!!"''//2A((((( 3 $22F &&rww7A((((( 8
 nnT"3}} BBBB nnT"'

|=As/////#"2"2222 nnT""**S)	yyUEN*** o*#:::: nnT"
zzlL9999 nnT"	yyUEN*** nnT"}}"""nnT"}}c
***rL   c                    [        5       nU R                  U5      nUR                  5         [        R                  " [
        5         UR                  S5        S S S 5        SS/n[        R                  " [
        5         UR                  U5        S S S 5        S/n[        R                  " [
        5         UR                  U5        S S S 5        S/n[        R                  " [
        5         UR                  U5        S S S 5        SS/SSS.4/nUR                  U5        US	   n[        U[        5      (       d   eUR                  S:X  d   e[        US
5      (       a   eSS/SSSS/S.4/n[        R                  " [
        5         UR                  U5        S S S 5        SS/US	   S   S'   UR                  U5        US	   R                  S/:X  d   eUS	   R                  S/:X  d   eg ! , (       d  f       GN= f! , (       d  f       GNw= f! , (       d  f       GNR= f! , (       d  f       GN-= f! , (       d  f       N= f)Nrz   )barrz   r   )zfoo-bar )foo.barr   r   r   r   )sourcesrT   somer   r   )r   r   3)r   rT   r   macros)r   r   )r   r   r   r   )r   r   r   r   r   r	   check_extensions_listr   r   rT   r   undef_macrosdefine_macros)r$   rs   rt   extsexts        r&   test_check_extensions_list'TestBuildExt.test_check_extensions_listC  s   ~nnT" ]]./%%e, 0
 &u-]]./%%d+ 0   ]]./%%d+ 0
   ]]./%%d+ 0 5%PQR!!$'1g#y))))
 }}%%%3''''
  "t!&!.6	

 ]]./%%d+ 0 !+F3Q
8!!$'Aw##u,,,Aw$$444i 0/ 0/ 0/ 0/6 0/s<   G.>H 5H,H$	H6.
G= 
H
H!$
H36
Ic                     [        SS/SS9/n[        SUS.5      nU R                  U5      nUR                  5         UR	                  5       S/:X  d   eg )Nrz   r   Fr   rO   r`   )r   r   r   rl   get_source_filesr   s       r&   test_get_source_files"TestBuildExt.test_get_source_files  sW    UUGe<=T'BCnnT"##%%000rL   c                    [        SS/SS9[        SS/SS9/n[        SUS.5      nU R                  U5      nUR                  5         [        R
                  " S	UR                  US
   R                  5      5      (       d   e[        R
                  " SUR                  US   R                  5      5      (       d   eUR                  US
   5      S/:X  d   eUR                  US   5      S/:X  d   eg )Nrz   aaaFr   u   fööuuurO   r`   zfoo(_d)?\..*r   u   föö(_d)?\..*r   
PyInit_fooPyInitU_f_1gaa)	r   r   r   rl   researchget_ext_filenamer.   get_export_symbolsr   s       r&   test_unicode_module_names&TestBuildExt.test_unicode_module_names  s    eeWu5gw7
 T'BCnnT"yy#*>*>wqz*OPPPPyy*C,@,@,QRRRR%%gaj1l^CCC%%gaj16F5GGGGrL   c                    [        SS/5      [        SS/5      /n[        SUS.5      nU R                  U5      nUR                  5         UR	                  US   5      S/:X  d   eUR	                  US	   5      S
/:X  d   eg )Nzfoo.__init__r   u   föö.__init__r   rO   r`   r   r   r   r   )r   r   r   rl   r   r   s       r&   test_export_symbols__init__(TestBuildExt.test_export_symbols__init__  s     nug.&0
 T'BCnnT"%%gaj1l^CCC%%gaj16F5GGGGrL   c                     [        5       nU R                  U5      nSUl        UR                  5         UR	                  5         UR                  S:X  d   eg )Nunix)r   r   compilerrl   rm   )r$   rs   rt   s      r&   test_compiler_option!TestBuildExt.test_compiler_option  sG     ~nnT"	||v%%%rL   c                 V   [        5         U R                  5       n[        R                  R	                  US5      nU R                  US5        [        SU/SS9n[        SU/S.5      nU R                  U5      n[        U5        UR                  5         [        UR                  5       5      S:X  d   e[        R                  R	                  U R                  S	5      Ul        [        R                  R	                  U R                  S
5      Ul        [        R                  R!                  U R                  5       5      n[        R"                  " 5       n[        R$                  " U5         SUl        UR)                  5         UR                  5       S   n[        R$                  " U5        [        R                  R+                  U5      (       d   e[,        R.                  " S5      n	UR1                  U	5      (       d   e[        R                  R3                  U5      n
X:X  d   eSUl        S Ul        UR)                  5         UR                  5       S   n[        R                  R+                  U5      (       d   eUR1                  U	5      (       d   e[        R                  R3                  U5      n
XR                  :X  d   eUR7                  S5      nSS0Ul        UR;                  S5      n[        R                  R=                  U5      S   nXR                  :X  d   eSUl        [        R                  R!                  U R                  5       5      n[        R"                  " 5       n[        R$                  " U5         UR;                  S5      n[        R$                  " U5        [        R                  R=                  U5      S   n[        R                  R=                  U5      S   nUS:X  d   eg ! [        R$                  " U5        f = f! [        R$                  " U5        f = f)Nzfoo.czvoid PyInit_foo(void) {}
rz   Fr   rO   r`   r   buildtemptTr   
EXT_SUFFIXbuild_pyr   r   r]   )r   r   r9   r   r=   
write_filer   r   r   r   rl   rX   get_outputsr   rh   ri   rd   getcwdchdirinplacerm   existsr   get_config_varendswithdirnamer   get_finalized_commandrg   get_ext_fullpathr   )r$   r   c_filer   rs   rt   other_tmp_dirold_wdso_file
ext_suffixso_dirr   r   lastdirs                 r&   test_get_outputsTestBuildExt.test_get_outputs  s   #%,,.gw/ <=x%8T3%@AnnT"3??$%***T\\7;dllG< ((8
	CKGGIoo'*GHHVww~~g&&&&--l;

++++)&&&	//#A&ww~~g&&&&
++++)&&& ,,Z8 "E{##E*ww}}T"1%}}$$$ ((8
	''.DHHVww}}T"1%''--%b)%I HHV@ HHVs   **O5 P 5PP(c                    [         R                  " S5      n[        5       nU R                  U5      nSUl        SS0UR
                  l        SS/UR
                  l        [        R                  " 5       n[        R                  R                  USSSU-   5      nUR                  S5      nXV:X  d   eS	Ul        [        R                  R                  US
5      Ul        [        R                  R                  US
SSU-   5      nUR                  S5      nXV:X  d   eUR                  S5      n0 Ul        SS/UR
                  l        UR                  S5      n[        R                  R                  US
SSSU-   5      nXV:X  d   eSUl        UR                  S5      n[        R                  R                  USSSU-   5      nXV:X  d   eg )Nr   Tr   srclxmlz	lxml.htmletreez
lxml.etreeFtmpdirr   twistedztwisted.runner.portmaprunnerportmap)r   r  r   r   r  distributionrg   packagesr9   r  r   r=   r
  rh   r	  )r$   r   rs   rt   curdirwantedr   r   s           r&   test_ext_fullpathTestBuildExt.test_ext_fullpath  s   &&|4
 ~nnT"(*E{$%+[$9!feVWs]C##L1~~ VX6fh#F##L1~~ ,,Z8!%.0H$I!##$<=fh	8YQT_U~~ ##$<=fi9s?K~~rL   zplatform.system() != "Darwin"save_envc                 (    U R                  SS 5        g )Nz==)_try_compile_deployment_targetr$   s    r&   test_deployment_target_default+TestBuildExt.test_deployment_target_default  s     	++D$7rL   c                     [         R                  " [        5         U R                  SS5        S S S 5        g ! , (       d  f       g = f)N>z10.1)r   r   r   r$  r%  s    r&   test_deployment_target_too_low+TestBuildExt.test_deployment_target_too_low  s-    
 ]]12//V< 322s	   7
Ac                    [         R                  " S5      nU(       ab  UR                  S5       Vs/ s H  n[        U5      PM     nnUS==   S-  ss'   SR	                  S U 5       5      nU R                  SU5        g g s  snf )NMACOSX_DEPLOYMENT_TARGET.r]   r   c              3   8   #    U  H  n[        U5      v   M     g 7fr)   )str).0is     r&   	<genexpr>@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_ok-TestBuildExt.test_deployment_target_higher_ok  su     ,,-GH	)2)=>)=AQ)=I>bMQM ; ;;I//Y? >s   Bc                    Uc6  [         R                  R                  S5      (       a  [         R                  S	 OU[         R                  S'   [        R                  R                  S[        R                  " SU S35      0U R                  5        [        R                  " S5      n[        [        [        UR                  S5      SS 5      5      nUS S S:  a  S	nO[        U5      S:  a  S
nOSnUR                   " U6 n[#        SU R                  S-  /SU 3/S9n[%        SU/S.5      nU R&                  Ul        U R+                  U5      nU R&                  Ul        U R&                  Ul         [0        R2                  n[4        R6                  (       d  [9        5       [0        l         UR;                  5         UR=                  5         U[0        l        g ! U[0        l        f = f! [>         a    U RA                  S5         g f = f)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}0000r7  z	-DTARGET=)extra_compile_argsr`   z*Wrong deployment target during compilation)!r9   environr   jaracor   r   textwrapdedentr   r   r  tuplemapr6  r   rX   formatr   r   r   rg   r   rh   ri   r   rj   r   rk   r   rl   rm   r   fail)r$   operatortargettmpldeptarget_extrs   rt   ru   s           r&   r$  +TestBuildExt._try_compile_deployment_target-  s   >zz~~899JJ9:5;BJJ12#X__ : 
 !)z *
6 
& MM	
$ ))*DEs3S 1!A 678 "1:  D 6{a% #f%!]]001"+F8 45

 [-QR<<nnT"	DJ??%Z
($$&	'
Z
 	DIIBC	Ds*   28G' + G G' G$$G' 'HH N)__name__
__module____qualname____firstlineno__r   r   markparametrizerv   staticmethodrn   r   r   r   r   r   r   r   r   r   r  r   skipifusefixturesr&  r*  r9  r$  __static_attributes__rK  rL   r&   rF   rF   Z   s<   * [[Y01) 11)f "( "(J),(8 F+P:5x1HH	&= ~#J [[78[[Z(8 ) 98 [[78[[Z(= ) 9= [[78[[Z(
@ ) 9
@@DrL   rF   c                   (   ^  \ rS rSrU 4S jrSrU =r$ )TestParallelBuildExtip  c                 6   > [         TU ]  " U0 UD6nSUl        U$ )NT)superr   parallel)r$   rI   rJ   r   	__class__s       r&   r   TestParallelBuildExt.build_extq  s%    G%t6v6	!	rL   rK  )rL  rM  rN  rO  r   rU  __classcell__)r[  s   @r&   rW  rW  p  s     rL   rW  )5
contextlibrb   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,   rP  rT  rF   rW  rK  rL   r&   <module>rm     s         	    
     1 '  * 7 T T      )  0    ( )RD> RD *RDj< rL   