Modifying the unittest output. XML files are no longer written outside of the build...
[debian/gnuradio] / gnuradio-core / src / python / gnuradio / eng_option.py
index 40367d0d6218120e95571ae2c73a6be3fa53cd7e..e10235f143958329b3ccfbdb70f6e08f4d91eb33 100644 (file)
 
 from copy import copy
 from optparse import Option, OptionValueError
-
-scale_factor = {}
-scale_factor['E'] = 1e18
-scale_factor['P'] = 1e15
-scale_factor['T'] = 1e12
-scale_factor['G'] = 1e9
-scale_factor['M'] = 1e6
-scale_factor['k'] = 1e3
-scale_factor['m'] = 1e-3
-scale_factor['u'] = 1e-6
-scale_factor['n'] = 1e-9
-scale_factor['p'] = 1e-12
-scale_factor['f'] = 1e-15
-scale_factor['a'] = 1e-18
-
+import eng_notation
 
 def check_eng_float (option, opt, value):
     try:
-        scale = 1.0
-        suffix = value[-1]
-        if scale_factor.has_key (suffix):
-            return float (value[0:-1]) * scale_factor[suffix]
-        return float (value)
+        return eng_notation.str_to_num(value)
     except:
         raise OptionValueError (
             "option %s: invalid engineering notation value: %r" % (opt, value))
@@ -63,13 +45,13 @@ def check_subdev (option, opt, value):
 
     @returns a 2-tuple (0|1, 0|1)
     """
-    d = { 'A'   : (0, 0),  'A:0' : (0, 0),  'A:1' : (0, 1),
-          'B'   : (1, 0),  'B:0' : (1, 0),  'B:1' : (1, 1) }
+    d = { 'A' : (0, 0), 'A:0' : (0, 0), 'A:1' : (0, 1), 'A:2' : (0, 2),
+          'B' : (1, 0), 'B:0' : (1, 0), 'B:1' : (1, 1), 'B:2' : (1, 2) }
     try:
         return d[value.upper()]
     except:
         raise OptionValueError(
-            "option %s: invalid subdev: '%r', must be one of A, B, A:0, A:1, B:0, B:1" % (opt, value))
+            "option %s: invalid subdev: '%r', must be one of %s" % (opt, value, ', '.join(sorted(d.keys()))))
 
 class eng_option (Option):
     TYPES = Option.TYPES + ("eng_float", "intx", "subdev")