
    g`                         d dl Z ddZy)    Nc                     	 |D ci c]  }|j                  d      d   | c}	|D ci c]  }|j                  d      d   | c}	 fd}t        	      t              z   fd}||fS c c}w c c}w )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                    | v r|    }t        j                  |      S | v rL|    j                  d      }dj                  |d d       }| }t        j                  |      }t	        ||      S t        dj                  |             )Nr   r   z-module {__name__!r} has no attribute {name!r})name__name__)	importlibimport_modulesplitjoingetattrAttributeErrorformat)	import_name
rel_importrel_path_parts
rel_module
class_nameclass_moduleclass_namesmodule_namesparent_names	         T/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/_plotly_utils/importers.py__getattr__z$relative_import.<locals>.__getattr__   s     ,&%k2J**:{CC +%(5;;C@N.""56J$J$22:{KL<44;BB ; C 
 	
    c                       S )N )__all__s   r   __dir__z relative_import.<locals>.__dir__/   s    r   )r   list)
r   rel_modulesrel_classesr   rel_pathr   r   r   r   r   s
   `      @@@r   relative_importr$      s      MXXjJ$$S)"-z9XLEPQ8>>#&r*H4QK
, < 4#44G K((= YQs
   A3A8)r   r   )r	   r$   r   r   r   <module>r%      s    .)r   