##// END OF EJS Templates
Add proper docstring.
Fernando Perez -
Show More
@@ -1,47 +1,62 b''
1 1 # encoding: utf-8
2 2 """
3 3 A simple utility to import something by its string name.
4 4
5 5 Authors:
6 6
7 7 * Brian Granger
8 8 """
9 9
10 10 #-----------------------------------------------------------------------------
11 11 # Copyright (C) 2008-2011 The IPython Development Team
12 12 #
13 13 # Distributed under the terms of the BSD License. The full license is in
14 14 # the file COPYING, distributed as part of this software.
15 15 #-----------------------------------------------------------------------------
16 16
17 17 #-----------------------------------------------------------------------------
18 18 # Functions and classes
19 19 #-----------------------------------------------------------------------------
20 20
21 21 def import_item(name):
22 """Import and return bar given the string foo.bar."""
22 """Import and return ``bar`` given the string ``foo.bar``.
23
24 Calling ``bar = import_item("foo.bar")`` is the functional equivalent of
25 executing the code ``from foo import bar``.
26
27 Parameters
28 ----------
29 name : string
30 The fully qualified name of the module/package being imported.
31
32 Returns
33 -------
34 mod : module object
35 The module that was imported.
36 """
37
23 38 package = '.'.join(name.split('.')[0:-1])
24 39 obj = name.split('.')[-1]
25 40
26 41 # Note: the original code for this was the following. We've left it
27 42 # visible for now in case the new implementation shows any problems down
28 43 # the road, to make it easier on anyone looking for a problem. This code
29 44 # should be removed once we're comfortable we didn't break anything.
30 45
31 46 ## execString = 'from %s import %s' % (package, obj)
32 47 ## try:
33 48 ## exec execString
34 49 ## except SyntaxError:
35 50 ## raise ImportError("Invalid class specification: %s" % name)
36 51 ## exec 'temp = %s' % obj
37 52 ## return temp
38 53
39 54 if package:
40 55 module = __import__(package,fromlist=[obj])
41 56 try:
42 57 pak = module.__dict__[obj]
43 58 except KeyError:
44 59 raise ImportError('No module named %s' % obj)
45 60 return pak
46 61 else:
47 62 return __import__(obj)
General Comments 0
You need to be logged in to leave comments. Login now