
    
d>                         d Z ddlmZ  G d de          Z G d de          Z eddg          Z ed	          Z ed
dg          Z eddg          Z	 ed          Z
dS )zW
Lazy modules.

They are useful to not import big modules until it's really necessary.
    )is_module_installedc                       e Zd ZdZdS )
FakeObjectz1Fake class used in replacement of missing objectsN)__name__
__module____qualname____doc__     @lib/python3.11/site-packages/spyder_kernels/utils/lazymodules.pyr   r      s        ;;Dr   r   c                        e Zd ZdZddZd ZdS )
LazyModulezLazy module loader class.Nc                 t    || _         t          | _        | |D ]}t          | j        |t                     dS dS )a=  
        Lazy module loader class.

        Parameters
        ----------
        modname: str
            Module name to lazy load.
        second_level_attrs: list (optional)
            List of second level attributes to add to the FakeObject
            that stands for the module in case it's not found.
        N)__spy_modname__r   __spy_mod__setattr)selfmodnamesecond_level_attrsattrs       r   __init__zLazyModule.__init__   sU      '% )* < <($
;;;; *)< <r   c                     t          | j                  rt          | j                  | _        n| j        S t	          | j        |          S N)r   r   
__import__r   getattr)r   names     r   __getattr__zLazyModule.__getattr__1   sG    t344 	$)$*>??D##t'...r   r   )r   r   r   r	   r   r   r
   r   r   r   r      s=        ##< < < <(/ / / / /r   r   numpyMaskedArraypandasz	PIL.ImageImagebs4NavigableStringzscipy.ioN)r	   spyder_kernels.utils.miscr   objectr   r   r   r    PILr"   scipyr
   r   r   <module>r(      s     : 9 9 9 9 9	 	 	 	 	 	 	 	
/ / / / / / / /F 	
7]O,,	H		jwi((j*+,,
:r   