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 1
1
* .sublime-project
2
2
* .sublime-workspace
3
+ .env *
3
4
concurrency /flags /img /* .gif
4
5
concurrency /charfinder /charfinder_index.pickle
5
6
18-asyncio /charfinder /charfinder_index.pickle
Original file line number Diff line number Diff line change
1
+ #!/usr/bin/env python3
2
+
1
3
# spinner_asyncio.py
2
4
3
5
# 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
+
1
3
# spinner_thread.py
2
4
3
5
# credits: Adapted from Michele Simionato's
You can’t perform that action at this time.
0 commit comments