(no commit message)

This commit is contained in:
2025-10-29 20:38:01 -04:00
parent 5991e967d1
commit 0dc52430f6
2 changed files with 25 additions and 0 deletions

View File

@@ -1,6 +1,7 @@
from enum import Enum from enum import Enum
from typing import Any, Dict, List, Optional, Literal from typing import Any, Dict, List, Optional, Literal
from pydantic import BaseModel, Field, ValidationError from pydantic import BaseModel, Field, ValidationError
from .utils import *
import dspy import dspy

24
agent/utils.py Normal file
View File

@@ -0,0 +1,24 @@
from typing import Dict, Any
import re
def to_snake_case(name: str) -> str:
"""Convert PascalCase or camelCase string to snake_case."""
s1 = re.sub("(.)([A-Z][a-z]+)", r"\1_\2", name)
return re.sub("([a-z0-9])([A-Z])", r"\1_\2", s1).lower()
def save_signature_to_file(
result: Dict[str, Any], output_path: str | None = None
) -> str:
"""Save generated signature code to a Python file"""
if not output_path:
signature_name = result.get("signature_name", "generated_signature")
output_path = f"{to_snake_case(signature_name)}.py"
if result.get("code"):
with open(output_path, "w") as f:
f.write(result["code"])
return output_path
else:
raise ValueError("No code to save")