##// END OF EJS Templates
Merge pull request #4132 from rossant/py3compat-bug-fix...
Merge pull request #4132 from rossant/py3compat-bug-fix Fixed name error bug in function safe_unicode in module py3compat.

File last commit:

r11018:8ddfcf45
r12328:dd550847 merge
Show More
importstring.py
50 lines | 1.5 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.
Authors:
* Brian Granger
"""
#-----------------------------------------------------------------------------
Matthias BUSSONNIER
update copyright to 2011/20xx-2011...
r5390 # Copyright (C) 2008-2011 The IPython Development Team
Brian Granger
A number of changes to how traitlets and components work....
r2229 #
# Distributed under the terms of the BSD License. The full license is in
# the file COPYING, distributed as part of this software.
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# Functions and classes
#-----------------------------------------------------------------------------
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
The fully qualified name of the module/package being imported.
Returns
-------
mod : module object
The module that was imported.
"""
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:
pak = module.__dict__[obj]
except KeyError:
raise ImportError('No module named %s' % obj)
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])