def get_script_object(config_file, job_selector_str, only_success=False, require_task=False): config = gc_create_config(config_file=config_file, load_only_old_config=True) (task, job_selector) = _get_job_selector_and_task(config, job_selector_str, require_task) if only_success: job_selector = JobSelector.create_instance('AndJobSelector', ClassSelector(JobClass.SUCCESS), job_selector) new_config = gc_create_config(config_file=config_file) jobs_config = new_config.change_view(set_sections=['jobs']) job_db = jobs_config.get_plugin('job database', 'TextFileJobDB', cls='JobDB', pkwargs={'job_selector': job_selector}, on_change=None) class ScriptObject(object): def __init__(self, config, new_config, task, job_db): (self.config, self.new_config) = (config, new_config) (self.task, self.job_db) = (task, job_db) return ScriptObject(config, new_config, task, job_db)