diff --git a/scripts/dlipower b/scripts/dlipower index 3e52f9d..b47c791 100755 --- a/scripts/dlipower +++ b/scripts/dlipower @@ -36,32 +36,17 @@ def _block_to_list(block): input "1-3,17,19-20" output=[1,2,3,17,19,20] """ - block += ',' result = [] - val = '' - in_range = False - for letter in block: - if letter in [',', '-']: - if in_range: - val2 = val - val2_len = len(val2) - # result += range(int(val1),int(val2)+1) - for value in outlet_range(int(val1), int(val2) + 1): - result.append(str(value).zfill(val2_len)) - val = '' - val1 = None - in_range = False - else: - val1 = val - val1_len = len(val1) - val = '' - if letter == ',': - if val1 != None: - result.append(val1.zfill(val1_len)) - else: - in_range = True - else: - val += letter + for elem in block.split(','): + if '-' in elem: + try: + val1, val2 = elem.split('-') + for value in range(int(val1), int(val2)+1): + result.append(str(value)) + continue + except ValueError: + pass + result.append(elem) return result