##// END OF EJS Templates
Revert "Option for testing local copy, rather than global. Testing needs more work."...
Revert "Option for testing local copy, rather than global. Testing needs more work." (Doesn't work; will use virtualenv instead) This reverts commit 9bef7e3b597be5bcecaf4e884146e672ecd6fe2d.

File last commit:

r3108:663027f0
r3118:91a11d59
Show More
importstring.py
36 lines | 1.1 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
"""
#-----------------------------------------------------------------------------
# Copyright (C) 2008-2009 The IPython Development Team
#
# 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):
"""Import and return bar given the string foo.bar."""
package = '.'.join(name.split('.')[0:-1])
obj = name.split('.')[-1]
Thomas Kluyver
Cleaning up old code to simplify 2to3 conversion.
r3108 # execString = 'from %s import %s' % (package, obj)
# try:
# exec execString
# except SyntaxError:
# raise ImportError("Invalid class specification: %s" % name)
# exec 'temp = %s' % obj
# return temp
if package:
module = __import__(package,fromlist=[obj])
return module.__dict__[obj]
else:
return __import__(obj)