Mercurial > hg
comparison tests/seq.py @ 24360:f554f89a2038
tests: introduce 'seq.py' as a portable replacement for 'seq'
OS X 10.6.8 doesn't have it, while 10.10 does. I'm not sure when it was added.
It may be missing from other platforms as well.
This currently doesn't handle the string manipulation options (-f, -s and -w in
MinGW anyway), since there is currently no need for it. Since xrange defaults
to starting at 0 instead of 1, and treats the end as exclusive instead of
inclusive, the args need to be extracted instead of doing:
xrange(*[int(a) for a in sys.argv[1:]])
Therefore, the step might as well be added, even though there is no current use.
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Tue, 17 Mar 2015 20:59:23 -0400 |
parents | |
children | ff3be5a325bc |
comparison
equal
deleted
inserted
replaced
24359:521fe8287dd5 | 24360:f554f89a2038 |
---|---|
1 #!/usr/bin/env python | |
2 # | |
3 # A portable replacement for 'seq' | |
4 # | |
5 # Usage: | |
6 # seq STOP [1, STOP] stepping by 1 | |
7 # seq START STOP [START, STOP] stepping by 1 | |
8 # seq START STEP STOP [START, STOP] stepping by STEP | |
9 | |
10 import sys | |
11 | |
12 start = 1 | |
13 if len(sys.argv) > 2: | |
14 start = int(sys.argv[1]) | |
15 | |
16 step = 1 | |
17 if len(sys.argv) > 3: | |
18 step = int(sys.argv[2]) | |
19 | |
20 stop = int(sys.argv[-1]) + 1 | |
21 | |
22 for i in xrange(start, stop, step): | |
23 print i |