a
    i‚jV  ã                   @   s\   d Z ddlZddlmZmZ ddlmZ edƒZejed dœdd„ƒZ	eed	œd
d„Z
dS )z`etils` internal utils.é    N)ÚIteratorÚTypeVar)Úreraise_utilsÚ_FnT)Úreturnc               
   c   sB   z
dV  W n2 t y< }  ztj| dd W Y d} ~ n
d} ~ 0 0 dS )a  Raise a better error message in case of `ImportError`.

  Usage:

  ```python
  from etils.epy import _internal

  with _internal.check_missing_deps():
    # pylint: disable=g-import-not-at-top
    import xyz
    # pylint: enable=g-import-not-at-top
  ```

  Yields:
    None
  Nz€
Each etils sub-modules require deps to be installed separately (e.g. `from etils import ecolab` -> `pip install etils[ecolab]`))Úsuffix)ÚImportErrorr   Úreraise)Úe© r   úQ/home/ghrups/robot-bench/.venv/lib/python3.9/site-packages/etils/epy/_internal.pyÚcheck_missing_deps   s    
ýr   )Úfnr   c                 C   s   t | dƒr| j} | | _| S )z3Unwrap the function to support colab module reload.Ú__original_fn__)Úhasattrr   )r   r   r   r   Úunwrap_on_reload7   s    
r   )Ú__doc__Ú
contextlibÚtypingr   r   Z	etils.epyr   r   Úcontextmanagerr   r   r   r   r   r   Ú<module>   s   