##// END OF EJS Templates
Merge pull request #10905 from DavidMStraub/master...
Merge pull request #10905 from DavidMStraub/master Allow key completion for classes (#10903)

File last commit:

r20859:5f42d500
r24100:76481531 merge
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
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:
Min RK
use getattr in import_item, shim_module...
r20859 pak = getattr(module, obj)
except AttributeError:
Fernando Perez
Fix error in test suite startup with dotted import names....
r6738 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])