Ë
    öU.j©*  ã                   ó`  — d dl Z d dlZd dlmZmZmZ d dlmZ d dlm	c m
Z d dlmZmZmZ d dlmZ d dlmZ d dlmZ d%d„Zdad„ Zd	„ Zd
ZdZdZdZg d¢ZdZ d„ Z!d„ Z"d„ Z#d„ Z$d„ Z%d„ Z&d„ Z'd„ Z( G d„ d«      Z) G d„ d«      Z* G d„ d«      Z+ G d„ d«      Z, G d „ d!«      Z- G d"„ d#«      Z.d$„ Z/y)&é    N)ÚmkdtempÚmkstempÚNamedTemporaryFile)Úrmtree)Úassert_Úassert_equalÚassert_raises)Úurlparse)ÚURLErrorc                 óN   — | t        «       k(  rt        d¬«      }|S t        d«      ‚)z$Stub to replace urlopen for testing.Úurltmp_)ÚprefixzName or service not known)Úvalid_httpurlr   r   )ÚurlÚdataÚtmpfiles      úbC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\numpy/lib/tests/test__datasource.pyÚurlopen_stubr      s'   € à
Œm‹oÒÜ$¨IÔ6ˆØˆäÐ2Ó3Ð3ó    c                  óB   — t         j                  at        t         _        y ©N)Úurllib_requestÚurlopenÚold_urlopenr   © r   r   Úsetup_moduler      s   € ô !×(Ñ(€KÜ)„NÕr   c                  ó"   — t         t        _        y 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                 óT   — t        dd| d¬«      \  }}t        j                  |«       |S )Nú.txtÚdstmp_T)Úsuffixr   ÚdirÚtext)r   ÚosÚclose©ÚfiledirÚfdÚpaths      r   Úvalid_textfiler+   2   s&   € ä˜f¨X¸7ÈÔN�H€BˆÜ‡H�HˆR„LØ€Kr   c                 ó|   — t        dd| ¬«      \  }}t        j                  |«       t        j                  |«       |S )Nr    r!   )r"   r   r#   )r   r%   r&   Úremover'   s      r   Úinvalid_textfiler.   9   s/   € ä˜f¨X¸7ÔC�H€BˆÜ‡H�HˆR„LÜ‡I�Iˆd„OØ€Kr   c                  ó   — t         t        z   S r   )Ú	http_pathÚ	http_filer   r   r   r   r   A   s   € Ü”YÑÐr   c                  ó   — t         t        z   S r   )Úhttp_fakepathÚhttp_fakefiler   r   r   Úinvalid_httpurlr5   E   s   € ÜœÑ&Ð&r   c                  ó   — t         S r   )r0   r   r   r   Úvalid_baseurlr7   I   ó   € ÜÐr   c                  ó   — t         S r   )r3   r   r   r   Úinvalid_baseurlr:   M   ó   € ÜÐr   c                  ó   — t         S r   )r1   r   r   r   Úvalid_httpfiler=   Q   r8   r   c                  ó   — t         S r   )r4   r   r   r   Úinvalid_httpfiler?   U   r;   r   c                   óB   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zy
)ÚTestDataSourceOpenc                 ój   — t        «       | _        t        j                  | j                  «      | _        y r   ©r   ÚtmpdirÚ
datasourceÚ
DataSourceÚds©Úselfs    r   Úsetup_methodzTestDataSourceOpen.setup_methodZ   ó!   € Ü“iˆŒÜ×'Ñ'¨¯©Ó4ˆ�r   c                 ó2   — t        | j                  «       | `y r   ©r   rD   rG   rH   s    r   Úteardown_methodz"TestDataSourceOpen.teardown_method^   ó   € Üˆt�{‰{ÔØ‰Gr   c                 ó€   — | j                   j                  t        «       «      }t        |«       |j	                  «        y r   )rG   Úopenr   r   r&   )rI   Úfhs     r   Útest_ValidHTTPz!TestDataSourceOpen.test_ValidHTTPb   s&   € Ø�W‰W�\‰\œ-›/Ó*ˆÜ�ŒØ
�‰�
r   c                 óô   — t        «       }t        t        | j                  j                  |«       	 | j                  j	                  |«       y # t        $ r!}t        |j                  d u «       Y d }~y d }~ww xY wr   )r5   r	   ÚOSErrorrG   rQ   r   Úerrno)rI   r   Úes      r   Útest_InvalidHTTPz#TestDataSourceOpen.test_InvalidHTTPg   sV   € ÜÓˆÜ”g˜tŸw™wŸ|™|¨SÔ1ð	%Ø�G‰G�L‰L˜ÕøÜò 	%ä�A—G‘G˜t�O×$Ñ$ûð	%ús   ±A Á	A7ÁA2Á2A7c                 ó^   — t        t        | j                  j                  t	        «       «       y r   )r	   r   rG   Ú_cacher5   rH   s    r   Útest_InvalidHTTPCacheURLErrorz0TestDataSourceOpen.test_InvalidHTTPCacheURLErrorp   s   € Ü”h §¡§¡´Ó0AÕBr   c                 óš   — t        | j                  «      }| j                  j                  |«      }t	        |«       |j                  «        y r   )r+   rD   rG   rQ   r   r&   )rI   Ú
local_filerR   s      r   Útest_ValidFilez!TestDataSourceOpen.test_ValidFiles   s2   € Ü# D§K¡KÓ0ˆ
Ø�W‰W�\‰\˜*Ó%ˆÜ�ŒØ
�‰�
r   c                 óx   — t        | j                  «      }t        t        | j                  j
                  |«       y r   )r.   rD   r	   rU   rG   rQ   )rI   Úinvalid_files     r   Útest_InvalidFilez#TestDataSourceOpen.test_InvalidFiley   s$   € Ü'¨¯©Ó4ˆÜ”g˜tŸw™wŸ|™|¨\Õ:r   c                 ó¬  — 	 dd l }t        j
                  j                  | j                  d«      }j                  |d«      }|j                  t        «       |j                  «        | j                  j                  |«      }|j                  «       }|j                  «        t        t        |«       y # t        $ r t        j                  «        Y ŒÌw xY w)Nr   zfoobar.txt.gzÚw)ÚgzipÚImportErrorÚpytestÚskipr%   r*   ÚjoinrD   rQ   ÚwriteÚ
