##// END OF EJS Templates
Stop support for 3.7 on the master branch....
Stop support for 3.7 on the master branch. According to NEP 29, Python 3.7 support can be stopped this december. https://numpy.org/neps/nep-0029-deprecation_policy.html Here we start dropping support for 3.7 as we'll release 8.0 likely early 2022

File last commit:

r26419:7663c521
r27132:5b9aa9c8
Show More
importstring.py
39 lines | 1.0 KiB | text/x-python | PythonLexer
# encoding: utf-8
"""
A simple utility to import something by its string name.
"""
# Copyright (c) IPython Development Team.
# Distributed under the terms of the Modified BSD License.
def import_item(name):
"""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.
"""
parts = name.rsplit('.', 1)
if len(parts) == 2:
# called with 'foo.bar....'
package, obj = parts
module = __import__(package, fromlist=[obj])
try:
pak = getattr(module, obj)
except AttributeError as e:
raise ImportError('No module named %s' % obj) from e
return pak
else:
# called with un-dotted string
return __import__(parts[0])