File tree Expand file tree Collapse file tree 5 files changed +104
-0
lines changed
Expand file tree Collapse file tree 5 files changed +104
-0
lines changed Original file line number Diff line number Diff line change 11* .sublime-project
22* .sublime-workspace
3+ .env *
34concurrency /flags /img /* .gif
45concurrency /charfinder /charfinder_index.pickle
5618-asyncio /charfinder /charfinder_index.pickle
Original file line number Diff line number Diff line change 1+ #!/usr/bin/env python3
2+
13# spinner_asyncio.py
24
35# credits: Example by Luciano Ramalho inspired by
Original file line number Diff line number Diff line change 1+ #!/usr/bin/env python3
2+
3+ # spinner_await.py
4+
5+ # credits: Example by Luciano Ramalho inspired by
6+ # Michele Simionato's multiprocessing example in the python-list:
7+ # https://mail.python.org/pipermail/python-list/2009-February/538048.html
8+
9+ import asyncio
10+ import itertools
11+ import sys
12+
13+
14+ async def spin (msg ): # <1>
15+ write , flush = sys .stdout .write , sys .stdout .flush
16+ for char in itertools .cycle ('|/-\\ ' ):
17+ status = char + ' ' + msg
18+ write (status )
19+ flush ()
20+ write ('\x08 ' * len (status ))
21+ try :
22+ await asyncio .sleep (.1 ) # <2>
23+ except asyncio .CancelledError : # <3>
24+ break
25+ write (' ' * len (status ) + '\x08 ' * len (status ))
26+
27+
28+ async def slow_function (): # <4>
29+ # pretend waiting a long time for I/O
30+ await asyncio .sleep (3 ) # <5>
31+ return 42
32+
33+
34+ async def supervisor (): # <6>
35+ spinner = asyncio .ensure_future (spin ('thinking!' )) # <7>
36+ print ('spinner object:' , spinner ) # <8>
37+ result = await slow_function () # <9>
38+ spinner .cancel () # <10>
39+ return result
40+
41+
42+ def main ():
43+ loop = asyncio .get_event_loop () # <11>
44+ result = loop .run_until_complete (supervisor ()) # <12>
45+ loop .close ()
46+ print ('Answer:' , result )
47+
48+
49+ if __name__ == '__main__' :
50+ main ()
Original file line number Diff line number Diff line change 1+ #!/usr/bin/env python3
2+
3+ # spinner_curio.py
4+
5+ # credits: Example by Luciano Ramalho inspired by
6+ # Michele Simionato's multiprocessing example in the python-list:
7+ # https://mail.python.org/pipermail/python-list/2009-February/538048.html
8+
9+ import curio
10+
11+ import itertools
12+ import sys
13+
14+
15+ async def spin (msg ): # <1>
16+ write , flush = sys .stdout .write , sys .stdout .flush
17+ for char in itertools .cycle ('|/-\\ ' ):
18+ status = char + ' ' + msg
19+ write (status )
20+ flush ()
21+ write ('\x08 ' * len (status ))
22+ try :
23+ await curio .sleep (.1 ) # <2>
24+ except curio .CancelledError : # <3>
25+ break
26+ write (' ' * len (status ) + '\x08 ' * len (status ))
27+
28+
29+ async def slow_function (): # <4>
30+ # pretend waiting a long time for I/O
31+ await curio .sleep (3 ) # <5>
32+ return 42
33+
34+
35+ async def supervisor (): # <6>
36+ spinner = await curio .spawn (spin ('thinking!' )) # <7>
37+ print ('spinner object:\n ' , repr (spinner )) # <8>
38+ result = await slow_function () # <9>
39+ await spinner .cancel () # <10>
40+ return result
41+
42+
43+ def main ():
44+ result = curio .run (supervisor ) # <12>
45+ print ('Answer:' , result )
46+
47+
48+ if __name__ == '__main__' :
49+ main ()
Original file line number Diff line number Diff line change 1+ #!/usr/bin/env python3
2+
13# spinner_thread.py
24
35# credits: Adapted from Michele Simionato's
You can’t perform that action at this time.
0 commit comments