a
    
dt                     @   sx   d dl Z d dlZd dlZd dlZd dlZdd Zdd Zdd Zdd	 Z	d
d Z
dd Z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s0J z|j t W n tyR   Y n0 t|t j	sdJ z|j t W n ty   Y n0 d S )Nmathanything_not_realr   ư>)
lazyloadsinpipytestapproxAssertionErrorModuleNotFoundError
isinstanceDelayedImportErrorModule)r   r    r   k/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/lazy_loader/tests/test_lazy_loader.pytest_lazy_import_basics
   s    



r   c                  C   s   t t td} W d    n1 s*0    Y  dtjv sBJ ttjd tt ks\J t| t	j
jsnJ dtjv s|J tjd | ksJ d S )Nzhtml.parserhtml)r	   ZwarnsRuntimeWarningr   r   sysmodulestyper   	importlibutil_LazyModule)hpr   r   r   test_lazy_import_subpackages   s    (r   c                  C   s   t d} t d}t| tjs$J dtjv s2J t|t jsBJ dtjvsPJ t	d t d}t|tjstJ dtjv sJ |j
 t|tjsJ dtjv sJ d S )Nr   r   numpy)r   r   r   types
ModuleTyper   r   r   r	   Zimportorskipr   )r   r   npr   r   r   &test_lazy_import_impact_on_sys_modules)   s    



r    c                  C   sp   t d} t d}t| t js<| | jtddks<J t|t jrlz|j t W n t	yj   Y n0 d S )Nr   Zscipyr   r   )
r   r   r   r   r   r   r	   r
   r   r   )r   spr   r   r   test_lazy_import_nonbuiltins>   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`J | D ] \}}|d urh|| |kshJ 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____lazy_dir____all__)r   r#   execkeysitems)r$   r%   r&   Zloclssexpectedkvr   r   r   test_lazy_attachK   s,    
	r1   c                  C   sP   ddl m}  t| jtjsJ t| jtjs0J ddlm} t|tjsLJ d S )Nr   fake_pkg)	some_func)lazy_loader.testsr3   r   r4   r   FunctionTypeZ$lazy_loader.tests.fake_pkg.some_func)r3   r4   r   r   r   %test_attach_same_module_and_attr_nameh   s
    r7   zg
from . import rank
from ._gaussian import gaussian
from .edges import sobel, scharr, prewitt, roberts
c                 C   sX   | d }| t tdt|\}}}h d}t| t|  krN|ksTn J d S )Nstub.pyiZ	my_module>   ZgaussianZprewittZrobertsZsobelZscharrZrank)
write_text	FAKE_STUBr   attach_stubstrset)tmp_pathstub_getZ_dirZ_allexpectr   r   r   test_stub_loading}   s
    
rB   c                  C   s\   ddl m}  t| j| j}|\}}}|| jks4J | |  ksFJ |d| jksXJ d S )Nr   r2   r4   )	r5   r3   r   r;   __name____file__r)   r(   r4   )r3   Z	from_stubZstub_getterZstub_dirZstub_allr   r   r   test_stub_loading_parity   s    
rE   c                 C   s   | d }| d tjtdd  tdt| W d    n1 sF0    Y  tjtdd tdd W d    n1 s0    Y  d S )Nr8   zfrom ..mod import func
z(Only within-module imports are supported)matchr$   z*Cannot load imports from non-existent stubz
not a file)r9   r	   Zraises
ValueErrorr   r;   r<   )r>   r?   r   r   r   test_stub_loading_errors   s    
.rH   )r   r   r   r	   Zlazy_loaderr   r   r   r    r"   r1   r7   r:   rB   rE   rH   r   r   r   r   <module>   s   

