from typing import Any, List, Optional, Set from sziszapangma.integration.repository.experiment_repository import ExperimentRepository class MultipleExperimentRepository(ExperimentRepository): _repositories: List[ExperimentRepository] _index_to_read: int def __init__(self, repositories: List[ExperimentRepository], index_to_read: int): self._repositories = repositories self._index_to_read = index_to_read def initialise(self) -> None: for it in self._repositories: it.initialise() def get_read_repository(self) -> ExperimentRepository: return self._repositories[self._index_to_read] def property_exists(self, record_id: str, property_name: str) -> bool: return self.get_read_repository().property_exists(record_id, property_name) def update_property_for_key(self, record_id: str, property_name: str, property_value: Any): for it in self._repositories: it.update_property_for_key(record_id, property_name, property_value) def delete_property_for_key(self, record_id: str, property_name: str): for it in self._repositories: it.delete_property_for_key(record_id, property_name) def get_property_for_key(self, record_id: str, property_name: str) -> Optional[Any]: return self.get_read_repository().get_property_for_key(record_id, property_name) def get_all_record_ids(self) -> Set[str]: return self.get_read_repository().get_all_record_ids() def get_all_properties(self) -> Set[str]: return self.get_read_repository().get_all_properties()