
    4iD)                     b   S SK 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Jr  S SKrS SKJs  Jr  S SKJrJrJr  S%S jrSqS rS	 rS
rSrSrSr/ SQrSr S r!S r"S r#S r$S r%S r&S r'S r( " S S5      r) " S S5      r* " S S5      r+ " S S5      r, " S  S!5      r- " S" S#5      r.S$ r/g)&    N)rmtree)NamedTemporaryFilemkdtempmkstemp)URLError)urlparse)assert_assert_equalassert_raisesc                 J    U [        5       :X  a  [        SS9nU$ [        S5      e)z$Stub to replace urlopen for testing.urltmp_)prefixzName or service not known)valid_httpurlr   r   )urldatatmpfiles      b/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/numpy/lib/tests/test__datasource.pyurlopen_stubr      s'    
mo$I6233    c                  B    [         R                  q[        [         l        g N)urllib_requesturlopenold_urlopenr    r   r   setup_moduler      s     !((K)Nr   c                  "    [         [        l        g 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.txt)z/etc/shadowz../../shadowz..\system.datzc:\windows\system.dats   three is the magic numberc                 N    [        SSU SS9u  p[        R                  " U5        U$ )N.txtdstmp_T)suffixr   dirtext)r   osclosefiledirfdpaths      r   valid_textfiler+   4   s$    fX7NHBHHRLKr   c                 x    [        SSU S9u  p[        R                  " U5        [        R                  " U5        U$ )Nr    r!   )r"   r   r#   )r   r%   r&   remover'   s      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   )http_fakepathhttp_fakefiler   r   r   invalid_httpurlr5   G   s    =((r   c                      [         $ r   )r0   r   r   r   valid_baseurlr7   K       r   c                      [         $ r   )r3   r   r   r   invalid_baseurlr:   O       r   c                      [         $ r   )r1   r   r   r   valid_httpfiler=   S   r8   r   c                      [         $ r   )r4   r   r   r   invalid_httpfiler?   W   r;   r   c                   >    \ rS rSrS rS rS rS rS rS r	S r
S	rg
)TestDataSourceOpen[   c                     [         R                  " U5      nUR                  [        5       5      n[	        U5        UR                  5         g r   )
datasource
DataSourceopenr   r	   r&   )selftmp_pathdsfhs       r   test_ValidHTTP!TestDataSourceOpen.test_ValidHTTP\   s2    ""8,WW]_%

r   c                     [         R                  " U5      n[        5       n[        [        UR
                  U5         UR                  U5        g ! [         a!  n[        UR                  S L 5         S nAg S nAff = fr   )rD   rE   r5   r   OSErrorrF   r	   errno)rG   rH   rI   r   es        r   test_InvalidHTTP#TestDataSourceOpen.test_InvalidHTTPb   s]    ""8,grww,	%GGCL 	%AGGtO$$	%s   A 
A:A55A:c                 v    [         R                  " U5      n[        [        UR                  [        5       5        g r   )rD   rE   r   r   _cacher5   rG   rH   rI   s      r   test_InvalidHTTPCacheURLError0TestDataSourceOpen.test_InvalidHTTPCacheURLErrorl   s%    ""8,h		?+<=r   c                     [         R                  " U5      n[        U5      nUR                  U5      n[	        U5        UR                  5         g r   )rD   rE   r+   rF   r	   r&   )rG   rH   rI   
local_filerJ   s        r   test_ValidFile!TestDataSourceOpen.test_ValidFilep   s:    ""8,#H-
WWZ 

r   c                 |    [         R                  " U5      n[        U5      n[        [        UR
                  U5        g r   )rD   rE   r.   r   rN   rF   )rG   rH   rI   invalid_files       r   test_InvalidFile#TestDataSourceOpen.test_InvalidFilew   s,    ""8,'1grww5r   c                     SS K n[        R
                  " U5      n[        R                  R                  US5      nWR                  US5      nUR                  [        5        UR                  5         UR                  U5      nUR                  5       nUR                  5         [        [        U5        g ! [         a    [        R                  " 5          Nf = f)Nr   zfoobar.txt.gzw)gzipImportErrorpytestskiprD   rE   r%   r*   joinrF   write
magic_liner&   readliner
   )rG   rH   rb   rI   filepathfpresults          r   test_ValidGzipFile%TestDataSourceOpen.test_ValidGzipFile|   s    	
 ""8,77<</:YYx%


WWX

