Serialize a NodeLike object (str, BaseAgent, BaseTool, Callable, BaseNode).
(item: Any)
| 52 | |
| 53 | |
| 54 | def serialize_node_like(item: Any) -> Any: |
| 55 | """Serialize a NodeLike object (str, BaseAgent, BaseTool, Callable, BaseNode).""" |
| 56 | if item == "START": |
| 57 | return "START" |
| 58 | # Handle primitives |
| 59 | if isinstance(item, (str, int, float, bool)): |
| 60 | return item |
| 61 | # Handle BaseAgent |
| 62 | class_name = type(item).__name__ |
| 63 | if "Agent" in class_name and hasattr(item, "model_fields"): |
| 64 | return serialize_agent(item) |
| 65 | # Handle BaseNode |
| 66 | if "Node" in class_name and hasattr(item, "get_name"): |
| 67 | return serialize_node(item) |
| 68 | # Handle callable |
| 69 | if callable(item): |
| 70 | return {"name": getattr(item, "__name__", str(item)), "type": "function"} |
| 71 | return str(item) |
| 72 | |
| 73 | |
| 74 | def serialize_node(node: Any) -> dict[str, Any]: |
no test coverage detected