(no commit message)
This commit is contained in:
@@ -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
24
agent/utils.py
Normal 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")
|
||||||
Reference in New Issue
Block a user