fix: raise clear ValueError when serializing callables missing __qualname__

This commit is contained in:
Greyson LaLonde
2026-03-19 21:00:55 -04:00
parent f2223281a9
commit 82b9b98fd2

View File

@@ -127,7 +127,14 @@ def callable_to_string(fn: Callable[..., Any]) -> str:
Returns:
A dotted string of the form ``"module.qualname"``.
"""
return f"{fn.__module__}.{fn.__qualname__}"
module = getattr(fn, "__module__", None)
qualname = getattr(fn, "__qualname__", None)
if module is None or qualname is None:
raise ValueError(
f"Cannot serialize {fn!r}: missing __module__ or __qualname__. "
"Use a module-level named function for checkpointable callbacks."
)
return f"{module}.{qualname}"
SerializableCallable = Annotated[