ch20 cleanup and f-strings

This commit is contained in:
Miroslav Šedivý 2021-02-13 19:35:34 +01:00
parent c5114a5679
commit 1a0da424e2
14 changed files with 35 additions and 37 deletions

View File

@ -2,7 +2,6 @@
import math
PRIME_FIXTURE = [
(2, True),
(142702110479723, True),

View File

@ -6,11 +6,11 @@ can be faster than sequential code for CPU-intensive work.
"""
# tag::PRIMES_PROC_TOP[]
import sys
from time import perf_counter
from typing import NamedTuple
from multiprocessing import Process, SimpleQueue, cpu_count # <1>
from multiprocessing import queues # <2>
import sys
from primes import is_prime, NUMBERS
@ -60,8 +60,8 @@ def main() -> None:
if jobs.empty(): # <9>
break
time = perf_counter() - t0
print('Total time:', f'{time:0.2f}s')
elapsed = perf_counter() - t0
print(f'Total time: {elapsed:.2f}s')
if __name__ == '__main__':
main()

View File

@ -1,6 +1,6 @@
# tag::PRIMES_PROC_TOP[]
from time import perf_counter
from typing import Tuple, List, NamedTuple
from typing import List, NamedTuple
from multiprocessing import Process, SimpleQueue # <1>
from primes import is_prime, NUMBERS
@ -34,8 +34,8 @@ def main() -> None:
label = 'P' if prime else ' '
print(f'{n:16} {label} {elapsed:9.6f}s')
time = perf_counter() - t0
print('Total time:', f'{time:0.2f}s')
elapsed = perf_counter() - t0
print(f'Total time: {elapsed:.2f}s')
if __name__ == '__main__':

View File

@ -28,7 +28,7 @@ def main() -> None:
print(f'{n:16} {label} {elapsed:9.6f}s')
elapsed = perf_counter() - t0 # <4>
print('Total time:', f'{elapsed:0.2f}s')
print(f'Total time: {elapsed:.2f}s')
if __name__ == '__main__':
main()

View File

@ -24,7 +24,7 @@ async def check(n: int) -> int:
async def supervisor(n: int) -> int:
spinner = asyncio.create_task(spin('thinking!')) # <1>
print('spinner object:', spinner) # <2>
print(f'spinner object: {spinner}') # <2>
result = await check(n) # <3>
spinner.cancel() # <5>
return result

View File

@ -43,7 +43,7 @@ async def check(n: int) -> int:
async def supervisor(n: int) -> int:
spinner = asyncio.create_task(spin('thinking!')) # <1>
print('spinner object:', spinner) # <2>
print(f'spinner object: {spinner}') # <2>
result = await check(n) # <3>
spinner.cancel() # <5>
return result

View File

@ -4,9 +4,9 @@
# multiprocessing example in the python-list:
# https://mail.python.org/pipermail/python-list/2009-February/675659.html
import itertools
from multiprocessing import Process, Event
from multiprocessing import synchronize
import itertools
from primes import is_prime
@ -26,7 +26,7 @@ def supervisor(n: int) -> int: # <1>
done = Event() # <2>
spinner = Process(target=spin,
args=('thinking!', done)) # <3>
print('spinner object:', spinner) # <4>
print(f'spinner object: {spinner}') # <4>
spinner.start() # <5>
result = check(n) # <6>
done.set() # <7>

View File

@ -4,8 +4,8 @@
# multiprocessing example in the python-list:
# https://mail.python.org/pipermail/python-list/2009-February/675659.html
from threading import Thread, Event
import itertools
from threading import Thread, Event
from primes import is_prime
@ -25,7 +25,7 @@ def supervisor(n: int) -> int: # <1>
done = Event() # <2>
spinner = Thread(target=spin,
args=('thinking!', done)) # <3>
print('spinner object:', spinner) # <4>
print(f'spinner object: {spinner}') # <4>
spinner.start() # <5>
result = check(n) # <6>
done.set() # <7>

View File

@ -5,12 +5,12 @@ threads.py: shows that Python threads are slower than
sequential code for CPU-intensive work.
"""
import os
import sys
from queue import SimpleQueue
from time import perf_counter
from typing import NamedTuple
from threading import Thread
from queue import SimpleQueue
import sys
import os
from primes import is_prime, NUMBERS
@ -58,8 +58,8 @@ def main() -> None:
if jobs.empty(): # <8>
break
time = perf_counter() - t0
print('Total time:', f'{time:0.2f}s')
elapsed = perf_counter() - t0
print(f'Total time: {elapsed:.2f}s')
if __name__ == '__main__':
main()

View File

@ -1,7 +1,7 @@
from time import perf_counter
from typing import List, NamedTuple
from threading import Thread
from queue import SimpleQueue
from time import perf_counter
from threading import Thread
from typing import List, NamedTuple
from primes import is_prime, NUMBERS
@ -32,8 +32,8 @@ def main() -> None:
label = 'P' if prime else ' '
print(f'{n:16} {label} {elapsed:9.6f}s')
time = perf_counter() - t0
print('Total time:', f'{time:0.2f}s')
elapsed = perf_counter() - t0
print(f'Total time: {elapsed:.2f}s')
if __name__ == '__main__':
main()

View File

@ -27,11 +27,11 @@ async def slow() -> int:
# tag::SPINNER_ASYNC_START[]
def main() -> None: # <1>
result = asyncio.run(supervisor()) # <2>
print('Answer:', result)
print(f'Answer: {result}')
async def supervisor() -> int: # <3>
spinner = asyncio.create_task(spin('thinking!')) # <4>
print('spinner object:', spinner) # <5>
print(f'spinner object: {spinner}') # <5>
result = await slow() # <6>
spinner.cancel() # <7>
return result

View File

@ -25,7 +25,7 @@ async def slow() -> int:
async def supervisor() -> int:
spinner = asyncio.create_task(spin('thinking!')) # <1>
print('spinner object:', spinner) # <2>
print(f'spinner object: {spinner}') # <2>
result = await slow() # <3>
spinner.cancel() # <5>
return result
@ -33,7 +33,7 @@ async def supervisor() -> int:
def main() -> None:
result = asyncio.run(supervisor())
print('Answer:', result)
print(f'Answer: {result}')
if __name__ == '__main__':
main()

View File

@ -5,10 +5,10 @@
# https://mail.python.org/pipermail/python-list/2009-February/675659.html
# tag::SPINNER_PROC_IMPORTS[]
from multiprocessing import Process, Event # <1>
from multiprocessing import synchronize # <2>
import itertools
import time
from multiprocessing import Process, Event # <1>
from multiprocessing import synchronize # <2>
def spin(msg: str, done: synchronize.Event) -> None: # <3>
# end::SPINNER_PROC_IMPORTS[]
@ -29,7 +29,7 @@ def supervisor() -> int:
done = Event()
spinner = Process(target=spin, # <4>
args=('thinking!', done))
print('spinner object:', spinner) # <5>
print(f'spinner object: {spinner}') # <5>
spinner.start()
result = slow()
done.set()
@ -39,7 +39,7 @@ def supervisor() -> int:
def main() -> None:
result = supervisor()
print('Answer:', result)
print(f'Answer: {result}')
if __name__ == '__main__':

View File

@ -5,9 +5,9 @@
# https://mail.python.org/pipermail/python-list/2009-February/675659.html
# tag::SPINNER_THREAD_TOP[]
from threading import Thread, Event
import itertools
import time
from threading import Thread, Event
def spin(msg: str, done: Event) -> None: # <1>
for char in itertools.cycle(r'\|/-'): # <2>
@ -26,9 +26,8 @@ def slow() -> int:
# tag::SPINNER_THREAD_REST[]
def supervisor() -> int: # <1>
done = Event() # <2>
spinner = Thread(target=spin,
args=('thinking!', done)) # <3>
print('spinner object:', spinner) # <4>
spinner = Thread(target=spin, args=('thinking!', done)) # <3>
print(f'spinner object: {spinner}') # <4>
spinner.start() # <5>
result = slow() # <6>
done.set() # <7>
@ -37,7 +36,7 @@ def supervisor() -> int: # <1>
def main() -> None:
result = supervisor() # <9>
print('Answer:', result)
print(f'Answer: {result}')
if __name__ == '__main__':
main()