from sziszapangma.integration.gold_transcript_processor import GoldTranscriptProcessor from sziszapangma.integration.repository.experiment_repository import ExperimentRepository from sziszapangma.integration.task.processing_task import ProcessingTask from sziszapangma.model.relation_manager import RelationManager class GoldTranscriptTask(ProcessingTask): _gold_transcript_processor: GoldTranscriptProcessor _gold_transcript_property_name: str def __init__( self, task_name: str, gold_transcript_processor: GoldTranscriptProcessor, gold_transcript_property_name: str, require_update: bool, ): super().__init__(task_name, require_update) self._gold_transcript_processor = gold_transcript_processor self._gold_transcript_property_name = gold_transcript_property_name def skip_for_record(self, record_id: str, experiment_repository: ExperimentRepository) -> bool: return ( experiment_repository.get_property_for_key( record_id, self._gold_transcript_property_name ) is not None ) def run_single_process( self, record_id: str, experiment_repository: ExperimentRepository, relation_manager: RelationManager, ): experiment_repository.update_property_for_key( record_id, self._gold_transcript_property_name, self._gold_transcript_processor.get_gold_transcript(record_id), )