Source code for papfa.utils

from importlib import import_module


[docs]def make_function_from_path(path): if path is None: return lambda *x, **y: False modules = path.split(".") base = modules.pop(0) base = __import__(base) for module in modules: base = getattr(base, module)
[docs]def import_string(dotted_path): """ Import a dotted module path and return the attribute/class designated by the last name in the path. Raise ImportError if the import failed. """ try: module_path, class_name = dotted_path.rsplit(".", 1) except ValueError as err: raise ImportError("%s doesn't look like a module path" % dotted_path) from err module = import_module(module_path) try: return getattr(module, class_name) except AttributeError as err: raise ImportError( 'Module "%s" does not define a "%s" attribute/class' % (module_path, class_name) ) from err