示例#1
0
        res.plot_all_tests(only="standalone_", exclude=(), profiling_minimum=0)
        savefig(os.path.join(plot_dir, f'speed_test_{test_name}_standalone_timers.png'))
        res.plot_all_tests(only="standalone_",
                           exclude=("standalone_before_", "standalone_after_"),
                           profiling_minimum=0)
        savefig(os.path.join(plot_dir, f'speed_test_{test_name}_standalone_timers_without_extra_diffs.png'))
        if 6 != len(get_fignums()):
            print_flushed(f"WARNING: There were {len(get_fignums())} plots created, but only {6 * (i + 1)} saved.", slack=False)
        for f in get_fignums():
            close(f)

        # pickel results object and csv file to disk
        pkl_file = os.path.join(data_dir, test_name + '.pkl' )
        pickle_results(res, pkl_file)
        try:
            translate_pkl_to_csv(pkl_file)
        except KeyError as e:
            print_flushed(f"ERROR tranlating {pkl_file} to csv:\n\tKeyError: {e}")

        try:
            for key in res.brian_stdouts.keys():
                config_key, st_key, n_key = key
                suffix = f'{st_key}_{config_key}_{n_key}.txt'
                stdout_file = os.path.join(log_dir, f'stdout_{suffix}')
                with open(stdout_file, 'w+') as sfile:
                    sfile.write(res.brian_stdouts[key])
                print_flushed(f"Written {stdout_file}", slack=False)
                stderr_file = os.path.join(log_dir, f'stderr_{suffix}')
                with open(stderr_file, 'w+') as sfile:
                    sfile.write(res.brian_stderrs[key])
                print_flushed(f"Written {stderr_file}", slack=False)
import argparse
parser = argparse.ArgumentParser(description=("Extract benchmark data from pickled SpeedTest "
                                              "obejct into csv files from pickle file. Overwrites "
                                              "already existing csv files of same name."))

parser.add_argument('files', nargs='+', type=str,
                    help=(".pkl files to translate. * wildcard supported."))

args = parser.parse_args()

import glob
from helpers import translate_pkl_to_csv

for pattern in args.files:
    for pkl in glob.glob(pattern):
        print(f"Extracting csv files from {pkl}")
        translate_pkl_to_csv(pkl)