##// END OF EJS Templates
Use module and method descriptor types declared in the types module
Use module and method descriptor types declared in the types module

File last commit:

r26419:7663c521
r28272:600d3cde
Show More
importstring.py
39 lines | 1.0 KiB | text/x-python | PythonLexer
Brian Granger
A number of changes to how traitlets and components work....
r2229 # encoding: utf-8
"""
A simple utility to import something by its string name.
"""
Min RK
use getattr in import_item, shim_module...
r20859 # Copyright (c) IPython Development Team.
# Distributed under the terms of the Modified BSD License.
Brian Granger
A number of changes to how traitlets and components work....
r2229
def import_item(name):
Fernando Perez
Add proper docstring.
r11016 """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
Matthias Bussonnier
reformat docstring in IPython utils
r26419 The fully qualified name of the module/package being imported.
Fernando Perez
Add proper docstring.
r11016
Returns
-------
mod : module object
Matthias Bussonnier
reformat docstring in IPython utils
r26419 The module that was imported.
Fernando Perez
Add proper docstring.
r11016 """
Fernando Perez
Add explicit comment about disabled code in importstring....
r3121
Fernando Perez
Restructure code to avoid unnecessary list slicing by using rsplit.
r11018 parts = name.rsplit('.', 1)
if len(parts) == 2:
# called with 'foo.bar....'
package, obj = parts
module = __import__(package, fromlist=[obj])
Fernando Perez
Fix error in test suite startup with dotted import names....
r6738 try:
Min RK
use getattr in import_item, shim_module...
r20859 pak = getattr(module, obj)
Ram Rachum
Fix exception causes all over the codebase
r25833 except AttributeError as e:
raise ImportError('No module named %s' % obj) from e
Fernando Perez
Fix error in test suite startup with dotted import names....
r6738 return pak
Thomas Kluyver
Cleaning up old code to simplify 2to3 conversion.
r3108 else:
Fernando Perez
Restructure code to avoid unnecessary list slicing by using rsplit.
r11018 # called with un-dotted string
return __import__(parts[0])