in pbspro/src/pbspro/parser.py [0:0]
def parse_range_size(self, expr: str) -> int:
"""
parses something like 1-100 as 100
or 1-100:2 as 50 etcz
We don't care (nor for efficiency, do we want to) to generate
all possible numbers in the range, just the size.
"""
if "," in expr:
return sum([self.parse_range_size(sub_expr) for sub_expr in expr.split(",")])
step = 1
if ":" in expr:
expr, step_expr = expr.split(":")
step = int(step_expr)
if "-" not in expr:
return 1
start, stop = [int(x) for x in expr.split("-")]
total_range = stop - start + 1
if total_range % step == 0:
return total_range // step
return total_range // step + 1