Source code for flatland.utils.cli_utils
import importlib
from typing import Any
[docs]
def resolve_type(fully_qualified: Any = None, pkg: str = None, cls: str = None):
"""
Returns fully_qualified if it's not a string. Otherwise, resolves from fully_qualified first, else from pkg and cls.
Parameters
----------
fully_qualified : str or type
pkg : Optional[str]
cls : Optional[str]
Returns
-------
The resolved type.
"""
if fully_qualified is not None:
if not isinstance(fully_qualified, str):
return fully_qualified
parts = fully_qualified.split(".")
pkg = ".".join(parts[:-1])
cls = parts[-1]
if pkg is None or cls is None:
return None
module = importlib.import_module(pkg)
return getattr(module, cls)