magic_liner&   rG   Úreadliner   )rI   rd   ÚfilepathÚfpÚresults        r   Útest_ValidGzipFilez%TestDataSourceOpen.test_ValidGzipFile}   s“   € ð	Ûô
 —7‘7—<‘< §¡¨_Ó=ˆØ�Y‰Y�x Ó%ˆØ
�‰”ÔØ
�‰Œ
Ø�W‰W�\‰\˜(Ó#ˆØ—‘“ˆØ
�‰Œ
Ü”Z Õ(øô ò 	ä�K‰KŽMð	úó   ‚B3 Â3CÃCc                 ó¬  — 	 dd l }t        j
                  j                  | j                  d«      }j                  |d«      }|j                  t        «       |j                  «        | j                  j                  |«      }|j                  «       }|j                  «        t        t        |«       y # t        $ r t        j                  «        Y ŒÌw xY w)Nr   zfoobar.txt.bz2rc   )Úbz2re   rf   rg   r%   r*   rh   rD   ÚBZ2Fileri   rj   r&   rG   rQ   rk   r   )rI   rr   rl   rm   rn   s        r   Útest_ValidBz2Filez$TestDataSourceOpen.test_ValidBz2File�   s”   € ð	Ûô
 —7‘7—<‘< §¡Ð-=Ó>ˆØ�[‰[˜ 3Ó'ˆØ
�‰”ÔØ
�‰Œ
Ø�W‰W�\‰\˜(Ó#ˆØ—‘“ˆØ
�‰Œ
Ü”Z Õ(øô ò 	ä�K‰KŽMð	úrp   N)Ú__name__Ú
__module__Ú__qualname__rJ   rN   rS   rX   r[   r^   ra   ro   rt   r   r   r   rA   rA   Y   s0   „ ò5òòò
%òCòò;ò)ó )r   rA   c                   ó0   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestDataSourceExistsc                 ój   — t        «       | _        t        j                  | j                  «      | _        y r   rC   rH   s    r   rJ   z!TestDataSourceExists.setup_methodŸ   rK   r   c                 ó2   — t        | j                  «       | `y r   rM   rH   s    r   rN   z$TestDataSourceExists.teardown_method£   rO   r   c                 ó\   — t        | j                  j                  t        «       «      «       y r   )r   rG   Úexistsr   rH   s    r   rS   z#TestDataSourceExists.test_ValidHTTP§   s   € Ü�—‘—‘œ}›Ó/Õ0r   c                 ó^   — t        | j                  j                  t        «       «      d«       y ©NF)r   rG   r}   r5   rH   s    r   rX   z%TestDataSourceExists.test_InvalidHTTPª   s   € Ü�T—W‘W—^‘^¤OÓ$5Ó6¸Õ>r   c                 óþ   — t        | j                  «      }t        | j                  j	                  |«      «       t        «       }t        |«      }t        | j                  j	                  |«      «       t        |«       y r   )r+   rD   r   rG   r}   r   r   )rI   r   Úlocaldirs      r   r^   z#TestDataSourceExists.test_ValidFile­   sS   € ä  §¡Ó-ˆÜ�—‘—‘˜wÓ'Ô(ä“9ˆÜ  Ó*ˆÜ�—‘—‘˜wÓ'Ô(ÜˆxÕr   c                 óx   — t        | j                  «      }t        | j                  j	                  |«      d«       y r   )r.   rD   r   rG   r}   ©rI   r   s     r   ra   z%TestDataSourceExists.test_InvalidFile·   s'   € Ü" 4§;¡;Ó/ˆÜ�T—W‘W—^‘^ GÓ,¨eÕ4r   N)	ru   rv   rw   rJ   rN   rS   rX   r^   ra   r   r   r   ry   ry   ž   s    „ ò5òò1ò?òó5r   ry   c                   ó<   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
y	)
ÚTestDataSourceAbspathc                 ó¤   — t         j                  j                  t        «       «      | _        t        j                  | j                  «      | _        y r   )r%   r*   Úabspathr   rD   rE   rF   rG   rH   s    r   rJ   z"TestDataSourceAbspath.setup_method½   s.   € Ü—g‘g—o‘o¤g£iÓ0ˆŒÜ×'Ñ'¨¯©Ó4ˆ�r   c                 ó2   — t        | j                  «       | `y r   rM   rH   s    r   rN   z%TestDataSourceAbspath.teardown_methodÁ   rO   r   c                 ó@  — t        t        «       «      \  }}}}}}t        j                  j	                  | j
                  ||j                  t        j                  «      j                  d«      «      }t        || j                  j                  t        «       «      «       y ©NÚ/)r
   r   r%   r*   rh   rD   ÚstripÚsepr   rG   r‡   )rI   ÚschemeÚnetlocÚupathÚpmsÚqryÚfrgÚ
