diff --git a/IPython/utils/importstring.py b/IPython/utils/importstring.py index cbb6101..e7e1da2 100644 --- a/IPython/utils/importstring.py +++ b/IPython/utils/importstring.py @@ -22,13 +22,20 @@ def import_item(name): """Import and return bar given the string foo.bar.""" package = '.'.join(name.split('.')[0:-1]) obj = name.split('.')[-1] -# 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 + + # Note: the original code for this was the following. We've left it + # visible for now in case the new implementation shows any problems down + # the road, to make it easier on anyone looking for a problem. This code + # should be removed once we're comfortable we didn't break anything. + + ## 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]