Spaces:
Runtime error
Runtime error
| from ..chunking.chunking_strategy import ChunkingStrategy | |
| class _ChunkingRegistry: | |
| def __init__(self): | |
| self._chunking_strategies: dict[str, ChunkingStrategy] = {} | |
| def register(self, name: str, strategy: ChunkingStrategy): | |
| self._chunking_strategies[name] = strategy | |
| def get(self, name: str) -> ChunkingStrategy: | |
| return self._chunking_strategies[name] | |
| def get_names(self) -> list[str]: | |
| return list(self._chunking_strategies.keys()) | |
| def __len__(self) -> int: | |
| return len(self._chunking_strategies) | |
| def __contains__(self, name: str | ChunkingStrategy) -> bool: | |
| if isinstance(name, ChunkingStrategy): | |
| return name in self._chunking_strategies.values() | |
| return name in self._chunking_strategies | |
| def __dict__(self) -> dict: | |
| return self._chunking_strategies | |
| def __getitem__(self, name: str) -> ChunkingStrategy: | |
| return self._chunking_strategies[name] | |
| chunking_registry = _ChunkingRegistry() | |
| def register_chunking_strategy(name: str | None = None): | |
| def decorator(cls: type[ChunkingStrategy]) -> type[ChunkingStrategy]: | |
| chunking_registry.register(name or cls.__name__, cls) | |
| return cls | |
| return decorator | |