def build(self, run_data: dict) -> models.Analysis:
        """Build a new Analysis object."""
        existing_run = self.store.find_analysis(family=run_data['family'],
                                                started_at=run_data['started_at'],
                                                status=run_data['status'])
        if existing_run:
            return None

        run_data['user'] = self.store.user(run_data['user'])
        new_failed_jobs = [self.store.Job(**job) for job in run_data['failed_jobs']]
        del run_data['failed_jobs']
        new_run = self.store.Analysis(**run_data)
        new_run.failed_jobs = new_failed_jobs
        return new_run
def build ( self , run_data : dict ) -> models . Analysis : existing_run = self . store . find_analysis ( family = run_data [ 'family' ] , started_at = run_data [ 'started_at' ] , status = run_data [ 'status' ] ) if existing_run : return None run_data [ 'user' ] = self . store . user ( run_data [ 'user' ] ) new_failed_jobs = [ self . store . Job ( ** job ) for job in run_data [ 'failed_jobs' ] ] del run_data [ 'failed_jobs' ] new_run = self . store . Analysis ( ** run_data ) new_run . failed_jobs = new_failed_jobs return new_run
Build a new Analysis object.