# HG changeset patch # User Matt Harbison # Date 2015-03-18 00:59:23 # Node ID f554f89a2038b72e5f3f39d5efa80716e5b944d8 # Parent 521fe8287dd54bd9f1a6ea6f3cbec53c22931d2e 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. diff --git a/tests/seq.py b/tests/seq.py new file mode 100644 --- /dev/null +++ b/tests/seq.py @@ -0,0 +1,23 @@ +#!/usr/bin/env python +# +# A portable replacement for 'seq' +# +# Usage: +# seq STOP [1, STOP] stepping by 1 +# seq START STOP [START, STOP] stepping by 1 +# seq START STEP STOP [START, STOP] stepping by STEP + +import sys + +start = 1 +if len(sys.argv) > 2: + start = int(sys.argv[1]) + +step = 1 +if len(sys.argv) > 3: + step = int(sys.argv[2]) + +stop = int(sys.argv[-1]) + 1 + +for i in xrange(start, stop, step): + print i