local_paths           r   rS   z$TestDataSourceAbspath.test_ValidHTTPÅ   sj   € Ü/7¼»Ó/HÑ,ˆ�˜˜s C¨Ü—W‘W—\‘\ $§+¡+¨vØ"'§+¡+¬b¯f©fÓ"5×";Ñ";¸CÓ"@óBˆ
ä�Z §¡§¡´³Ó!AÕBr   c                 ó  — t        | j                  «      }t        j                  j	                  |«      d   }t        || j                  j                  |«      «       t        || j                  j                  |«      «       y ©Néÿÿÿÿ)r+   rD   r%   r*   Úsplitr   rG   r‡   )rI   r   Útmpfilenames      r   r^   z$TestDataSourceAbspath.test_ValidFileË   sU   € Ü  §¡Ó-ˆÜ—g‘g—m‘m GÓ,¨RÑ0ˆä�W˜dŸg™gŸo™o¨kÓ:Ô;ä�W˜dŸg™gŸo™o¨gÓ6Õ7r   c                 óD  — t        t        «       «      \  }}}}}}t        j                  j	                  | j
                  ||j                  t        j                  «      j                  d«      «      }t        || j                  j                  t        «       «      k7  «       y rŠ   )r
   r5   r%   r*   rh   rD   rŒ   r�   r   rG   r‡   r   )rI   rŽ   r�   r�   r‘   r’   r“   Úinvalidhttps           r   rX   z&TestDataSourceAbspath.test_InvalidHTTPÓ   sn   € Ü/7¼Ó8IÓ/JÑ,ˆ�˜˜s C¨Ü—g‘g—l‘l 4§;¡;°Ø#(§;¡;¬r¯v©vÓ#6×#<Ñ#<¸SÓ#AóCˆä�˜tŸw™wŸ™¬}«Ó?Ñ?Õ@r   c                 ó8  — t        | j                  «      }t        | j                  «      }t        j                  j	                  |«      d   }t        || j                  j                  |«      k7  «       t        || j                  j                  |«      k7  «       y r–   )r+   rD   r%   r*   r˜   r   rG   r‡   )rI   Úinvalidfiler   r™   s       r   ra   z&TestDataSourceAbspath.test_InvalidFileÙ   si   € Ü$ T§[¡[Ó1ˆÜ  §¡Ó-ˆÜ—g‘g—m‘m GÓ,¨RÑ0ˆä�˜tŸw™wŸ™¨{Ó;Ñ;Ô<ä�˜tŸw™wŸ™¨wÓ7Ñ7Õ8r   c                 óº  ‡ — t        ‰ j                  «      }t        j                  j	                  |«      d   }ˆ fd„}t         |t        «       «      j                  ‰ j                  «      «       t         |t        «       «      j                  ‰ j                  «      «       t         ||«      j                  ‰ j                  «      «       t         ||«      j                  ‰ j                  «      «       t        D ]]  }t         |t        |z   «      j                  ‰ j                  «      «       t         ||«      j                  ‰ j                  «      «       Œ_ y )Nr—   c                 ót   •— t         j                  j                  ‰j                  j                  | «      «      S r   )r%   r*   r‡   rG   ©ÚxrI   s    €r   Ú<lambda>z7TestDataSourceAbspath.test_sandboxing.<locals>.<lambda>æ   s   ø€ œRŸW™WŸ_™_¨T¯W©W¯_©_¸QÓ-?Ô@r   )r+   rD   r%   r*   r˜   r   r   Ú
