aboutsummaryrefslogtreecommitdiffstats
path: root/utils/misc.py
diff options
context:
space:
mode:
Diffstat (limited to 'utils/misc.py')
-rw-r--r--utils/misc.py30
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':