
    zKg                         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y)    N)mockc                     t        j                  d      } t        j                  d      }| j                  | 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 y w xY w)Nmathanything_not_realr   ư>)
lazyloadsinpipytestapproxAssertionErrorModuleNotFoundError
isinstanceDelayedImportErrorModule)r   r   s     f/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/lazy_loader/tests/test_lazy_loader.pytest_lazy_import_basicsr      s    99VD		"56 88DGGa 6666 ')F)FGGG s$    A6 6	BB"B8 8	CCc                     t        j                  t              5  t        j                  d      } d d d        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 y # 1 sw Y   xY w)Nzhtml.parserhtml)r   warnsRuntimeWarningr   r	   sysmodulestyper   	importlibutil_LazyModule)hps    r   test_lazy_import_subpackagesr   "   s    	n	%YY}% 
&S[[   F#$V444b)..44555CKK''';;}%+++ 
&	%s   CCc                  D   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 y )Nr   r   numpy)r   r	   r   types
ModuleTyper   r   r   r   importorskipr   )r   r   nps      r   &test_lazy_import_impact_on_sys_modulesr&   ,   s    99VD		"56dE,,---S[[   ')F)FGGGckk111  	7	Bb%**+++ckk!!!EEb%**+++ckk!!!    c                  t   t        j                  d      } t        j                  d      }t        | t         j                        s4| j	                  | j
                        t        j                  dd      k(  sJ t        |t         j                        r	 |j
                   t               y # t        $ r Y y w xY w)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78vvbee}a 6666"d334	EE "" 5 # 		s   B+ +	B76B7c                  "   d} ddg}ddgi}t         j                  | ||d}d}t        |i |       t         j                  | ||d d d d}|j                         |j                         k(  sJ |j	                         D ]  \  }}|	||   |k(  rJ  y )	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 y )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   sZ    * h((%*<*<===h((%*<*<=== ?i!3!3444r'   zg
from . import rank
from ._gaussian import gaussian
from .edges import sobel, scharr, prewitt, roberts
c                     | dz  }|j                  t               t        j                  dt	        |            \  }}}h d}t         |             t        |      cxk(  r|k(  sJ  J y )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Y?D$JFtv;#d)-v-----r'   c                      ddl m}  t        j                  | j                  | j
                        }|\  }}}|| j                  k(  sJ  |       | j                         k(  sJ  |d      | j                  k(  sJ y )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      su    *  !2!2H4E4EFI&/#K8x''''':..0000{#x'9'9999r'   c                 $   | dz  }|j                  d       t        j                  t        d      5  t	        j
                  dt        |             d d d        t        j                  t        d      5  t	        j
                  dd       d d d        | dz  }|j                  d	       t        j                  t        d
      5  t	        j
                  dt        |             d d d        y # 1 sw Y   xY w# 1 sw Y   oxY w# 1 sw Y   y xY w)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+ 
U 
z)U	V. 
W {"E	+,	z)I	JU, 
K	J 
U	T 
W	V
 
K	Js#    C.5C: D.C7:DDc                     t         j                  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                  |j                        t        j                  dd      k(  sJ t        j                  dd	      }t        |t        j                        sJ 	 d d d        t        j                  t              5  t        j                  dd
	       d d d        y # 1 sw Y   CxY w# 1 sw Y   y xY w)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
   'nn667KLTXX(#cC	iu$45	6'&yy)9:$ = =>>>yy)9:xx FMM!T$:::: yy)9:$ = =>>> 
7 
z	"		&"23 
#	" 
7	6 
#	"s   B9D=E	=E	Ec                      t        j                  d       t        j                  t        j
                  t        j                  j                  t        j                  j                  t              d      g       y )Nr!   zimport_np_parallel.py)r   r$   
subprocessrunr   
executableospathjoindirnamera    r'   r   test_parallel_loadr      sH    
 NNNNGGLL24K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	.:- 4,r'   