def get_stored_targets(base_dir, log_filename_format=None): """Get parsed stored targets.""" assert log_filename_format if '{job.state}' in log_filename_format: log_filename_format = log_filename_format.replace( '{job.state}', '{job.state:w}') if '{job.number}' in log_filename_format: log_filename_format = log_filename_format.replace( '{job.number}', '{job.number:f}') parser = parse.compile(log_filename_format) if base_dir[-1] != '/': base_dir = base_dir + '/' filenames = get_files(base_dir) targets = [] for filename in filenames: parsed_filename = parser.parse(filename) if not parsed_filename: __logs__.warning('Unexpected filename {0}'.format(filename)) continue target = Target() try: target.slug = parsed_filename['job.repository.slug'] except KeyError: pass try: target.number = str(parsed_filename['job.number']) except KeyError: pass try: target.state = parsed_filename['job.state'] except KeyError: pass targets.append(target) return targets