Skip to content

Built-ins

builtins

Builtin predicate registry for pyling.

register_builtin_module

register_builtin_module(module: object, origin: str | None = None) -> bool

Accept Python modules or dicts with a register/register_builtins function.

Source code in pyling/builtins.py
def register_builtin_module(module: object, origin: str | None = None) -> bool:
    """Accept Python modules or dicts with a register/register_builtins function."""
    fn = None
    if isinstance(module, Mapping):
        fn = module.get("register") or module.get("register_builtins") or module.get("default")
    else:
        fn = getattr(module, "register", None) or getattr(module, "register_builtins", None)
    if not callable(fn):
        raise TypeError("builtin module must expose register() or register_builtins()")
    fn({"registerBuiltin": register_builtin, "unregisterBuiltin": unregister_builtin})
    return True