
    0-Ph                         d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlZd dlZ	d Z
d Zd Zd Zd Zd Zd	Zd
 Zd Zd Zd Zd ZdS )    N)mockc                     t          j        d          } t          j        d          }|                     | j                  t	          j        dd          k    sJ 	 |j         t                      # t          $ r Y nw xY wt          |t           j	                  sJ 	 |j         t                      # t          $ r Y d S w xY w)Nmathanything_not_realr   ư>)
lazyloadsinpipytestapproxAssertionErrorModuleNotFoundError
isinstanceDelayedImportErrorModule)r   r   s     b/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/lazy_loader/tests/test_lazy_loader.pytest_lazy_import_basicsr      s    9VD	"566 88DGa 6 66666   ')FGGGGG   s$   A2 2
A?>A?B4 4
CCc                     t          j        t                    5  t          j        d          } d d d            n# 1 swxY w Y   dt
          j        v sJ t          t
          j        d                   t          t                     k    sJ t          | t          j
        j                  sJ dt
          j        v sJ t
          j        d         | k    sJ d S )Nzhtml.parserhtml)r   warnsRuntimeWarningr   r	   sysmodulestyper   	importlibutil_LazyModule)hps    r   test_lazy_import_subpackagesr   "   s    	n	%	% & &Y}%%& & & & & & & & & & & & & & &S[    F#$$V4444b).455555CK'''';}%++++++s   ;??c                     t          j        d          } t          j        d          }t          | t          j                  sJ dt
          j        v sJ t          |t           j                  sJ dt
          j        vsJ t          j	        d           t          j        d          }t          |t          j                  sJ dt
          j        v sJ |j
         t          |t          j                  sJ dt
          j        v sJ d S )Nr   r   numpy)r   r	   r   types
ModuleTyper   r   r   r   importorskipr   )r   r   nps      r   &test_lazy_import_impact_on_sys_modulesr&   ,   s   9VD	"566dE,-----S[    ')FGGGGGck1111    	7		Bb%*+++++ck!!!!EEb%*+++++ck!!!!!!    c                  r   t          j        d          } t          j        d          }t          | t           j                  s3|                     | j                  t          j        dd          k    sJ t          |t           j                  r'	 |j         t                      # t          $ r Y d S w xY wd S )Nr!   scipyr   r   )
r   r	   r   r   r
   r   r   r   r   r   )r%   sps     r   test_lazy_import_nonbuiltinsr+   A   s    	7		B	7		Bb$788 7vvbe}}a 6 66666"d344 	EE """" 	 	 	DD		 s   B& &
B43B4c                  8   d} ddg}ddgi}t           j        | ||d}d}t          |i |           t           j        | ||d d d d}|                                |                                k    sJ |                                D ]\  }}|||         |k    sJ d S )	Nmymodmysubmoduleanothersubmodulenot_real_submodsome_var_or_func)attachnamesubmodsmyallzA__getattr__, __lazy_dir__, __all__ = attach(name, submods, myall))r2   r3   r4   r5   __getattr____lazy_dir____all__)r   r2   execkeysitems)r3   r4   r5   loclssexpectedkvs           r   test_lazy_attachrA   N   s    D01G!3 45E +	 E 	LAB+ H ::<<8==??****   ! !1=8q====! !r'   c                      ddl m}  t          | j        t          j                  sJ t          | j        t          j                  sJ ddlm} t          |t          j                  sJ d S )Nr   fake_pkg)	some_func)lazy_loader.testsrD   r   rE   r"   FunctionType$lazy_loader.tests.fake_pkg.some_func)rD   rE   s     r   %test_attach_same_module_and_attr_namerI   k   s    ****** h(%*<=====h(%*<===== ?>>>>>i!34444444r'   zg
from . import rank
from ._gaussian import gaussian
from .edges import sobel, scharr, prewitt, roberts
c                     | dz  }|                     t                     t          j        dt	          |                    \  }}}h d}t           |                      t          |          cxk    r|k    sn J d S )Nstub.pyi	my_module>   ranksobelscharrprewittrobertsgaussian)
write_text	FAKE_STUBr   attach_stubstrset)tmp_pathstub_get_dir_allexpects         r   test_stub_loadingr^      s    j DOOI'SYY??D$JJJFttvv;;#d))----v--------r'   c                      ddl m}  t          j        | j        | j                  }|\  }}}|| j        k    sJ  |            |                                 k    sJ  |d          | j        k    sJ d S )Nr   rC   rE   )	rF   rD   r   rU   __name____file__r8   r7   rE   )rD   	from_stubstub_getterstub_dirstub_alls        r   test_stub_loading_parityrf      s    ****** !2H4EFFI&/#K8x'''''8::..000000;{##x'9999999r'   c                 T   | dz  }|                     d           t          j        t          d          5  t	          j        dt          |                     d d d            n# 1 swxY w Y   t          j        t          d          5  t	          j        dd           d d d            n# 1 swxY w Y   | dz  }|                     d	           t          j        t          d
          5  t	          j        dt          |                     d d d            d S # 1 swxY w Y   d S )NrK   zfrom ..mod import func
z(Only within-module imports are supported)matchr3   z*Cannot load imports from non-existent stubz
not a filez	stub2.pyizfrom .mod import *
z.*does not support star import)rS   r   raises
ValueErrorr   rU   rV   )rX   rY   stub2s      r   test_stub_loading_errorsrl      s   j DOO.///	z)S	T	T	T , ,T+++, , , , , , , , , , , , , , , 
z)U	V	V	V / /.../ / / / / / / / / / / / / / / {"E	+,,,	z)I	J	J	J - -U,,,- - - - - - - - - - - - - - - - - -s5   #A%%A),A)B--B14B1-#DD!$D!c                     t           j                            d          d u} | rdnd}t          j        d| d          5 }d|_        t          j        dd	          }t          |t          j	                  sJ t          j        dd
	          }|
                    |j                  t          j        dd          k    sJ t          j        dd	          }t          |t          j	                  sJ 	 d d d            n# 1 swxY w Y   t          j        t                    5  t          j        dd
	           d d d            d S # 1 swxY w Y   d S )Nzimportlib.metadata._r   zmetadata.versionz1.0.0r   zsomepkg >= 2.0)requirezsomepkg >= 1.0r   r   )r   r   	find_specr   patchreturn_valuer   r	   r   r   r
   r   r   r   ri   rj   )have_importlib_metadatadotversionr   s       r   test_require_kwargrw      s   'n667KLLTXX(
1##cC	5555	6	6 
?'&y)9:::$ =>>>>>y)9:::xx  FM!T$:$::::: y)9:::$ =>>>>>>
? 
? 
? 
? 
? 
? 
? 
? 
? 
? 
? 
? 
? 
? 
? 
z	"	" 4 4	&"233334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4s%    B5DD	D&E

EEc                      t          j        d           t          j        t          j        t          j                            t          j        	                    t                    d          g           d S )Nr!   zimport_np_parallel.py)r   r$   
subprocessrunr   
executableospathjoindirnamera    r'   r   test_parallel_loadr      s]    
   NNGLL224KLL	
    r'   )r   r|   ry   r   r"   unittestr   r   lazy_loaderr   r   r   r&   r+   rA   rI   rT   r^   rf   rl   rw   r   r   r'   r   <module>r      s       				     



              *, , ," " "*
 
 
! ! !:5 5 5	. . .: : :- - - 4 4 4,    r'   