help='Do not parse search results')

    eval = Fetcher(parser)

    # Do not parse preprocess files if it has been disabled on the commandline
    if not eval.no_preprocess:
        add_preprocess_parsing(eval)
        add_preprocess_functions(eval)
        # Only try to parse all.groups files if there are any.
        all_groups_files = glob(os.path.join(eval.exp_dir, 'runs-*-*', '*',
                                             'all.groups'))
        if all_groups_files:
            add_mutex_groups_functions(eval)
    if not eval.no_search:
        add_search_parsing(eval)
        add_search_functions(eval)
        eval.add_function(get_bisimulation_results)
        eval.add_function(get_error, "run.err")

    eval.add_function(check_min_values)
    eval.set_check(check)
    eval.postprocess_functions.append(quality)

    return eval


if __name__ == '__main__':
    fetcher = build_fetcher()
    with tools.timing('Parse files'):
        fetcher.fetch()
    def build(self):
        if len(self.data) == 0:
            sys.exit('No problems match those filters')
        problems = [run['domain'] + ':' + run['problem'] for run in self.data]
        # Sort and remove duplicates
        problems = sorted(set(problems))
        problems = ['        "%s",\n' % problem for problem in problems]
        output = ('def suite():\n    return [\n%s    ]\n' % ''.join(problems))
        print '\nSUITE:'
        print output
        return output


if __name__ == "__main__":
    with tools.timing("Create report"):
        known_args, remaining_args = report_type_parser.parse_known_args()

        # delete parsed args
        sys.argv = [sys.argv[0]] + remaining_args

        report_name = REPORT_TYPES[known_args.report]
        logging.info('Report: %s' % report_name)

        # Instantiate selected Report
        report = globals().get(report_name)()

        # Copy the report type
        report.report_type = known_args.report

        report.write()
            if not self.no_props_file:
                props['id-string'] = id_string
                combined_props[id_string] = props.dict()

        tools.makedirs(self.eval_dir)
        if not self.no_props_file:
            self.apply_postprocess_functions(combined_props)
            combined_props.write()
            self.write_data_dump(combined_props)

    def write_data_dump(self, combined_props):
        combined_props_file = combined_props.filename
        dump_path = os.path.join(self.eval_dir, 'data_dump')
        logging.info('Reading properties file without parsing')
        properties_contents = open(combined_props_file).read()
        logging.info('Calculating properties hash')
        new_checksum = hashlib.md5(properties_contents).digest()
        data = combined_props.get_dataset()
        logging.info('Finished turning properties into dataset')
        # Pickle data for faster future use
        cPickle.dump((new_checksum, data), open(dump_path, 'wb'),
                     cPickle.HIGHEST_PROTOCOL)
        logging.info('Wrote data dump')


if __name__ == "__main__":
    logging.info('Import this module if you want to parse the output files')
    with tools.timing('Copy files'):
        fetcher = Fetcher()
        fetcher.fetch()