From b11e707405c813b7c6c54f05d85dd250a55c4574 Mon Sep 17 00:00:00 2001 From: Ezequiel Bertti Date: Mon, 26 Nov 2012 20:15:55 -0200 Subject: [PATCH] Update django/utils/importlib.py one more helper to django utils . --- django/utils/importlib.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/django/utils/importlib.py b/django/utils/importlib.py index 703ba7f6d8060..553f8ee277058 100644 --- a/django/utils/importlib.py +++ b/django/utils/importlib.py @@ -34,3 +34,20 @@ def import_module(name, package=None): name = _resolve_name(name[level:], package, level) __import__(name) return sys.modules[name] + +def load_class(path, package=None): + """ Load class by path + + The 'package' argument is required when performing a relative import. It + specifies the package to use as the anchor point from which to resolve the + relative import to an absolute import. + """ + module_name, class_name = path.rsplit('.', 1) + module = import_module(module_name, package) + class_ref = getattr(module, class_name, None) + if not class_ref: + raise ImportError() + return class_ref + + +