startswithr5   Úmalicious_filesr0   )rI   r   r™   Útmp_pathÚfns   `    r   Útest_sandboxingz%TestDataSourceAbspath.test_sandboxingâ   sç   ø€ Ü  §¡Ó-ˆÜ—g‘g—m‘m GÓ,¨RÑ0ˆã@ˆä‘œ›Ó)×4Ñ4°T·[±[ÓAÔBÜ‘œÓ*Ó+×6Ñ6°t·{±{ÓCÔDÜ‘˜Ó!×,Ñ,¨T¯[©[Ó9Ô:Ü‘˜Ó%×0Ñ0°·±Ó=Ô>ß!ˆBÜ‘HœY r™\Ó*×5Ñ5°d·k±kÓBÔCÜ‘H˜R“L×+Ñ+¨D¯K©KÓ8Õ9ñ "r   c                 ó  — t         j                  }	 dt         _        | j                  «        | j                  «        | j	                  «        | j                  «        | j                  «        |t         _        y # |t         _        w xY w©NÚ\)r%   r�   rS   r^   rX   ra   r§   ©rI   Úorig_os_seps     r   Útest_windows_os_sepz)TestDataSourceAbspath.test_windows_os_sepð   sb   € Ü—f‘fˆð	!ØŒBŒFØ×ÑÔ!Ø×ÑÔ!Ø×!Ñ!Ô#Ø×!Ñ!Ô#Ø× Ñ Ô"à ŒB�Fø�[ŒB�Fús   ’AA9 Á9BN)ru   rv   rw   rJ   rN   rS   r^   rX   ra   r§   r­   r   r   r   r…   r…   ¼   s,   „ ò5òòCò8òAò9ò:ó
!r   r…   c                   ó*   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestRepositoryAbspathc                 ó¶   — t         j                  j                  t        «       «      | _        t        j                  t        «       | j                  «      | _        y r   )	r%   r*   r‡   r   rD   rE   Ú
Repositoryr7   ÚreposrH   s    r   rJ   z"TestRepositoryAbspath.setup_methodþ   s2   € Ü—g‘g—o‘o¤g£iÓ0ˆŒÜ×*Ñ*¬=«?¸D¿K¹KÓHˆ�
r   c                 ó2   — t        | j                  «       | `y r   ©r   rD   r²   rH   s    r   rN   z%TestRepositoryAbspath.teardown_method  ó   € Üˆt�{‰{ÔØ‰Jr   c                 óX  — t        t        «       «      \  }}}}}}t        j                  j	                  | j
                  j                  ||j                  t        j                  «      j                  d«      «      }| j
                  j                  t        «       «      }t        ||«       y rŠ   )r
   r   r%   r*   rh   r²   Ú	_destpathrŒ   r�   r‡   r=   r   )	rI   rŽ   r�   r�   r‘   r’   r“   r”   rl   s	            r   rS   z$TestRepositoryAbspath.test_ValidHTTP  sx   € Ü/7¼»Ó/HÑ,ˆ�˜˜s C¨Ü—W‘W—\‘\ $§*¡*×"6Ñ"6¸Ø"'§+¡+¬b¯f©fÓ"5×";Ñ";¸CÓ"@óBˆ
