Source code for mezzanine.utils.importing
from __future__ import unicode_literals
import os
from importlib import import_module
from django.apps import apps
[docs]def path_for_import(name):
"""
Returns the directory path for the given package or module.
"""
return os.path.dirname(os.path.abspath(import_module(name).__file__))
[docs]def import_dotted_path(path):
"""
Takes a dotted path to a member name in a module, and returns
the member after importing it.
"""
try:
module_path, member_name = path.rsplit(".", 1)
module = import_module(module_path)
return getattr(module, member_name)
except (ValueError, ImportError, AttributeError) as e:
raise ImportError("Could not import the name: %s: %s" % (path, e))
def get_app_name_list():
for app in apps.get_app_configs():
yield app.name