
    -Ph`                         d dl Z ddZdS )    N c                      d |D             d |D              fd}t                    t                    z   fd}||fS )a  
    Helper function to import submodules lazily in Python 3.7+

    Parameters
    ----------
    rel_modules: list of str
        list of submodules to import, of the form .submodule
    rel_classes: list of str
        list of submodule classes/variables to import, of the form ._submodule.Foo

    Returns
    -------
    tuple
        Tuple that should be assigned to __all__, __getattr__ in the caller
    c                 F    i | ]}|                     d           d         |S .split).0
rel_modules     W/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/_plotly_utils/importers.py
<dictcomp>z#relative_import.<locals>.<dictcomp>   s-    XXXjJ$$S))"-zXXX    c                 F    i | ]}|                     d           d         |S r   r	   )r   rel_paths     r   r   z#relative_import.<locals>.<dictcomp>   s+    QQQ8>>#&&r*HQQQr   c                 T   | v r|          }t          j        |          S | v r_|                              d          }d                    |d d                   }| }t          j        |          }t	          ||          S t          d                    |                     )Nr   r   z-module {__name__!r} has no attribute {name!r})name__name__)	importlibimport_moduler
   joingetattrAttributeErrorformat)	import_name
rel_importrel_path_partsr   
class_nameclass_moduleclass_namesmodule_namesparent_names	         r   __getattr__z$relative_import.<locals>.__getattr__   s     ,&&%k2J*:{CCC +%%(5;;C@@N.""566J$J$2:{KKL<444;BB ; C  
 
 	
r   c                       S )Nr   )__all__s   r   __dir__z relative_import.<locals>.__dir__/   s    r   )list)r"   rel_modulesrel_classesr#   r&   r%   r    r!   s   `    @@@r   relative_importr*      s      YXKXXXLQQ[QQQK
 
 
 
 
 
 
, <  4#4#44G     K((r   )r   r   )r   r*   r   r   r   <module>r+      s/       .) .) .) .) .) .)r   