Browse Source

Cleanup list argument, allow sequences inside of other lists

Hamilton Turner 10 years ago
parent
commit
e1e4f77364
1 changed files with 8 additions and 11 deletions
  1. 8 11
      toolset/run-tests.py

+ 8 - 11
toolset/run-tests.py

@@ -23,20 +23,17 @@ class StoreSeqAction(argparse.Action):
   def __call__(self, parser, namespace, values, option_string=None):
   def __call__(self, parser, namespace, values, option_string=None):
     setattr(namespace, self.dest, self.parse_seq(values))
     setattr(namespace, self.dest, self.parse_seq(values))
   def parse_seq(self, argument):
   def parse_seq(self, argument):
-    try:
-      return [int(argument)]
-    except ValueError:
-      pass
-    if ":" in argument: # 
+    result = argument.split(',')
+    sequences = [x for x in result if ":" in x]
+    for sequence in sequences:
       try:
       try:
-        (start,step,end) = argument.split(':')
+        (start,step,end) = sequence.split(':')
       except ValueError: 
       except ValueError: 
-        print "Invalid: %s" % argument
-        print "Requires start:step:end, e.g. 1:2:10"
+        print "  Invalid: %s" % sequence
+        print "  Requires start:step:end, e.g. 1:2:10"
         raise
         raise
-      result = range(int(start), int(end), int(step))
-    else:  # 1,2,3,7
-      result = argument.split(',')
+      result.remove(sequence)
+      result = result + range(int(start), int(end), int(step))
     return [abs(int(item)) for item in result]
     return [abs(int(item)) for item in result]