From d341813e62df969980c719133bd826ca8654ae04 Mon Sep 17 00:00:00 2001 From: James Baumgarten Date: Tue, 4 Aug 2015 19:18:06 -0700 Subject: [PATCH] allow ranges of values to be entered --- pirate-get.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/pirate-get.py b/pirate-get.py index d542f13..b7bcdb4 100755 --- a/pirate-get.py +++ b/pirate-get.py @@ -623,8 +623,19 @@ def main(): # Turn into list l = re.sub(r'^[hdfp, ]*|[hdfp, ]*$', '', l) l = re.sub('[ ,]+', ',', l) - l = re.sub('[^0-9,]', '', l) - choices = l.split(',') + l = re.sub('[^0-9,-]', '', l) + parsed_input = l.split(',') + + # expand ranges + choices = [] + for elem in parsed_input: # loop will generate a list of lists + left, sep, right = elem.partition('-') + if right: + choices.append(list(range(int(left), int(right) + 1))) + else: + choices.append([int(left)]) + choices = sum(choices, []) # flatten list + choices = [str(elem) for elem in choices] # the current code stores the choices as strings instead of ints. not sure if necessary # Act on option, if supplied print('')