| | |
| | """ |
| | A simple utility to import something by its string name. |
| | """ |
| |
|
| | |
| | |
| |
|
| |
|
| | 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: |
| | |
| | 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: |
| | |
| | return __import__(parts[0]) |
| |
|