tests: introduce 'seq.py' as a portable replacement for 'seq'
authorMatt Harbison <matt_harbison@yahoo.com>
Tue, 17 Mar 2015 20:59:23 -0400
changeset 24360 f554f89a2038
parent 24359 521fe8287dd5
child 24361 8de8cd34f2e3
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.
tests/seq.py
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/seq.py	Tue Mar 17 20:59:23 2015 -0400
@@ -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