mirror of
https://github.com/pacnpal/thrillwiki_django_no_react.git
synced 2025-12-22 11:11:10 -05:00
27 lines
861 B
Python
27 lines
861 B
Python
import sys
|
|
# flake8: noqa
|
|
|
|
|
|
def import_attribute(import_path, exception_handler=None):
|
|
try:
|
|
from importlib import import_module
|
|
except ImportError: # pragma: no cover
|
|
from django.utils.importlib import import_module
|
|
module_name, object_name = import_path.rsplit('.', 1)
|
|
try:
|
|
module = import_module(module_name)
|
|
except: # pragma: no cover
|
|
if callable(exception_handler):
|
|
exctype, excvalue, tb = sys.exc_info()
|
|
return exception_handler(import_path, exctype, excvalue, tb)
|
|
else:
|
|
raise
|
|
try:
|
|
return getattr(module, object_name)
|
|
except: # pragma: no cover
|
|
if callable(exception_handler):
|
|
exctype, excvalue, tb = sys.exc_info()
|
|
return exception_handler(import_path, exctype, excvalue, tb)
|
|
else:
|
|
raise
|