Spaces:
Running
Running
| # slotmatch/schema.py | |
| ALLOWED_TYPES = {str, int, float, bool} | |
| class SchemaValidationError(Exception): | |
| """Custom error when schema is invalid.""" | |
| pass | |
| class SchemaValidator: | |
| def __init__(self, schema: dict): | |
| self.schema = schema | |
| self._validate_schema() | |
| def _validate_schema(self): | |
| if not isinstance(self.schema, dict): | |
| raise SchemaValidationError("Schema must be a dictionary.") | |
| for key, expected_type in self.schema.items(): | |
| if not isinstance(key, str): | |
| raise SchemaValidationError(f"Key '{key}' must be a string.") | |
| if expected_type not in ALLOWED_TYPES: | |
| raise SchemaValidationError( | |
| f"Unsupported type '{expected_type}' for key '{key}'. " | |
| f"Supported types: {ALLOWED_TYPES}" | |
| ) | |
| def get_schema(self): | |
| return self.schema |