B
    <[                 @   s(   d Z ddlmZ ddlmZ dd ZdS )z:
A simple utility to import something by its string name.
    )cast_bytes_py2)string_typesc             C   s   t | tstdt|  t| } | dd}t|dkr|\}}t||gd}yt||}W n  t	k
r~   t
d| Y nX |S t|d S dS )	a  Import and return ``bar`` given the string ``foo.bar``.

    Calling ``bar = import_item("foo.bar")`` is the functional equivalent of
    executing the code ``from foo import bar``.

    Parameters
    ----------
    name : string
      The fully qualified name of the module/package being imported.

    Returns
    -------
    mod : module object
       The module that was imported.
    z&import_item accepts strings, not '%s'..      )fromlistzNo module named %sr   N)
isinstancer   	TypeErrortyper   rsplitlen
__import__getattrAttributeErrorImportError)namepartspackageobjmoduleZpak r   ;lib/python3.7/site-packages/traitlets/utils/importstring.pyimport_item   s    
r   N)__doc__Zipython_genutils.py3compatr   Zsixr   r   r   r   r   r   <module>   s   