def get_job_config(self, job_name=None):
        """
        Get a list of job configs contained in this cluster runner config, optionally filtered by job names.
        :param job_name:
        :type job_name: str | None
        :return: The specified job config
        :rtype: JobConfig
        """
        if self._job_configs is None:
            self._parse_raw_config()

        if job_name is not None:
            if job_name not in self._job_configs:
                raise JobNotFoundError('The job "{}" was not found in the loaded config. '
                                       'Valid jobs are: {}'.format(job_name, self.get_job_names()))
            return self._job_configs[job_name]

        if len(self._job_configs) == 1:
            return list(self._job_configs.values())[0]

        raise JobNotSpecifiedError('Multiple jobs are defined in this project but you did not specify one. '
                                   'Specify one of the following job names: {}'.format(self.get_job_names()))
dataset/ETHPy150Open box/ClusterRunner/app/master/cluster_runner_config.py/ClusterRunnerConfig.get_job_config/original