tests/seq.py
author Matt Harbison <matt_harbison@yahoo.com>
Thu, 23 Mar 2017 23:47:23 -0400
changeset 31626 0febf8e4e2ce
parent 28722 2cd8c3b0bd11
child 35150 08b8b56bd2e8
permissions -rwxr-xr-x
repair: use context manager for lock management If repo.lock() raised inside of the try block, 'tr' would have been None in the finally block where it tries to release(). Modernize the syntax instead of just winching the lock out of the try block. I found several other instances of acquiring the lock inside of the 'try', but those finally blocks handle None references. I also started switching some trivial try/finally blocks to context managers, but didn't get them all because indenting over 3x for lock, wlock and transaction would have spilled over 80 characters. That got me wondering if there should be a repo.rwlock(), to handle locking and unlocking in the proper order. It also looks like py27 supports supports multiple context managers for a single 'with' statement. Should I hold off on the rest until py26 is dropped?
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
24360
f554f89a2038 tests: introduce 'seq.py' as a portable replacement for 'seq'
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
     1
#!/usr/bin/env python
f554f89a2038 tests: introduce 'seq.py' as a portable replacement for 'seq'
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
     2
#
f554f89a2038 tests: introduce 'seq.py' as a portable replacement for 'seq'
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
     3
# A portable replacement for 'seq'
f554f89a2038 tests: introduce 'seq.py' as a portable replacement for 'seq'
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
     4
#
f554f89a2038 tests: introduce 'seq.py' as a portable replacement for 'seq'
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
     5
# Usage:
f554f89a2038 tests: introduce 'seq.py' as a portable replacement for 'seq'
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
     6
#   seq STOP              [1, STOP] stepping by 1
f554f89a2038 tests: introduce 'seq.py' as a portable replacement for 'seq'
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
     7
#   seq START STOP        [START, STOP] stepping by 1
f554f89a2038 tests: introduce 'seq.py' as a portable replacement for 'seq'
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
     8
#   seq START STEP STOP   [START, STOP] stepping by STEP
f554f89a2038 tests: introduce 'seq.py' as a portable replacement for 'seq'
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
     9
28722
2cd8c3b0bd11 py3: use print_function in seq.py
Robert Stanca <robert.stanca7@gmail.com>
parents: 28721
diff changeset
    10
from __future__ import absolute_import, print_function
24360
f554f89a2038 tests: introduce 'seq.py' as a portable replacement for 'seq'
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    11
import sys
f554f89a2038 tests: introduce 'seq.py' as a portable replacement for 'seq'
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    12
f554f89a2038 tests: introduce 'seq.py' as a portable replacement for 'seq'
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    13
start = 1
f554f89a2038 tests: introduce 'seq.py' as a portable replacement for 'seq'
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    14
if len(sys.argv) > 2:
f554f89a2038 tests: introduce 'seq.py' as a portable replacement for 'seq'
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    15
    start = int(sys.argv[1])
f554f89a2038 tests: introduce 'seq.py' as a portable replacement for 'seq'
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    16
f554f89a2038 tests: introduce 'seq.py' as a portable replacement for 'seq'
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    17
step = 1
f554f89a2038 tests: introduce 'seq.py' as a portable replacement for 'seq'
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    18
if len(sys.argv) > 3:
f554f89a2038 tests: introduce 'seq.py' as a portable replacement for 'seq'
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    19
    step = int(sys.argv[2])
f554f89a2038 tests: introduce 'seq.py' as a portable replacement for 'seq'
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    20
f554f89a2038 tests: introduce 'seq.py' as a portable replacement for 'seq'
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    21
stop = int(sys.argv[-1]) + 1
f554f89a2038 tests: introduce 'seq.py' as a portable replacement for 'seq'
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    22
f554f89a2038 tests: introduce 'seq.py' as a portable replacement for 'seq'
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    23
for i in xrange(start, stop, step):
28722
2cd8c3b0bd11 py3: use print_function in seq.py
Robert Stanca <robert.stanca7@gmail.com>
parents: 28721
diff changeset
    24
    print(i)