U
    ?hg
  ã                   @   sP   d dl Z d dlZd dlZd dlZd dlmZ dd„ Zdd„ Zdd„ Z	dd	„ Z
dS )
é    Nc                  C   s”   t  d¡} t  d¡}|  | j¡t dd¡ks0t‚z|j ds@t‚W n tk
rV   Y nX t|t j	ƒsht‚z|j dsxt‚W n tk
rŽ   Y nX d S )NÚmathÚanything_not_realr   çíµ ÷Æ°>F)
ÚlazyÚ_lazy_importÚsinÚpiÚpytestÚapproxÚAssertionErrorÚModuleNotFoundErrorÚ
isinstanceÚDelayedImportErrorModule)r   r   © r   úR/var/www/html/venv/lib/python3.8/site-packages/networkx/tests/test_lazy_imports.pyÚtest_lazy_import_basics
   s    

r   c                  C   s²   t  d¡} t  d¡}t| ƒtjks&t‚dtjks4t‚t|ƒt jksFt‚dtjksTt‚t	 
d¡}t  d¡}t|ƒtjkszt‚dtjksˆt‚|j t|ƒtjks t‚dtjks®t‚d S )Nr   r   Únumpy)r   r   ÚtypeÚtypesÚ
ModuleTyper   ÚsysÚmodulesr   r	   Zimportorskipr   )r   r   Znp_testÚnpr   r   r   Ú&test_lazy_import_impact_on_sys_modules   s    



r   c                  C   s¦   t  d¡} t  d¡}t| t jƒrJz| j ds0t‚W q¢ tk
rF   Y q¢X nXt|t jƒr†z| |j¡ dslt‚W q¢ tk
r‚   Y q¢X n| | j¡t 	dd¡ks¢t‚d S )NZscipyr   Fr   r   )
r   r   r   r   r   r   r   r   r	   r
   )Úspr   r   r   r   Útest_lazy_import_nonbuiltins4   s    

r   c                  C   sŽ   d} ddg}ddgi}t j| ||dœ}d}t|i |ƒ t j| ||d d d dœ}| ¡ | ¡ ks`t‚| ¡ D ] \}}|d k	rh|| |ksht‚qhd S )	NZmymodZmysubmoduleZanothersubmoduleZnot_real_submodZsome_var_or_func)ÚattachÚnameÚsubmodsÚmyallzA__getattr__, __lazy_dir__, __all__ = attach(name, submods, myall))r   r   r   r   Ú__getattr__Z__lazy_dir__Ú__all__)r   r   ÚexecÚkeysr   Úitems)r   r   r   ZloclsÚsÚexpectedÚkÚvr   r   r   Útest_lazy_attachG   s,    
üù	r)   )Ú	importlibr   r   r	   Znetworkx.lazy_importsZlazy_importsr   r   r   r   r)   r   r   r   r   Ú<module>   s   