+
    eiU)  c                   sd   ^ RI t ^ RIHt ^ RIHt ^ RIHtHtH	t	 ^ RI
Ht ^ RIHt ^ RIt^ RIHu Ht ^ RIHtHtHt R$R ltRsR tR	 tR
tRtRtRt. R%OtRt R t!R t"R t#R t$R t%R t&R t'R t( ! R R4      t) ! R R4      t* ! R R4      t+ ! R R4      t, ! R R 4      t- ! R! R"4      t.R# t/R# )&    N)rmtree)NamedTemporaryFilemkdtempmkstemp)URLError)urlparse)assert_assert_equalassert_raisesc                sR    V \        4       8X  d   \        RR7      pV# \        R4      h)z$Stub to replace urlopen for testing.Zurltmp_)prefixzName or service not known)valid_httpurlr   r   )urlZdatatmpfiles   && G/usr/lib64/python3.14/site-packages/numpy/lib/tests/test__datasource.pyurlopen_stubr      s'    
mo$I6233    c                  sD    \         P                  s\        \         n        R # N)urllib_requesturlopenold_urlopenr    r   r   setup_moduler      s     !((K)Nr   c                  s$    \         \        n        R # r   )r   r   r   r   r   r   teardown_moduler   "   s
    (Nr   zhttp://www.google.com/z
index.htmlzhttp://fake.abc.web/site/zfake.txts   three is the magic numberc                 sT    \        R RV RR7      w  r\        P                  ! V4       V# ).txtdstmp_T)suffixr
   dirZtext)r   oscloseZfiledirZfdpath   &  r   valid_textfiler!   4   s$    fX7NHBHHRLKr   c                 s~    \        R RV R7      w  r\        P                  ! V4       \        P                  ! V4       V# )r   r   )r   r
   r   )r   r   r   Zremover   r    r   invalid_textfiler"   ;   s-    fX7CHBHHRLIIdOKr   c                  $    \         \        ,           # r   )	http_path	http_filer   r   r   r   r   C   s    y  r   c                  r#   r   )http_fakepathhttp_fakefiler   r   r   invalid_httpurlr(   G   s    =((r   c                      \         # r   )r$   r   r   r   valid_baseurlr*   K       r   c                  r)   r   )r&   r   r   r   invalid_baseurlr,   O       r   c                  r)   r   )r%   r   r   r   valid_httpfiler.   S   r+   r   c                  r)   r   )r'   r   r   r   invalid_httpfiler/   W   r-   r   c                   sV   a  ] tR t^[t o R tR tR tR tR tR t	R t
R tR	 tR
tV tR# )TestDataSourceOpenc                n    \        4       V n        \        P                  ! V P                  4      V n        R # r   r   tmpdir
datasource
DataSourcedsself   &r   setup_methodZTestDataSourceOpen.setup_method\   !    i''4r   c                4    \        V P                  4       V =R # r   r   r3   r6   r7   r9   r   teardown_methodZ"TestDataSourceOpen.teardown_method`       t{{Gr   c                s    V P                   P                  \        4       4      p\        V4       VP	                  4        R # r   )r6   openr   r   r   )r8   fh   & r   test_ValidHTTPZ!TestDataSourceOpen.test_ValidHTTPd   s&    WW\\-/*

r   c                s    \        4       p\        \        V P                  P                  V4        V P                  P	                  V4       R #   \         d#   p\        TP                  R J 4        R p?R # R p?ii ; ir   )r(   r	   OSErrorr6   r@   r   Zerrno)r8   r   Zer    r   test_InvalidHTTPZ#TestDataSourceOpen.test_InvalidHTTPi   sV    gtww||S1	%GGLL 	%AGGtO$$	%s   A A;A66A;c                s`    \        \        V P                  P                  \	        4       4       R # r   )r	   r   r6   Z_cacher(   r7   r9   r   test_InvalidHTTPCacheURLErrorZ0TestDataSourceOpen.test_InvalidHTTPCacheURLErrorr   s    h0ABr   c                s    \        V P                  4      pV P                  P                  V4      p\	        V4       VP                  4        R # r   )r!   r3   r6   r@   r   r   )r8   
local_filerA   r    r   test_ValidFileZ!TestDataSourceOpen.test_ValidFileu   s2    #DKK0
WW\\*%

