| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- from typing import Protocol
- from zbt.domains.knowledge.models import KnowledgeDocument, KnowledgeSearchTest
- class KnowledgeRepository(Protocol):
- def save_document(self, document: KnowledgeDocument) -> None: ...
- def get_document(self, document_id: str) -> KnowledgeDocument | None: ...
- def list_documents(self) -> list[KnowledgeDocument]: ...
- def save_search_test(self, search_test: KnowledgeSearchTest) -> None: ...
- def list_search_tests(self, document_id: str) -> list[KnowledgeSearchTest]: ...
- class InMemoryKnowledgeRepository:
- def __init__(self) -> None:
- self._documents: dict[str, KnowledgeDocument] = {}
- self._search_tests: dict[str, KnowledgeSearchTest] = {}
- def save_document(self, document: KnowledgeDocument) -> None:
- self._documents[document.id] = document
- def get_document(self, document_id: str) -> KnowledgeDocument | None:
- return self._documents.get(document_id)
- def list_documents(self) -> list[KnowledgeDocument]:
- return list(self._documents.values())
- def save_search_test(self, search_test: KnowledgeSearchTest) -> None:
- self._search_tests[search_test.id] = search_test
- def list_search_tests(self, document_id: str) -> list[KnowledgeSearchTest]:
- return [
- search_test
- for search_test in self._search_tests.values()
- if search_test.document_id == document_id
- ]
|