(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 typing import Any, Dict, List, Optional, Literal
from pydantic import BaseModel, Field, ValidationError
from .utils import *
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")