- if len(token) < 3 or token[:2] != axis + ':' or \
- not (token[2:].isdigit() or token[2] == '-'):
- raise ArgError('Non-int arg for ' + axis + ' position.')
- n = int(token[2:])
- if n < 1 and range_ == 'pos':
+ if token[:2] != axis + ':':
+ raise ArgError('invalid YX tuple formatting')
+ n_string = token[2:]
+ if n_string.strip() != n_string:
+ raise ArgError('invalid YX tuple formatting')
+ try:
+ n = int(n_string)
+ except ValueError:
+ raise ArgError('non-int value for ' + axis + ' position')
+ if range_ == 'all':
+ return n
+ if n < 1 and range == 'pos':