| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- from collections.abc import Mapping
- from typing import Any, Optional
-
- from core.schemas.registry import SchemaRegistry
-
-
- class SchemaManager:
- """Schema manager provides high-level schema operations"""
-
- def __init__(self, registry: Optional[SchemaRegistry] = None):
- self.registry = registry or SchemaRegistry.default_registry()
-
- def get_all_schema_definitions(self, version: str = "v1") -> list[Mapping[str, Any]]:
- """
- Get all JSON Schema definitions for a specific version
-
- Args:
- version: Schema version, defaults to v1
-
- Returns:
- Array containing schema definitions, each element contains name and schema fields
- """
- return self.registry.get_all_schemas_for_version(version)
-
- def get_schema_by_name(self, schema_name: str, version: str = "v1") -> Optional[Mapping[str, Any]]:
- """
- Get a specific schema by name
-
- Args:
- schema_name: Schema name
- version: Schema version, defaults to v1
-
- Returns:
- Dictionary containing name and schema, returns None if not found
- """
- uri = f"https://dify.ai/schemas/{version}/{schema_name}.json"
- schema = self.registry.get_schema(uri)
-
- if schema:
- return {"name": schema_name, "schema": schema}
- return None
-
- def list_available_schemas(self, version: str = "v1") -> list[str]:
- """
- List all available schema names for a specific version
-
- Args:
- version: Schema version, defaults to v1
-
- Returns:
- List of schema names
- """
- return self.registry.list_schemas(version)
-
- def list_available_versions(self) -> list[str]:
- """
- List all available schema versions
-
- Returns:
- List of versions
- """
- return self.registry.list_versions()
|