2to3 run of multiprocessing examples.
mp_benchmarks, mp_newtypes and mp_distribution are still broken but the others are working properly. We should include the examples in our unit test suite ...
diff --git a/Doc/includes/mp_benchmarks.py b/Doc/includes/mp_benchmarks.py
index 425d6de..4556de0 100644
--- a/Doc/includes/mp_benchmarks.py
+++ b/Doc/includes/mp_benchmarks.py
@@ -2,7 +2,7 @@
# Simple benchmarks for the multiprocessing package
#
-import time, sys, multiprocessing, threading, Queue, gc
+import time, sys, multiprocessing, threading, queue, gc
if sys.platform == 'win32':
_timer = time.clock
@@ -20,7 +20,7 @@
c.notify()
c.release()
- for i in xrange(iterations):
+ for i in range(iterations):
q.put(a)
q.put('STOP')
@@ -48,8 +48,8 @@
p.join()
- print iterations, 'objects passed through the queue in', elapsed, 'seconds'
- print 'average number/sec:', iterations/elapsed
+ print(iterations, 'objects passed through the queue in', elapsed, 'seconds')
+ print('average number/sec:', iterations/elapsed)
#### TEST_PIPESPEED
@@ -60,7 +60,7 @@
cond.notify()
cond.release()
- for i in xrange(iterations):
+ for i in range(iterations):
c.send(a)
c.send('STOP')
@@ -90,8 +90,8 @@
elapsed = _timer() - t
p.join()
- print iterations, 'objects passed through connection in',elapsed,'seconds'
- print 'average number/sec:', iterations/elapsed
+ print(iterations, 'objects passed through connection in',elapsed,'seconds')
+ print('average number/sec:', iterations/elapsed)
#### TEST_SEQSPEED
@@ -105,13 +105,13 @@
t = _timer()
- for i in xrange(iterations):
+ for i in range(iterations):
a = seq[5]
elapsed = _timer()-t
- print iterations, 'iterations in', elapsed, 'seconds'
- print 'average number/sec:', iterations/elapsed
+ print(iterations, 'iterations in', elapsed, 'seconds')
+ print('average number/sec:', iterations/elapsed)
#### TEST_LOCK
@@ -125,14 +125,14 @@
t = _timer()
- for i in xrange(iterations):
+ for i in range(iterations):
l.acquire()
l.release()
elapsed = _timer()-t
- print iterations, 'iterations in', elapsed, 'seconds'
- print 'average number/sec:', iterations/elapsed
+ print(iterations, 'iterations in', elapsed, 'seconds')
+ print('average number/sec:', iterations/elapsed)
#### TEST_CONDITION
@@ -141,7 +141,7 @@
c.acquire()
c.notify()
- for i in xrange(N):
+ for i in range(N):
c.wait()
c.notify()
@@ -162,7 +162,7 @@
t = _timer()
- for i in xrange(iterations):
+ for i in range(iterations):
c.notify()
c.wait()
@@ -171,8 +171,8 @@
c.release()
p.join()
- print iterations * 2, 'waits in', elapsed, 'seconds'
- print 'average number/sec:', iterations * 2 / elapsed
+ print(iterations * 2, 'waits in', elapsed, 'seconds')
+ print('average number/sec:', iterations * 2 / elapsed)
####
@@ -181,51 +181,51 @@
gc.disable()
- print '\n\t######## testing Queue.Queue\n'
- test_queuespeed(threading.Thread, Queue.Queue(),
+ print('\n\t######## testing Queue.Queue\n')
+ test_queuespeed(threading.Thread, queue.Queue(),
threading.Condition())
- print '\n\t######## testing multiprocessing.Queue\n'
+ print('\n\t######## testing multiprocessing.Queue\n')
test_queuespeed(multiprocessing.Process, multiprocessing.Queue(),
multiprocessing.Condition())
- print '\n\t######## testing Queue managed by server process\n'
+ print('\n\t######## testing Queue managed by server process\n')
test_queuespeed(multiprocessing.Process, manager.Queue(),
manager.Condition())
- print '\n\t######## testing multiprocessing.Pipe\n'
+ print('\n\t######## testing multiprocessing.Pipe\n')
test_pipespeed()
- print
+ print()
- print '\n\t######## testing list\n'
- test_seqspeed(range(10))
- print '\n\t######## testing list managed by server process\n'
- test_seqspeed(manager.list(range(10)))
- print '\n\t######## testing Array("i", ..., lock=False)\n'
- test_seqspeed(multiprocessing.Array('i', range(10), lock=False))
- print '\n\t######## testing Array("i", ..., lock=True)\n'
- test_seqspeed(multiprocessing.Array('i', range(10), lock=True))
+ print('\n\t######## testing list\n')
+ test_seqspeed(list(range(10)))
+ print('\n\t######## testing list managed by server process\n')
+ test_seqspeed(manager.list(list(range(10))))
+ print('\n\t######## testing Array("i", ..., lock=False)\n')
+ test_seqspeed(multiprocessing.Array('i', list(range(10)), lock=False))
+ print('\n\t######## testing Array("i", ..., lock=True)\n')
+ test_seqspeed(multiprocessing.Array('i', list(range(10)), lock=True))
- print
+ print()
- print '\n\t######## testing threading.Lock\n'
+ print('\n\t######## testing threading.Lock\n')
test_lockspeed(threading.Lock())
- print '\n\t######## testing threading.RLock\n'
+ print('\n\t######## testing threading.RLock\n')
test_lockspeed(threading.RLock())
- print '\n\t######## testing multiprocessing.Lock\n'
+ print('\n\t######## testing multiprocessing.Lock\n')
test_lockspeed(multiprocessing.Lock())
- print '\n\t######## testing multiprocessing.RLock\n'
+ print('\n\t######## testing multiprocessing.RLock\n')
test_lockspeed(multiprocessing.RLock())
- print '\n\t######## testing lock managed by server process\n'
+ print('\n\t######## testing lock managed by server process\n')
test_lockspeed(manager.Lock())
- print '\n\t######## testing rlock managed by server process\n'
+ print('\n\t######## testing rlock managed by server process\n')
test_lockspeed(manager.RLock())
- print
+ print()
- print '\n\t######## testing threading.Condition\n'
+ print('\n\t######## testing threading.Condition\n')
test_conditionspeed(threading.Thread, threading.Condition())
- print '\n\t######## testing multiprocessing.Condition\n'
+ print('\n\t######## testing multiprocessing.Condition\n')
test_conditionspeed(multiprocessing.Process, multiprocessing.Condition())
- print '\n\t######## testing condition managed by a server process\n'
+ print('\n\t######## testing condition managed by a server process\n')
test_conditionspeed(multiprocessing.Process, manager.Condition())
gc.enable()
diff --git a/Doc/includes/mp_newtype.py b/Doc/includes/mp_newtype.py
index b9edc9e..f020c93 100644
--- a/Doc/includes/mp_newtype.py
+++ b/Doc/includes/mp_newtype.py
@@ -11,15 +11,15 @@
class Foo(object):
def f(self):
- print 'you called Foo.f()'
+ print('you called Foo.f()')
def g(self):
- print 'you called Foo.g()'
+ print('you called Foo.g()')
def _h(self):
- print 'you called Foo._h()'
+ print('you called Foo._h()')
# A simple generator function
def baz():
- for i in xrange(10):
+ for i in range(10):
yield i*i
# Proxy type for generator objects
@@ -27,7 +27,7 @@
_exposed_ = ('next', '__next__')
def __iter__(self):
return self
- def next(self):
+ def __next__(self):
return self._callmethod('next')
def __next__(self):
return self._callmethod('__next__')
@@ -59,7 +59,7 @@
manager = MyManager()
manager.start()
- print '-' * 20
+ print('-' * 20)
f1 = manager.Foo1()
f1.f()
@@ -67,7 +67,7 @@
assert not hasattr(f1, '_h')
assert sorted(f1._exposed_) == sorted(['f', 'g'])
- print '-' * 20
+ print('-' * 20)
f2 = manager.Foo2()
f2.g()
@@ -75,21 +75,21 @@
assert not hasattr(f2, 'f')
assert sorted(f2._exposed_) == sorted(['g', '_h'])
- print '-' * 20
+ print('-' * 20)
it = manager.baz()
for i in it:
- print '<%d>' % i,
- print
+ print('<%d>' % i, end=' ')
+ print()
- print '-' * 20
+ print('-' * 20)
op = manager.operator()
- print 'op.add(23, 45) =', op.add(23, 45)
- print 'op.pow(2, 94) =', op.pow(2, 94)
- print 'op.getslice(range(10), 2, 6) =', op.getslice(range(10), 2, 6)
- print 'op.repeat(range(5), 3) =', op.repeat(range(5), 3)
- print 'op._exposed_ =', op._exposed_
+ print('op.add(23, 45) =', op.add(23, 45))
+ print('op.pow(2, 94) =', op.pow(2, 94))
+ print('op.getslice(range(10), 2, 6) =', op.getslice(list(range(10)), 2, 6))
+ print('op.repeat(range(5), 3) =', op.repeat(list(range(5)), 3))
+ print('op._exposed_ =', op._exposed_)
##
diff --git a/Doc/includes/mp_pool.py b/Doc/includes/mp_pool.py
index e7aaaac..c9f5815 100644
--- a/Doc/includes/mp_pool.py
+++ b/Doc/includes/mp_pool.py
@@ -43,17 +43,17 @@
#
def test():
- print 'cpu_count() = %d\n' % multiprocessing.cpu_count()
+ print('cpu_count() = %d\n' % multiprocessing.cpu_count())
#
# Create pool
#
PROCESSES = 4
- print 'Creating pool with %d processes\n' % PROCESSES
+ print('Creating pool with %d processes\n' % PROCESSES)
pool = multiprocessing.Pool(PROCESSES)
- print 'pool = %s' % pool
- print
+ print('pool = %s' % pool)
+ print()
#
# Tests
@@ -66,72 +66,72 @@
imap_it = pool.imap(calculatestar, TASKS)
imap_unordered_it = pool.imap_unordered(calculatestar, TASKS)
- print 'Ordered results using pool.apply_async():'
+ print('Ordered results using pool.apply_async():')
for r in results:
- print '\t', r.get()
- print
+ print('\t', r.get())
+ print()
- print 'Ordered results using pool.imap():'
+ print('Ordered results using pool.imap():')
for x in imap_it:
- print '\t', x
- print
+ print('\t', x)
+ print()
- print 'Unordered results using pool.imap_unordered():'
+ print('Unordered results using pool.imap_unordered():')
for x in imap_unordered_it:
- print '\t', x
- print
+ print('\t', x)
+ print()
- print 'Ordered results using pool.map() --- will block till complete:'
+ print('Ordered results using pool.map() --- will block till complete:')
for x in pool.map(calculatestar, TASKS):
- print '\t', x
- print
+ print('\t', x)
+ print()
#
# Simple benchmarks
#
N = 100000
- print 'def pow3(x): return x**3'
+ print('def pow3(x): return x**3')
t = time.time()
- A = map(pow3, xrange(N))
- print '\tmap(pow3, xrange(%d)):\n\t\t%s seconds' % \
- (N, time.time() - t)
+ A = list(map(pow3, range(N)))
+ print('\tmap(pow3, xrange(%d)):\n\t\t%s seconds' % \
+ (N, time.time() - t))
t = time.time()
- B = pool.map(pow3, xrange(N))
- print '\tpool.map(pow3, xrange(%d)):\n\t\t%s seconds' % \
- (N, time.time() - t)
+ B = pool.map(pow3, range(N))
+ print('\tpool.map(pow3, xrange(%d)):\n\t\t%s seconds' % \
+ (N, time.time() - t))
t = time.time()
- C = list(pool.imap(pow3, xrange(N), chunksize=N//8))
- print '\tlist(pool.imap(pow3, xrange(%d), chunksize=%d)):\n\t\t%s' \
- ' seconds' % (N, N//8, time.time() - t)
+ C = list(pool.imap(pow3, range(N), chunksize=N//8))
+ print('\tlist(pool.imap(pow3, xrange(%d), chunksize=%d)):\n\t\t%s' \
+ ' seconds' % (N, N//8, time.time() - t))
assert A == B == C, (len(A), len(B), len(C))
- print
+ print()
L = [None] * 1000000
- print 'def noop(x): pass'
- print 'L = [None] * 1000000'
+ print('def noop(x): pass')
+ print('L = [None] * 1000000')
t = time.time()
- A = map(noop, L)
- print '\tmap(noop, L):\n\t\t%s seconds' % \
- (time.time() - t)
+ A = list(map(noop, L))
+ print('\tmap(noop, L):\n\t\t%s seconds' % \
+ (time.time() - t))
t = time.time()
B = pool.map(noop, L)
- print '\tpool.map(noop, L):\n\t\t%s seconds' % \
- (time.time() - t)
+ print('\tpool.map(noop, L):\n\t\t%s seconds' % \
+ (time.time() - t))
t = time.time()
C = list(pool.imap(noop, L, chunksize=len(L)//8))
- print '\tlist(pool.imap(noop, L, chunksize=%d)):\n\t\t%s seconds' % \
- (len(L)//8, time.time() - t)
+ print('\tlist(pool.imap(noop, L, chunksize=%d)):\n\t\t%s seconds' % \
+ (len(L)//8, time.time() - t))
assert A == B == C, (len(A), len(B), len(C))
- print
+ print()
del A, B, C, L
@@ -139,33 +139,33 @@
# Test error handling
#
- print 'Testing error handling:'
+ print('Testing error handling:')
try:
- print pool.apply(f, (5,))
+ print(pool.apply(f, (5,)))
except ZeroDivisionError:
- print '\tGot ZeroDivisionError as expected from pool.apply()'
+ print('\tGot ZeroDivisionError as expected from pool.apply()')
else:
- raise AssertionError, 'expected ZeroDivisionError'
+ raise AssertionError('expected ZeroDivisionError')
try:
- print pool.map(f, range(10))
+ print(pool.map(f, list(range(10))))
except ZeroDivisionError:
- print '\tGot ZeroDivisionError as expected from pool.map()'
+ print('\tGot ZeroDivisionError as expected from pool.map()')
else:
- raise AssertionError, 'expected ZeroDivisionError'
+ raise AssertionError('expected ZeroDivisionError')
try:
- print list(pool.imap(f, range(10)))
+ print(list(pool.imap(f, list(range(10)))))
except ZeroDivisionError:
- print '\tGot ZeroDivisionError as expected from list(pool.imap())'
+ print('\tGot ZeroDivisionError as expected from list(pool.imap())')
else:
- raise AssertionError, 'expected ZeroDivisionError'
+ raise AssertionError('expected ZeroDivisionError')
- it = pool.imap(f, range(10))
+ it = pool.imap(f, list(range(10)))
for i in range(10):
try:
- x = it.next()
+ x = next(it)
except ZeroDivisionError:
if i == 5:
pass
@@ -173,17 +173,17 @@
break
else:
if i == 5:
- raise AssertionError, 'expected ZeroDivisionError'
+ raise AssertionError('expected ZeroDivisionError')
assert i == 9
- print '\tGot ZeroDivisionError as expected from IMapIterator.next()'
- print
+ print('\tGot ZeroDivisionError as expected from IMapIterator.next()')
+ print()
#
# Testing timeouts
#
- print 'Testing ApplyResult.get() with timeout:',
+ print('Testing ApplyResult.get() with timeout:', end=' ')
res = pool.apply_async(calculate, TASKS[0])
while 1:
sys.stdout.flush()
@@ -192,10 +192,10 @@
break
except multiprocessing.TimeoutError:
sys.stdout.write('.')
- print
- print
+ print()
+ print()
- print 'Testing IMapIterator.next() with timeout:',
+ print('Testing IMapIterator.next() with timeout:', end=' ')
it = pool.imap(calculatestar, TASKS)
while 1:
sys.stdout.flush()
@@ -205,14 +205,14 @@
break
except multiprocessing.TimeoutError:
sys.stdout.write('.')
- print
- print
+ print()
+ print()
#
# Testing callback
#
- print 'Testing callback:'
+ print('Testing callback:')
A = []
B = [56, 0, 1, 8, 27, 64, 125, 216, 343, 512, 729]
@@ -220,13 +220,13 @@
r = pool.apply_async(mul, (7, 8), callback=A.append)
r.wait()
- r = pool.map_async(pow3, range(10), callback=A.extend)
+ r = pool.map_async(pow3, list(range(10)), callback=A.extend)
r.wait()
if A == B:
- print '\tcallbacks succeeded\n'
+ print('\tcallbacks succeeded\n')
else:
- print '\t*** callbacks failed\n\t\t%s != %s\n' % (A, B)
+ print('\t*** callbacks failed\n\t\t%s != %s\n' % (A, B))
#
# Check there are no outstanding tasks
@@ -238,7 +238,7 @@
# Check close() methods
#
- print 'Testing close():'
+ print('Testing close():')
for worker in pool._pool:
assert worker.is_alive()
@@ -252,13 +252,13 @@
for worker in pool._pool:
assert not worker.is_alive()
- print '\tclose() succeeded\n'
+ print('\tclose() succeeded\n')
#
# Check terminate() method
#
- print 'Testing terminate():'
+ print('Testing terminate():')
pool = multiprocessing.Pool(2)
DELTA = 0.1
@@ -270,13 +270,13 @@
for worker in pool._pool:
assert not worker.is_alive()
- print '\tterminate() succeeded\n'
+ print('\tterminate() succeeded\n')
#
# Check garbage collection
#
- print 'Testing garbage collection:'
+ print('Testing garbage collection:')
pool = multiprocessing.Pool(2)
DELTA = 0.1
@@ -291,7 +291,7 @@
for worker in processes:
assert not worker.is_alive()
- print '\tgarbage collection succeeded\n'
+ print('\tgarbage collection succeeded\n')
if __name__ == '__main__':
@@ -300,12 +300,12 @@
assert len(sys.argv) in (1, 2)
if len(sys.argv) == 1 or sys.argv[1] == 'processes':
- print ' Using processes '.center(79, '-')
+ print(' Using processes '.center(79, '-'))
elif sys.argv[1] == 'threads':
- print ' Using threads '.center(79, '-')
+ print(' Using threads '.center(79, '-'))
import multiprocessing.dummy as multiprocessing
else:
- print 'Usage:\n\t%s [processes | threads]' % sys.argv[0]
+ print('Usage:\n\t%s [processes | threads]' % sys.argv[0])
raise SystemExit(2)
test()
diff --git a/Doc/includes/mp_synchronize.py b/Doc/includes/mp_synchronize.py
index ddcd338..2939fc6 100644
--- a/Doc/includes/mp_synchronize.py
+++ b/Doc/includes/mp_synchronize.py
@@ -3,7 +3,7 @@
#
import time, sys, random
-from Queue import Empty
+from queue import Empty
import multiprocessing # may get overwritten
@@ -15,7 +15,7 @@
time.sleep(random.random()*4)
mutex.acquire()
- print '\n\t\t\t' + str(multiprocessing.current_process()) + ' has finished'
+ print('\n\t\t\t' + str(multiprocessing.current_process()) + ' has finished')
running.value -= 1
mutex.release()
@@ -31,12 +31,12 @@
while running.value > 0:
time.sleep(0.08)
mutex.acquire()
- print running.value,
+ print(running.value, end=' ')
sys.stdout.flush()
mutex.release()
- print
- print 'No more running processes'
+ print()
+ print('No more running processes')
#### TEST_QUEUE
@@ -57,22 +57,22 @@
while o != 'STOP':
try:
o = q.get(timeout=0.3)
- print o,
+ print(o, end=' ')
sys.stdout.flush()
except Empty:
- print 'TIMEOUT'
+ print('TIMEOUT')
- print
+ print()
#### TEST_CONDITION
def condition_func(cond):
cond.acquire()
- print '\t' + str(cond)
+ print('\t' + str(cond))
time.sleep(2)
- print '\tchild is notifying'
- print '\t' + str(cond)
+ print('\tchild is notifying')
+ print('\t' + str(cond))
cond.notify()
cond.release()
@@ -80,26 +80,26 @@
cond = multiprocessing.Condition()
p = multiprocessing.Process(target=condition_func, args=(cond,))
- print cond
+ print(cond)
cond.acquire()
- print cond
+ print(cond)
cond.acquire()
- print cond
+ print(cond)
p.start()
- print 'main is waiting'
+ print('main is waiting')
cond.wait()
- print 'main has woken up'
+ print('main has woken up')
- print cond
+ print(cond)
cond.release()
- print cond
+ print(cond)
cond.release()
p.join()
- print cond
+ print(cond)
#### TEST_SEMAPHORE
@@ -109,7 +109,7 @@
mutex.acquire()
running.value += 1
- print running.value, 'tasks are running'
+ print(running.value, 'tasks are running')
mutex.release()
random.seed()
@@ -117,7 +117,7 @@
mutex.acquire()
running.value -= 1
- print '%s has finished' % multiprocessing.current_process()
+ print('%s has finished' % multiprocessing.current_process())
mutex.release()
sema.release()
@@ -143,30 +143,30 @@
#### TEST_JOIN_TIMEOUT
def join_timeout_func():
- print '\tchild sleeping'
+ print('\tchild sleeping')
time.sleep(5.5)
- print '\n\tchild terminating'
+ print('\n\tchild terminating')
def test_join_timeout():
p = multiprocessing.Process(target=join_timeout_func)
p.start()
- print 'waiting for process to finish'
+ print('waiting for process to finish')
while 1:
p.join(timeout=1)
if not p.is_alive():
break
- print '.',
+ print('.', end=' ')
sys.stdout.flush()
#### TEST_EVENT
def event_func(event):
- print '\t%r is waiting' % multiprocessing.current_process()
+ print('\t%r is waiting' % multiprocessing.current_process())
event.wait()
- print '\t%r has woken up' % multiprocessing.current_process()
+ print('\t%r has woken up' % multiprocessing.current_process())
def test_event():
event = multiprocessing.Event()
@@ -177,10 +177,10 @@
for p in processes:
p.start()
- print 'main is sleeping'
+ print('main is sleeping')
time.sleep(2)
- print 'main is setting event'
+ print('main is setting event')
event.set()
for p in processes:
@@ -200,7 +200,7 @@
sa = list(shared_arrays[i][:])
assert a == sa
- print 'Tests passed'
+ print('Tests passed')
def test_sharedvalues():
values = [
@@ -209,9 +209,9 @@
('d', 1.25)
]
arrays = [
- ('i', range(100)),
+ ('i', list(range(100))),
('d', [0.25 * i for i in range(100)]),
- ('H', range(1000))
+ ('H', list(range(1000)))
]
shared_values = [multiprocessing.Value(id, v) for id, v in values]
@@ -238,15 +238,15 @@
test_semaphore, test_join_timeout, test_event,
test_sharedvalues ]:
- print '\n\t######## %s\n' % func.__name__
+ print('\n\t######## %s\n' % func.__name__)
func()
ignore = multiprocessing.active_children() # cleanup any old processes
if hasattr(multiprocessing, '_debug_info'):
info = multiprocessing._debug_info()
if info:
- print info
- raise ValueError, 'there should be no positive refcounts left'
+ print(info)
+ raise ValueError('there should be no positive refcounts left')
if __name__ == '__main__':
@@ -255,19 +255,19 @@
assert len(sys.argv) in (1, 2)
if len(sys.argv) == 1 or sys.argv[1] == 'processes':
- print ' Using processes '.center(79, '-')
+ print(' Using processes '.center(79, '-'))
namespace = multiprocessing
elif sys.argv[1] == 'manager':
- print ' Using processes and a manager '.center(79, '-')
+ print(' Using processes and a manager '.center(79, '-'))
namespace = multiprocessing.Manager()
namespace.Process = multiprocessing.Process
namespace.current_process = multiprocessing.current_process
namespace.active_children = multiprocessing.active_children
elif sys.argv[1] == 'threads':
- print ' Using threads '.center(79, '-')
+ print(' Using threads '.center(79, '-'))
import multiprocessing.dummy as namespace
else:
- print 'Usage:\n\t%s [processes | manager | threads]' % sys.argv[0]
- raise SystemExit, 2
+ print('Usage:\n\t%s [processes | manager | threads]' % sys.argv[0])
+ raise SystemExit(2)
test(namespace)
diff --git a/Doc/includes/mp_webserver.py b/Doc/includes/mp_webserver.py
index 4943f5d..b0f001d 100644
--- a/Doc/includes/mp_webserver.py
+++ b/Doc/includes/mp_webserver.py
@@ -13,8 +13,8 @@
import sys
from multiprocessing import Process, current_process, freeze_support
-from BaseHTTPServer import HTTPServer
-from SimpleHTTPServer import SimpleHTTPRequestHandler
+from http.server import HTTPServer
+from http.server import SimpleHTTPRequestHandler
if sys.platform == 'win32':
import multiprocessing.reduction # make sockets pickable/inheritable
@@ -54,9 +54,9 @@
ADDRESS = ('localhost', 8000)
NUMBER_OF_PROCESSES = 4
- print 'Serving at http://%s:%d using %d worker processes' % \
- (ADDRESS[0], ADDRESS[1], NUMBER_OF_PROCESSES)
- print 'To exit press Ctrl-' + ['C', 'Break'][sys.platform=='win32']
+ print('Serving at http://%s:%d using %d worker processes' % \
+ (ADDRESS[0], ADDRESS[1], NUMBER_OF_PROCESSES))
+ print('To exit press Ctrl-' + ['C', 'Break'][sys.platform=='win32'])
os.chdir(DIR)
runpool(ADDRESS, NUMBER_OF_PROCESSES)
diff --git a/Doc/includes/mp_workers.py b/Doc/includes/mp_workers.py
index 07e4cdd..47dfb54 100644
--- a/Doc/includes/mp_workers.py
+++ b/Doc/includes/mp_workers.py
@@ -65,9 +65,9 @@
Process(target=worker, args=(task_queue, done_queue)).start()
# Get and print results
- print 'Unordered results:'
+ print('Unordered results:')
for i in range(len(TASKS1)):
- print '\t', done_queue.get()
+ print('\t', done_queue.get())
# Add more tasks using `put()`
for task in TASKS2:
@@ -75,7 +75,7 @@
# Get and print some more results
for i in range(len(TASKS2)):
- print '\t', done_queue.get()
+ print('\t', done_queue.get())
# Tell child processes to stop
for i in range(NUMBER_OF_PROCESSES):