U
    kuf                     @  s0   d Z ddlmZ ddlmZ dddddZd	S )
z:
A simple utility to import something by its string name.
    )annotations)Anystrr   )namereturnc              
   C  s   t | tstdt|  | dd}t|dkr|\}}t||gd}zt||}W n0 tk
r } zt	d| |W 5 d}~X 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 %sNr   )

isinstancer   	TypeErrortypersplitlen
__import__getattrAttributeErrorImportError)r   partspackageobjmoduleZpake r   @/tmp/pip-unpacked-wheel-utpcgctl/traitlets/utils/importstring.pyimport_item   s    
 r   N)__doc__
__future__r   typingr   r   r   r   r   r   <module>   s   