<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def parse(cls, config_data: dict, sampleinfo_data: dict, sacct_jobs: List[dict], jobs: int) -> dict: """Parse information about a run."""

        analysis_types = [sample['type'] for sample in config_data['samples']]
        run_data = {
            'user': config_data['email'],
            'family': config_data['family'],
            'priority': config_data['priority'],
            'started_at': sampleinfo_data['date'],
            'version': sampleinfo_data['version'],
            'out_dir': config_data['out_dir'],
            'config_path': config_data['config_path'],
            'type': cls._get_analysis_type(analysis_types),
        }

        sacct_data, last_job_end = cls._parse_sacct(sacct_jobs, jobs_count=jobs)
        run_data.update(sacct_data)

        run_data['status'] = cls.get_status(sampleinfo_data['is_finished'],
                                            len(run_data['failed_jobs']))
        if run_data['status'] == 'completed':
            run_data['completed_at'] = last_job_end

        return run_data