r   c                sz    \        V P                  4      p\        \        V P                  P
                  V4       R # r   )r"   r3   r	   rD   r6   r@   )r8   Zinvalid_filerB   r   test_InvalidFileZ#TestDataSourceOpen.test_InvalidFile{   s$    '4gtww||\:r   c                s    ^ RI p\        P
                  P                  V P                  R4      pXP                  VR4      pVP                  \        4       VP                  4        V P                  P                  V4      pVP                  4       pVP                  4        \        \        V4       R#   \         d    \        P                  ! 4         Li ; i)r    Nzfoobar.txt.gzw)gzipImportErrorpytestskipr   r   joinr3   r@   write
magic_liner   r6   readliner   )r8   rK   filepathfpresult   &    r   test_ValidGzipFileZ%TestDataSourceOpen.test_ValidGzipFile   s    	
 77<<_=YYx%


WW\\(#

Z(  	KKM	   B4 4 CCc                s    ^ RI p\        P
                  P                  V P                  R4      pXP                  VR4      pVP                  \        4       VP                  4        V P                  P                  V4      pVP                  4       pVP                  4        \        \        V4       R#   \         d    \        P                  ! 4         Li ; i)r    Nzfoobar.txt.bz2rJ   )bz2rL   rM   rN   r   r   rO   r3   ZBZ2FilerP   rQ   r   r6   r@   rR   r   )r8   rY   rS   rT   rU   rV   r   test_ValidBz2FileZ$TestDataSourceOpen.test_ValidBz2File   s    	
 77<<-=>[[3'


WW\\(#

Z(  	KKM	rX   r6   r3   N)__name__
__module____qualname____firstlineno__r:   r>   rC   rE   rF   rH   rI   rW   rZ   __static_attributes____classdictcell__Z__classdict__   @r   r0   r0   [   s8     5
%C;) ) )r   r0   c                   sD   a  ] tR t^t o R tR tR tR tR tR t	Rt
V tR# )	TestDataSourceExistsc                r1   r   r2   r7   r9   r   r:   Z!TestDataSourceExists.setup_method   r;   r   c                r<   r   r=   r7   r9   r   r>   Z$TestDataSourceExists.teardown_method   r?   r   c                ^    \        V P                  P                  \        4       4      4       R # r   )r   r6   existsr   r7   r9   r   rC   Z#TestDataSourceExists.test_ValidHTTP   s    }/0r   c                s`    \        V P                  P                  \        4       4      R 4       R# FN)r   r6   rf   r(   r7   r9   r   rE   Z%TestDataSourceExists.test_InvalidHTTP   s    TWW^^O$56>r   c                s    \        V P                  4      p\        V P                  P	                  V4      4       \        4       p\        V4      p\        V P                  P	                  V4      4       \        V4       R # r   )r!   r3   r   r6   rf   r   r   )r8   r   Zlocaldirr    r   rH   Z#TestDataSourceExists.test_ValidFile   sS     -w'(9 *w'(xr   c                z    \        V P                  4      p\        V P                  P	                  V4      R 4       R# rg   )r"   r3   r   r6   rf   r8   r   rB   r   rI   Z%TestDataSourceExists.test_InvalidFile   s'    "4;;/TWW^^G,e4r   r[   N)r\   r]   r^   r_   r:   r>   rC   rE   rH   rI   r`   ra   rb   rc   r   rd   rd      s(     51?5 5r   rd   c                   sP   a  ] tR t^t o R tR tR tR tR tR t	R t
R tR	tV tR
# )TestDataSourceAbspathc                s    \         P                  P                  \        4       4      V n        \
        P                  ! V P                  4      V n        R # r   )r   r   abspathr   r3   r4   r5   r6   r7   r9   r   r:   Z"TestDataSourceAbspath.setup_method   s.    ggoogi0''4r   c                r<   r   r=   r7   r9   r   r>   Z%TestDataSourceAbspath.teardown_method   r?   r   c                s:   \        \        4       4      w  rr4rV\        P                  P	                  V P
                  VVP                  \        P                  4      P                  R 4      4      p\        WpP                  P                  \        4       4      4       R# Z/N)r   r   r   r   rO   r3   stripsepr   r6   rk   )r8   schemenetlocupathpmsqryfrg
local_path   &       r   rC   Z$TestDataSourceAbspath.test_ValidHTTP   sb    /7/H,CWW\\$++v"'++bff"5";";C"@B
Z!ABr   c                s   \        V P                  4      p\        P                  P	                  V4      R,          p\        WP                  P                  V4      4       \        WP                  P                  V4      4       R#    N)r!   r3   r   r   splitr   r6   rk   )r8   r   tmpfilenamer    r   rH   Z$TestDataSourceAbspath.test_ValidFile   sQ     -ggmmG,R0Wggook:;Wggoog67r   c                s>   \        \        4       4      w  rr4rV\        P                  P	                  V P
                  VVP                  \        P                  4      P                  R 4      4      p\        WpP                  P                  \        4       4      8g  4       R# rl   )r   r(   r   r   rO   r3   rm   rn   r   r6   rk   r   )r8   ro   rp   rq   rr   rs   rt   Zinvalidhttprv   r   rE   Z&TestDataSourceAbspath.test_InvalidHTTP   sf    /78I/J,Cggll4;;#(;;rvv#6#<#<S#ACww}??@r   c                s>   \        V P                  4      p\        V P                  4      p\        P                  P	                  V4      R,          p\        WP                  P                  V4      8g  4       \        WP                  P                  V4      8g  4       R# rw   )r!   r3   r   r   rz   r   r6   rk   )r8   Zinvalidfiler   r{   s   &   r   rI   Z&TestDataSourceAbspath.test_InvalidFile   se    $T[[1 -ggmmG,R0ww{;;<www778r   c                s  a  \        S P                  4      p\        P                  P	                  V4      R,          pV 3R lp\        V! \        4       4      P                  S P                  4      4       \        V! \        4       4      P                  S P                  4      4       \        V! V4      P                  S P                  4      4       \        V! V4      P                  S P                  4      4       \         Fb  p\        V! \        V,           4      P                  S P                  4      4       \        V! V4      P                  S P                  4      4       Kd  	  R# )rx   c                 t   < \         P                  P                  SP                  P                  V 4      4      # r   )r   r   rk   r6   Zxr8      &r   <lambda>Z7TestDataSourceAbspath.test_sandboxing.<locals>.<lambda>   s    RWW__TWW__Q-?@r   Nry   )r!   r3   r   r   rz   r   r   
startswithr(   malicious_filesr$   )r8   r   r{   tmp_pathfns   f    r   test_sandboxingZ%TestDataSourceAbspath.test_sandboxing   s     -ggmmG,R0@)44T[[AB*+66t{{CD!,,T[[9:%00=>!BHY^,77DEHRL++DKK89 "r   c                s   \         P                  p R \         n        V P                  4        V P                  4        V P	                  4        V P                  4        V P                  4        V\         n        R#   T\         n        i ; iZ\N)r   rn   rC   rH   rE   rI   r   r8   Zorig_os_seprB   r   test_windows_os_sepZ)TestDataSourceAbspath.test_windows_os_sep   sb    ff	!BF!!!!#!!#  " BF[BFs   AA: :Br[   N)r\   r]   r^   r_   r:   r>   rC   rH   rE   rI   r   r   r`   ra   rb   rc   r   rj   rj      s4     5C8A9:
! 
!r   rj   c                   s>   a  ] tR t^t o R tR tR tR tR tRt	V t
R# )TestRepositoryAbspathc                s    \         P                  P                  \        4       4      V n        \
        P                  ! \        4       V P                  4      V n        R # r   )	r   r   rk   r   r3   r4   
Repositoryr*   reposr7   r9   r   r:   Z"TestRepositoryAbspath.setup_method   s2    ggoogi0**=?DKKH
r   c                r<   r   r   r3   r   r7   r9   r   r>   Z%TestRepositoryAbspath.teardown_method      t{{Jr   c                sR   \        \        4       4      w  rr4rV\        P                  P	                  V P
                  P                  VVP                  \        P                  4      P                  R 4      4      pV P
                  P                  \        4       4      p\        Wx4       R# rl   )r   r   r   r   rO   r   	_destpathrm   rn   rk   r.   r   )	r8   ro   rp   rq   rr   rs   rt   ru   rS   s	   &        r   rC   Z$TestRepositoryAbspath.test_ValidHTTP  sp    /7/H,CWW\\$**"6"6"'++bff"5";";C"@B
::%%n&67Z*r   c                sP  a  V 3R  lp\        V! \        4       4      P                  S P                  4      4       \         Fb  p\        V! \
        V,           4      P                  S P                  4      4       \        V! V4      P                  S P                  4      4       Kd  	  R# )c                 r|   r   )r   r   rk   r   r}   r~   r   r   Z7TestRepositoryAbspath.test_sandboxing.<locals>.<lambda>  s!    RWW__TZZ-?-?-BCr   N)r   r.   r   r3   r   r$   )r8   r   r   s   f  r   r   Z%TestRepositoryAbspath.test_sandboxing  sl    C)*55dkkBC!BHY^,77DEHRL++DKK89 "r   c                s    \         P                  p R \         n        V P                  4        V P                  4        V\         n        R#   T\         n        i ; ir   )r   rn   rC   r   r   rB   r   r   Z)TestRepositoryAbspath.test_windows_os_sep  s>    ff	!BF!  " BF[BFs   +A
 
Ar   r3   N)r\   r]   r^   r_   r:   r>   rC   r   r   r`   ra   rb   rc   r   r   r      s$     I+:! !r   r   c                   sD   a  ] tR tRt o R tR tR tR tR tR t	Rt
V tR	# )
TestRepositoryExistsi   c                s    \        4       V n        \        P                  ! \	        4       V P                  4      V n        R # r   )r   r3   r4   r   r*   r   r7   r9   r   r:   Z!TestRepositoryExists.setup_method!  s%    i**=?DKKH
r   c                r<   r   r   r7   r9   r   r>   Z$TestRepositoryExists.teardown_method%  r   r   c                sx    \        V P                  4      p\        V P                  P	                  V4      4       R # r   )r!   r3   r   r   rf   ri   rB   r   rH   Z#TestRepositoryExists.test_ValidFile)  s'     -

!!'*+r   c                rh   rg   )r"   r3   r   r   rf   ri   rB   r   rI   Z%TestRepositoryExists.test_InvalidFile.  s)    "4;;/TZZ&&w/7r   c                re   r   )r   r   rf   r   r7   r9   r   test_RemoveHTTPFileZ(TestRepositoryExists.test_RemoveHTTPFile2  s    

!!-/23r   c                s,   \        4       p\        V4      w  r#rErg\        P                  P	                  V P
                  P                  V4      p\        P                  ! VR 4       \        V4      p	\        V P
                  P                  V	4      4       R# )i  N)r   r   r   r   rO   r   r   Zmkdirr!   r   rf   )
r8   Z	localfilero   rp   rq   rr   rs   rt   ru   r   s
   &         r   test_CachedHTTPFileZ(TestRepositoryExists.test_CachedHTTPFile5  si    !O	 08	/B,CWW\\$**"6"6?

V$ ,

!!'*+r   r   N)r\   r]   r^   r_   r:   r>   rH   rI   r   r   r`   ra   rb   rc   r   r   r      s)     I,
84	, 	,r   r   c                   s2   a  ] tR tRt o R tR tR tRtV tR# )TestOpenFunciA  c                s$    \        4       V n        R # r   )r   r3   r7   r9   r   r:   ZTestOpenFunc.setup_methodB  s    ir   c                s0    \        V P                  4       R # r   )r   r3   r7   r9   r   r>   ZTestOpenFunc.teardown_methodE  s    t{{r   c                s
   \        V P                  4      p\        P                  ! WP                  R 7      p\	        V4       VP                  4        \        P                  ! V4      p\	        V4       VP                  4        R# ))ZdestpathN)r!   r3   r4   r@   r   r   )r8   rG   rT   r    r   test_DataSourceOpenZ TestOpenFunc.test_DataSourceOpenH  sP    #DKK0
__Z++>

__Z(

r   )r3   N)	r\   r]   r^   r_   r:   r>   r   r`   ra   rb   rc   r   r   r   A  s      	 	r   r   c                  sT    \         P                  ! 4       p V =V P                  4        R # r   )r4   r5   Z
_istmpdestZ__del__)r6   s    r   test_del_attr_handlingr   S  s$     
			 B 	 JJLr   r   )z/etc/shadowz../../shadowz..\system.datzc:\windows\system.dat)0r   Zurllib.requestZrequestr   Zshutilr   Ztempfiler   r   r   Zurllib.errorr   Zurllib.parser   rM   Znumpy.lib._datasourceZlibZ_datasourcer4   Znumpy.testingr   r   r	   r   r   r   r   r$   r%   r&   r'   r   rQ   r!   r"   r   r(   r*   r,   r.   r/   r0   rd   rj   r   r   r   r   r   r   r   <module>r      s    	 '  9 9 ! !  * * > >4 *)
 %		+@ *
!)B) B)J5 5<>! >!B! !B, ,B $r   