mirror of
https://github.com/BerriAI/litellm.git
synced 2026-09-16 23:41:43 +00:00
31 lines
894 B
Python
31 lines
894 B
Python
import json
|
|
from pathlib import Path
|
|
from typing import Final
|
|
|
|
from pydantic import TypeAdapter
|
|
|
|
MAPPING: Final = TypeAdapter(dict[str, tuple[str, ...]])
|
|
OWNED_DIRECTORIES: Final = frozenset(
|
|
{
|
|
"management",
|
|
"authorization",
|
|
"database",
|
|
"pricing",
|
|
"spend",
|
|
"routing",
|
|
"providers",
|
|
"streaming",
|
|
"configuration",
|
|
"mcp",
|
|
"observability",
|
|
"compatibility",
|
|
}
|
|
)
|
|
|
|
|
|
def contracts() -> dict[str, tuple[str, ...]]:
|
|
document: Final = json.loads((Path(__file__).resolve().parents[1] / "contracts.json").read_bytes())
|
|
result: Final = MAPPING.validate_python(document["tests"])
|
|
if not result or any(not values or any(not value.strip() for value in values) for values in result.values()):
|
|
raise ValueError("Integration manifest must contain nodes with contract IDs")
|
|
return result
|