mitogen: Consolidate `range` & `xrange` polyfills -> `mitogen.core.range`

pull/1425/head
Alex Willmer 2 days ago
parent c9236b2360
commit 9d70e83221

@ -28,6 +28,8 @@ In progress (unreleased)
* :gh:issue:`1424` tests: Standardise output of connection benchmarks
* :gh:issue:`1424` tests: Parameterize throughput benchmark
* :gh:issue:`1424` tests: Parameterize large message benchmark
* :gh:issue:`1424` :mod:`mitogen`: Consolidate all ``range`` and ``xrange``
polyfills into :attr:`mitogen.core.range`
v0.3.37 (2026-01-08)

@ -227,6 +227,7 @@ if sys.version_info >= (3, 0):
BufferType = lambda buf, start: memoryview(buf)[start:]
integer_types = (int,)
iteritems, iterkeys, itervalues = dict.items, dict.keys, dict.values
range = range
else:
import cPickle as pickle
import thread
@ -238,6 +239,7 @@ else:
UnicodeType = unicode
integer_types = (int, long)
iteritems, iterkeys, itervalues = dict.iteritems, dict.iterkeys, dict.itervalues
range = xrange
AnyTextType = (BytesType, UnicodeType)

@ -104,7 +104,7 @@ def strip_docstrings(tokens):
elif typ == tokenize.NEWLINE:
stack.append(t)
start_line, end_line = stack[0][2][0], stack[-1][3][0]+1
for i in range(start_line, end_line):
for i in mitogen.core.range(start_line, end_line):
yield tokenize.NL, '\n', (i, 0), (i,1), '\n'
for t in stack:
if t[0] in (tokenize.DEDENT, tokenize.INDENT):

@ -80,7 +80,6 @@ except IOError:
if sys.version_info >= (3, 0):
xrange = range
closure_attr = '__closure__'
IM_SELF_ATTR = '__self__'
else:
@ -1729,7 +1728,7 @@ class ChildIdAllocator(object):
def __init__(self, router):
self.router = router
self.lock = threading.Lock()
self.it = iter(xrange(0))
self.it = iter(mitogen.core.range(0))
def allocate(self):
"""
@ -1753,7 +1752,7 @@ class ChildIdAllocator(object):
start, end = master.send_await(
mitogen.core.Message(dst_id=0, handle=mitogen.core.ALLOCATE_ID)
)
self.it = iter(xrange(start, end))
self.it = iter(mitogen.core.range(start, end))
finally:
self.lock.release()

@ -233,7 +233,7 @@ class Select(object):
# the underlying receivers. We handle the possibility of receivers
# marked notified yet empty inside Select.get(), so this should be
# robust.
for _ in range(recv.size()):
for _ in mitogen.core.range(recv.size()):
self._put(recv)
not_present_msg = 'Instance is not a member of this Select'

@ -523,7 +523,7 @@ class Pool(object):
self.add(service)
self._py_24_25_compat()
self._threads = []
for x in range(size):
for x in mitogen.core.range(size):
name = 'mitogen.Pool.%04x.%d' % (id(self) & 0xffff, x,)
thread = threading.Thread(
name=name,

@ -5,11 +5,6 @@ Measure latency of .fork() setup/teardown.
import mitogen
import mitogen.core
try:
xrange
except NameError:
xrange = range
@mitogen.main()
def main(router):
@ -22,7 +17,7 @@ def main(router):
opts, args = parser.parse_args()
t0 = mitogen.core.now()
for x in xrange(opts.iterations):
for x in mitogen.core.range(opts.iterations):
t = mitogen.core.now()
ctx = router.fork(debug=opts.debug)
ctx.shutdown(wait=True)

@ -9,10 +9,6 @@ import ansible_mitogen.affinity
mitogen.utils.setup_gil()
ansible_mitogen.affinity.policy.assign_worker()
try:
xrange
except NameError:
xrange = range
def do_nothing():
pass
@ -30,7 +26,7 @@ def main(router):
f = router.fork(debug=opts.debug)
f.call(do_nothing)
t0 = mitogen.core.now()
for x in xrange(opts.iterations):
for x in mitogen.core.range(opts.iterations):
f.call(do_nothing)
t1 = mitogen.core.now()

@ -23,7 +23,7 @@ def main(router):
opts, args = parser.parse_args()
t0 = mitogen.core.now()
for x in range(opts.iterations):
for x in mitogen.core.range(opts.iterations):
t = mitogen.core.now()
f = router.local(debug=opts.debug)
tt = mitogen.core.now()

@ -11,10 +11,6 @@ import ansible_mitogen.affinity
mitogen.utils.setup_gil()
ansible_mitogen.affinity.policy.assign_worker()
try:
xrange
except NameError:
xrange = range
def do_nothing():
pass

@ -20,7 +20,7 @@ def main(router):
s = ' ' * n
t0 = mitogen.core.now()
for x in range(opts.iterations):
for x in mitogen.core.range(opts.iterations):
tt0 = mitogen.core.now()
assert n == c.call(len, s)

@ -15,7 +15,7 @@ X = 20000
def flip_flop(ready, inp, out):
ready.put(None)
for x in xrange(X):
for x in mitogen.core.range(X):
inp.get()
out.put(None)

@ -8,6 +8,8 @@ import ctypes
import multiprocessing
import os
import mitogen.core
LIBC = ctypes.CDLL('libc.so.6')
sched_yield = LIBC.sched_yield
@ -19,7 +21,7 @@ def burn():
(ord(b) << 8) |
(ord(c) << 0)) / 1.6)
print(n)
for x in xrange(n): pass
for x in mitogen.core.range(n): pass
sched_yield()
mul = 1.5

Loading…
Cancel
Save