Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.8/site-packages/IPython/utils/importstring.py: 17%
12 statements
« prev ^ index » next coverage.py v7.4.4, created at 2024-04-20 06:09 +0000
« prev ^ index » next coverage.py v7.4.4, created at 2024-04-20 06:09 +0000
1# encoding: utf-8
2"""
3A simple utility to import something by its string name.
4"""
6# Copyright (c) IPython Development Team.
7# Distributed under the terms of the Modified BSD License.
10def import_item(name):
11 """Import and return ``bar`` given the string ``foo.bar``.
13 Calling ``bar = import_item("foo.bar")`` is the functional equivalent of
14 executing the code ``from foo import bar``.
16 Parameters
17 ----------
18 name : string
19 The fully qualified name of the module/package being imported.
21 Returns
22 -------
23 mod : module object
24 The module that was imported.
25 """
27 parts = name.rsplit('.', 1)
28 if len(parts) == 2:
29 # called with 'foo.bar....'
30 package, obj = parts
31 module = __import__(package, fromlist=[obj])
32 try:
33 pak = getattr(module, obj)
34 except AttributeError as e:
35 raise ImportError('No module named %s' % obj) from e
36 return pak
37 else:
38 # called with un-dotted string
39 return __import__(parts[0])