à—:‘:×%Ñ%¤nÓ&6Ó7ˆÜ�Z Õ*r   c                 ó@  ‡ — ˆ fd„}t         |t        «       «      j                  ‰ j                  «      «       t        D ]]  }t         |t
        |z   «      j                  ‰ j                  «      «       t         ||«      j                  ‰ j                  «      «       Œ_ y )Nc                 ót   •— t         j                  j                  ‰j                  j                  | «      «      S r   )r%   r*   r‡   r²   r    s    €r   r¢   z7TestRepositoryAbspath.test_sandboxing.<locals>.<lambda>  s!   ø€ œRŸW™WŸ_™_¨T¯Z©Z×-?Ñ-?ÀÓ-BÔCr   )r   r=   r£   rD   r¤   r0   )rI   r¥   r¦   s   `  r   r§   z%TestRepositoryAbspath.test_sandboxing  sl   ø€ ÛCˆÜ‘œÓ)Ó*×5Ñ5°d·k±kÓBÔCß!ˆBÜ‘HœY r™\Ó*×5Ñ5°d·k±kÓBÔCÜ‘H˜R“L×+Ñ+¨D¯K©KÓ8Õ9ñ "r   c                 ó²   — t         j                  }	 dt         _        | j                  «        | j                  «        |t         _        y # |t         _        w xY wr©   )r%   r�   rS   r§   r«   s     r   r­   z)TestRepositoryAbspath.test_windows_os_sep  s>   € Ü—f‘fˆð	!ØŒBŒFØ×ÑÔ!Ø× Ñ Ô"à ŒB�Fø�[ŒB�Fús   ’+A	 Á	AN)ru   rv   rw   rJ   rN   rS   r§   r­   r   r   r   r¯   r¯   ý   s   „ òIòò+ò:ó!r   r¯   c                   ó0   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestRepositoryExistsc                 ó|   — t        «       | _        t        j                  t	        «       | j                  «      | _        y r   )r   rD   rE   r±   r7   r²   rH   s    r   rJ   z!TestRepositoryExists.setup_method  s%   € Ü“iˆŒÜ×*Ñ*¬=«?¸D¿K¹KÓHˆ�
r   c                 ó2   — t        | j                  «       | `y r   r´   rH   s    r   rN   z$TestRepositoryExists.teardown_method#  rµ   r   c                 óv   — t        | j                  «      }t        | j                  j	                  |«      «       y r   )r+   rD   r   r²   r}   rƒ   s     r   r^   z#TestRepositoryExists.test_ValidFile'  s'   € ä  §¡Ó-ˆÜ�—
‘
×!Ñ! 'Ó*Õ+r   c                 óx   — t        | j                  «      }t        | j                  j	                  |«      d«       y r   )r.   rD   r   r²   r}   rƒ   s     r   ra   z%TestRepositoryExists.test_InvalidFile,  s)   € Ü" 4§;¡;Ó/ˆÜ�T—Z‘Z×&Ñ& wÓ/°Õ7r   c                 ó\   — t        | j                  j                  t        «       «      «       y r   )r   r²   r}   r   rH   s    r   Útest_RemoveHTTPFilez(TestRepositoryExists.test_RemoveHTTPFile0  s   € Ü�—
‘
×!Ñ!¤-£/Ó2Õ3r   c                 ó.  — t        «       }t        |«      \  }}}}}}t        j                  j	                  | j
                  j                  |«      }t        j                  |d«       t        |«      }	t        | j
                  j                  |	«      «       y )NiÀ  )r   r
   r%   r*   rh   r²   r·   Úmkdirr+   r   r}   )
