diff options
Diffstat (limited to 'utils/misc.py')
| -rw-r--r-- | utils/misc.py | 30 |
1 files changed, 25 insertions, 5 deletions
diff --git a/utils/misc.py b/utils/misc.py index cad03bc..5483675 100644 --- a/utils/misc.py +++ b/utils/misc.py @@ -12,6 +12,7 @@ from __future__ import absolute_import, division import os import errno import multiprocessing +from fractions import gcd import argparse from operator import attrgetter @@ -33,14 +34,18 @@ class SortingHelpFormatter(argparse.HelpFormatter): super(SortingHelpFormatter, self).add_arguments(actions) +def solve_ratio(fr): + denominator = reduce(gcd, fr) + return [int(x/denominator) for x in fr] + + def gen_identifier(args): f = '_DIM{0}'.format(args.dimension) - mr1, mr2, mr3 = args.measured_ratio + mr1, mr2, mr3 = solve_ratio(args.measured_ratio) if args.fix_source_ratio: - sr1, sr2, sr3 = args.source_ratio - f += '_sfr_{0:03d}_{1:03d}_{2:03d}_mfr_{3:03d}_{4:03d}_{5:03d}'.format( - int(sr1*100), int(sr2*100), int(sr3*100), - int(mr1*100), int(mr2*100), int(mr3*100) + sr1, sr2, sr3 = solve_ratio(args.source_ratio) + f += '_sfr_{0:G}_{1:G}_{2:G}_mfr_{3:G}_{4:G}_{5:G}'.format( + sr1, sr2, sr3, mr1, mr2, mr3 ) if args.fix_mixing: f += '_fix_mixing' @@ -128,6 +133,21 @@ def make_dir(outfile): else: raise +def remove_option(parser, arg): + for action in parser._actions: + if (vars(action)['option_strings'] + and vars(action)['option_strings'][0] == arg) \ + or vars(action)['dest'] == arg: + parser._remove_action(action) + + for action in parser._action_groups: + vars_action = vars(action) + var_group_actions = vars_action['_group_actions'] + for x in var_group_actions: + if x.dest == arg: + var_group_actions.remove(x) + return + def seed_parse(s): if s.lower() == 'none': |
