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
|