rI   Ú	localfilerŽ   r�   r�   r‘   r’   r“   r”   r   s
             r   Útest_CachedHTTPFilez(TestRepositoryExists.test_CachedHTTPFile3  so   € Ü!“Oˆ	ô 08¸	Ó/BÑ,ˆ�˜˜s C¨Ü—W‘W—\‘\ $§*¡*×"6Ñ"6¸Ó?ˆ
Ü
�‰�˜VÔ$Ü  Ó,ˆÜ�—
‘
×!Ñ! 'Ó*Õ+r   N)	ru   rv   rw   rJ   rN   r^   ra   rÂ   rÆ   r   r   r   r¼   r¼     s!   „ òIòò,ò
8ò4ó	,r   r¼   c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ÚTestOpenFuncc                 ó"   — t        «       | _        y r   )r   rD   rH   s    r   rJ   zTestOpenFunc.setup_method@  s   € Ü“iˆ�r   c                 ó.   — t        | j                  «       y r   )r   rD   rH   s    r   rN   zTestOpenFunc.teardown_methodC  s   € Üˆt�{‰{Õr   c                 ó  — t        | j                  «      }t        j                  || j                  ¬«      }t	        |«       |j                  «        t        j                  |«      }t	        |«       |j                  «        y )N)Údestpath)r+   rD   rE   rQ   r   r&   )rI   r]   rm   s      r   Útest_DataSourceOpenz TestOpenFunc.test_DataSourceOpenF  sR   € Ü# D§K¡KÓ0ˆ
ä�_‰_˜Z°$·+±+Ô>ˆÜ�ŒØ
�‰Œ
ä�_‰_˜ZÓ(ˆÜ�ŒØ
�‰�
r   N)ru   rv   rw   rJ   rN   rÍ   r   r   r   rÈ   rÈ   ?  s   „ ò òó	r   rÈ   c                  óP   — t        j                  «       } | `| j                  «        y r   )rE   rF   Ú
_istmpdestÚ__del__)rG   s    r   Útest_del_attr_handlingrÑ   Q  s$   € ô 
×	Ñ	Ó	 €Bð 	ˆð ‡J�J…Lr   r   )0r%   rf   Útempfiler   r   r   Úshutilr   Únumpy.lib._datasourceÚlibÚ_datasourcerE   Únumpy.testingr   r   r	   Úurllib.requestÚrequestr   Úurllib.parser
   Úurllib.errorr   r   r   r   r   r0   r1   r3   r4   r¤   rj   r+   r.   r   r5   r7   r:   r=   r?   rA   ry   r…   r¯   r¼   rÈ   rÑ   r   r   r   Ú<module>rÜ      sÓ   ðÛ 	Û ß 9Ñ 9Ý ç *Ð *ß >Ñ >å 'Ý !Ý !ó4ð €ò*ò)ð %€	Ø€	à+€Ø€ò@€ð *€
òòòò'òòòò÷B)ñ B)÷J5ñ 5÷<>!ñ >!÷B!ñ !÷B,ñ ,÷Bñ ó$r   