@@ -45,24 +45,6 @@ def _from_monty(value: Any) -> Any:
4545 return value
4646
4747
48- def _resume_monty_snapshot (snapshot : Any , return_value : Any ) -> Any :
49- """Pass a tool return value into ``FunctionSnapshot.resume``.
50-
51- pydantic-monty 0.0.17+ expects ``resume({"return_value": ...})`` (an
52- ``ExternalResult`` dict). Older releases used ``resume(return_value=...)``
53- only.
54-
55- Without this wrapper, returning a plain dict from a tool (e.g.
56- ``{"summary": "..."}``) is mistaken for an ``ExternalResult`` and Monty
57- raises about invalid ``ExternalResult`` keys.
58- """
59- marshaled = _to_monty (return_value )
60- sig = inspect .signature (snapshot .resume )
61- if "result" in sig .parameters :
62- return snapshot .resume ({"return_value" : marshaled })
63- return snapshot .resume (return_value = marshaled )
64-
65-
6648class ExternalFunctionBridge :
6749 """Drives Monty execution with external function dispatch.
6850
@@ -170,7 +152,7 @@ async def execute_monty(self, monty_cls: Any, code: str, input_names: list[str],
170152 args = [_from_monty (a ) for a in progress .args ]
171153 kwargs = {k : _from_monty (v ) for k , v in progress .kwargs .items ()}
172154 result = await self ._handle_flyte_map (args , kwargs )
173- progress = _resume_monty_snapshot ( progress , result )
155+ progress = progress . resume ({ "return_value" : _to_monty ( result )} )
174156 continue
175157
176158 fn = ext_fns .get (progress .function_name )
@@ -188,6 +170,6 @@ async def execute_monty(self, monty_cls: Any, code: str, input_names: list[str],
188170 while inspect .iscoroutine (result ):
189171 result = await result
190172
191- progress = _resume_monty_snapshot ( progress , result )
173+ progress = progress . resume ({ "return_value" : _to_monty ( result )} )
192174 else :
193175 raise RuntimeError (f"Unexpected Monty progress state: { progress !r} " )
0 commit comments