resolver.py
1 """ 2 Resolver module 3 """ 4 5 6 class Resolver: 7 """ 8 Resolves a Python class path 9 """ 10 11 def __call__(self, path): 12 """ 13 Class instance to resolve. 14 15 Args: 16 path: path to class 17 18 Returns: 19 class instance 20 """ 21 22 # Split into path components 23 parts = path.split(".") 24 25 # Resolve each path component 26 module = ".".join(parts[:-1]) 27 m = __import__(module) 28 for comp in parts[1:]: 29 m = getattr(m, comp) 30 31 # Return class instance 32 return m