Source

fromdjango.core.exceptionsimportImproperlyConfigured# Python 2.7 has an importlib with import_module; for older Pythons,# Django's bundled copy provides it.try:fromimportlibimportimport_moduleexceptImportError:fromdjango.utils.importlibimportimport_moduledefget_backend(path):""" Return an instance of a registration backend, given the dotted Python import path (as a string) to the backend class. If the backend cannot be located (e.g., because no such module exists, or because the module does not contain a class of the appropriate name), ``django.core.exceptions.ImproperlyConfigured`` is raised. """i=path.rfind('.')module,attr=path[:i],path[i+1:]try:mod=import_module(module)exceptImportError,e:raiseImproperlyConfigured('Error loading registration backend %s: "%s"'%(module,e))try:backend_class=getattr(mod,attr)exceptAttributeError:raiseImproperlyConfigured('Module "%s" does not define a registration backend named "%s"'%(module,attr))returnbackend_class()