Z(  	KKM	   B5 5CCc                     SS K n[        R
                  " U5      n[        R                  R                  US5      nWR                  US5      nUR                  [        5        UR                  5         UR                  U5      nUR                  5       nUR                  5         [        [        U5        g ! [         a    [        R                  " 5          Nf = f)Nr   zfoobar.txt.bz2ra   )bz2rc   rd   re   rD   rE   r%   r*   rf   BZ2Filerg   rh   r&   rF   ri   r
   )rG   rH   rq   rI   rj   rk   rl   s          r   test_ValidBz2File$TestDataSourceOpen.test_ValidBz2File   s    	
 ""8,77<<*:;[[3'


WWX

Z(  	KKM	ro   r   N)__name__
__module____qualname____firstlineno__rK   rQ   rV   rZ   r^   rm   rs   __static_attributes__r   r   r   rA   rA   [   s%    %>6
)")r   rA   c                   ,    \ rS rSrS rS rS rS rSrg)TestDataSourceExists   c                 t    [         R                  " U5      n[        UR                  [	        5       5      5        g r   )rD   rE   r	   existsr   rU   s      r   rK   #TestDataSourceExists.test_ValidHTTP   s%    ""8,		-/*+r   c                 v    [         R                  " U5      n[        UR                  [	        5       5      S5        g NF)rD   rE   r
   r~   r5   rU   s      r   rQ   %TestDataSourceExists.test_InvalidHTTP   s(    ""8,RYY0159r   c                     [         R                  " U5      n[        U5      n[        UR	                  U5      5        [        5       n[        U5      n[        UR	                  U5      5        [        U5        g r   )rD   rE   r+   r	   r~   r   r   )rG   rH   rI   r   localdirs        r   rZ   #TestDataSourceExists.test_ValidFile   sW    ""8, *		'"#9 *		'"#xr   c                 |    [         R                  " U5      n[        U5      n[        UR	                  U5      S5        g r   )rD   rE   r.   r
   r~   )rG   rH   rI   r   s       r   r^   %TestDataSourceExists.test_InvalidFile   s/    ""8,"8,RYYw'/r   r   N)	ru   rv   rw   rx   rK   rQ   rZ   r^   ry   r   r   r   r{   r{      s    ,:	0r   r{   c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
TestDataSourceAbspath   c                 >   [         R                  " U5      n[        [        5       5      u  p4n    n[        R
                  R                  XUR                  [        R                  5      R                  S5      5      n[        XbR                  [        5       5      5        g N/)rD   rE   r   r   r%   r*   rf   stripsepr
   abspath)rG   rH   rI   _netlocupath
local_paths          r   rK   $TestDataSourceAbspath.test_ValidHTTP   sl    ""8,$,]_$=!5!QWW\\("'++bff"5";";C"@B
ZMO!<=r   c                     [         R                  " U5      n[        U5      n[        R                  R                  U5      S   n[        X2R                  U5      5        [        X2R                  U5      5        g N)rD   rE   r+   r%   r*   splitr
   r   )rG   rH   rI   r   tmpfilenames        r   rZ   $TestDataSourceAbspath.test_ValidFile   sU    ""8, *ggmmG,R0Wjj56Wjj12r   c                 B   [         R                  " U5      n[        [        5       5      u  p4n    n[        R
                  R                  XUR                  [        R                  5      R                  S5      5      n[        XbR                  [        5       5      :g  5        g r   )rD   rE   r   r5   r%   r*   rf   r   r   r	   r   r   )rG   rH   rI   r   r   r   invalidhttps          r   rQ   &TestDataSourceAbspath.test_InvalidHTTP   sp    ""8,$,_->$?!5!Qggll8#(;;rvv#6#<#<S#ACzz-/::;r   c                    [         R                  " U5      n[        U5      n[        U5      n[        R                  R                  U5      S   n[        X2R                  U5      :g  5        [        X2R                  U5      :g  5        g r   )rD   rE   r+   r%   r*   r   r	   r   )rG   rH   rI   invalidfiler   r   s         r   r^   &TestDataSourceAbspath.test_InvalidFile   se    ""8,$X. *ggmmG,R0zz+667zz'223r   c                   ^ [         R                  " U5      m[        U5      n[        R                  R                  U5      S   nU4S jn[        U" [        5       5      R                  [        U5      5      5        [        U" [        5       5      R                  [        U5      5      5        [        U" U5      R                  [        U5      5      5        [        U" U5      R                  [        U5      5      5        [         H\  n[        U" [        U-   5      R                  [        U5      5      5        [        U" U5      R                  [        U5      5      5        M^     g )Nr   c                 `   > [         R                  R                  TR                  U 5      5      $ r   r%   r*   r   )xrI   s    r   <lambda>7TestDataSourceAbspath.test_sandboxing.<locals>.<lambda>   s    A7r   )rD   rE   r+   r%   r*   r   r	   r   
startswithstrr5   malicious_filesr0   )rG   rH   r   r   r*   fnrI   s         @r   test_sandboxing%TestDataSourceAbspath.test_sandboxing   s    ""8, *ggmmG,R07]_%00X?@_&'223x=ABW((X78[!,,S];<!BDR(33CMBCDH''H67 "r   c                    [         R                  n S[         l        U R                  U5        U R                  U5        U R	                  U5        U R                  U5        U R                  U5        U[         l        g ! U[         l        f = fN\)r%   r   rK   rZ   rQ   r^   r   rG   rH   orig_os_seps      r   test_windows_os_sep)TestDataSourceAbspath.test_windows_os_sep   sl    ff	!BF))!!(+!!(+  * BF[BFs   A A> >Br   N)ru   rv   rw   rx   rK   rZ   rQ   r^   r   r   ry   r   r   r   r   r      s     >3<48
!r   r   c                   &    \ rS rSrS rS rS rSrg)TestRepositoryAbspath   c                 j   [         R                  " [        5       U5      n[        [	        5       5      u  p4n    n[
        R                  R                  UR                  UUR                  [
        R                  5      R                  S5      5      nUR                  [        5       5      n[        Xg5        g r   )rD   
Repositoryr7   r   r   r%   r*   rf   	_destpathr   r   r   r=   r
   )rG   rH   reposr   r   r   r   rj   s           r   rK   $TestRepositoryAbspath.test_ValidHTTP   s|    %%mox@$,]_$=!5!QWW\\%//6"'++bff"5";";C"@B
==!12Z*r   c                 ~  ^ [         R                  " [        5       U5      mU4S jn[        U" [	        5       5      R                  [        U5      5      5        [         H\  n[        U" [        U-   5      R                  [        U5      5      5        [        U" U5      R                  [        U5      5      5        M^     g )Nc                 `   > [         R                  R                  TR                  U 5      5      $ r   r   )r   r   s    r   r   7TestRepositoryAbspath.test_sandboxing.<locals>.<lambda>  s    q)9:r   )	rD   r   r7   r	   r=   r   r   r   r0   )rG   rH   r*   r   r   s       @r   r   %TestRepositoryAbspath.test_sandboxing   s    %%mox@:^%&11#h-@A!BDR(33CMBCDH''H67 "r   c                     [         R                  n S[         l        U R                  U5        U R                  U5        U[         l        g ! U[         l        f = fr   )r%   r   rK   r   r   s      r   r   )TestRepositoryAbspath.test_windows_os_sep  sB    ff	!BF)  * BF[BFs   -A Ar   N)ru   rv   rw   rx   rK   r   r   ry   r   r   r   r   r      s    +8!r   r   c                   ,    \ rS rSrS rS rS rS rSrg)TestRepositoryExistsi  c                     [         R                  " [        5       U5      n[        U5      n[	        UR                  U5      5        g r   )rD   r   r7   r+   r	   r~   rG   rH   r   r   s       r   rZ   #TestRepositoryExists.test_ValidFile  s1    %%mox@ *W%&r   c                     [         R                  " [        5       U5      n[        U5      n[	        UR                  U5      S5        g r   )rD   r   r7   r.   r
   r~   r   s       r   r^   %TestRepositoryExists.test_InvalidFile  s3    %%mox@"8,U\\'*E2r   c                     [         R                  " [        5       U5      n[        UR	                  [        5       5      5        g r   )rD   r   r7   r	   r~   r   )rG   rH   r   s      r   test_RemoveHTTPFile(TestRepositoryExists.test_RemoveHTTPFile  s)    %%mox@]_-.r   c                 D   [        5       n[        R                  " [        5       U5      n[	        U5      u  pE      n[
        R                  R                  UR                  U5      n[
        R                  " US5        [        U5      n[        UR                  U5      5        g )Ni  )r   rD   r   r7   r   r%   r*   rf   r   mkdirr+   r	   r~   )rG   rH   	localfiler   r   r   r   r   s           r   test_CachedHTTPFile(TestRepositoryExists.test_CachedHTTPFile"  su    !O	 %%mox@ ( 31aAWW\\%//6:

V$ ,W%&r   r   N)	ru   rv   rw   rx   rZ   r^   r   r   ry   r   r   r   r   r     s    '3
/
'r   r   c                       \ rS rSrS rSrg)TestOpenFunci/  c                     [        U5      n[        R                  " X!S9n[        U5        UR	                  5         [        R                  " U5      n[        U5        UR	                  5         g )N)destpath)r+   rD   rF   r	   r&   )rG   rH   rY   rk   s       r   test_DataSourceOpen TestOpenFunc.test_DataSourceOpen0  sH    #H-
__Z;

__Z(

r   r   N)ru   rv   rw   rx   r   ry   r   r   r   r   r   /  s    	r   r   c                  R    [         R                  " 5       n U ?U R                  5         g r   )rD   rE   
_istmpdest__del__)rI   s    r   test_del_attr_handlingr   ;  s$     
			 B 	 JJLr   r   )0r%   urllib.requestrequestr   shutilr   tempfiler   r   r   urllib.errorr   urllib.parser   rd   numpy.lib._datasourcelib_datasourcerD   numpy.testingr	   r
   r   r   r   r   r   r0   r1   r3   r4   r   rh   r+   r.   r   r5   r7   r:   r=   r?   rA   r{   r   r   r   r   r   r   r   r   <module>r      s    	 '  9 9 ! !  * * > >4 *)
 %		+@ *
!)A) A)H0 04;! ;!|! !6' ':
 
r   