Skip to content

reflection

Functions

extract_signature_metadata(func: Callable) -> Dict[str, Any]

Source code in /opt/hostedtoolcache/Python/3.10.12/x64/lib/python3.10/site-packages/kiara/utils/reflection.py
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
def extract_signature_metadata(func: Callable) -> Dict[str, Any]:

    signature = inspect.signature(func)
    result: Dict[str, Any] = {}
    for param_name, param in signature.parameters.items():
        result.setdefault("parameters", {})[param_name] = {
            "type": param.annotation,
        }
        default = None if param.default == inspect._empty else param.default
        result.setdefault("parameters", {})[param_name]["default"] = default
        result.setdefault("parameters", {})[param_name]["required"] = (
            param.default == inspect._empty
        )

    result["return_type"] = signature.return_annotation

    return result