mirror of
https://github.com/mediacms-io/mediacms.git
synced 2024-11-22 08:13:33 +01:00
23 lines
657 B
Python
23 lines
657 B
Python
from django.core.exceptions import ImproperlyConfigured
|
|
from importlib import import_module
|
|
|
|
|
|
def import_class(path):
|
|
path_bits = path.split(".")
|
|
|
|
if len(path_bits) < 2:
|
|
message = "'{0}' is not a complete Python path.".format(path)
|
|
raise ImproperlyConfigured(message)
|
|
|
|
class_name = path_bits.pop()
|
|
module_path = ".".join(path_bits)
|
|
module_itself = import_module(module_path)
|
|
|
|
if not hasattr(module_itself, class_name):
|
|
message = "The Python module '{}' has no '{}' class.".format(
|
|
module_path, class_name
|
|
)
|
|
raise ImportError(message)
|
|
|
|
return getattr(module_itself, class_name)
|