demos enhanced during workshop at Garoa
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import sys
|
||||
import asyncio
|
||||
|
||||
from charfinder import UnicodeNameIndex
|
||||
@@ -13,8 +14,8 @@ index = None # a UnicodeNameIndex instance
|
||||
@asyncio.coroutine
|
||||
def handle_queries(reader, writer):
|
||||
while True:
|
||||
writer.write(PROMPT)
|
||||
yield from writer.drain()
|
||||
writer.write(PROMPT) # can't yield from!
|
||||
yield from writer.drain() # must yield from!
|
||||
data = yield from reader.readline()
|
||||
try:
|
||||
query = data.decode().strip()
|
||||
@@ -29,15 +30,18 @@ def handle_queries(reader, writer):
|
||||
if lines:
|
||||
writer.writelines(line.encode() + CRLF for line in lines)
|
||||
writer.write(index.status(query, len(lines)).encode() + CRLF)
|
||||
|
||||
yield from writer.drain()
|
||||
print('Sent {} results'.format(len(lines)))
|
||||
|
||||
print('Close the client socket')
|
||||
writer.close()
|
||||
|
||||
|
||||
def main():
|
||||
def main(address='127.0.0.1', port=8888):
|
||||
port = int(port)
|
||||
loop = asyncio.get_event_loop()
|
||||
coro = asyncio.start_server(handle_queries, '127.0.0.1', 8888, loop=loop)
|
||||
coro = asyncio.start_server(handle_queries, address, port, loop=loop)
|
||||
server = loop.run_until_complete(coro)
|
||||
|
||||
host = server.sockets[0].getsockname()
|
||||
@@ -54,4 +58,4 @@ def main():
|
||||
|
||||
if __name__ == '__main__':
|
||||
index = UnicodeNameIndex()
|
||||
main()
|
||||
main(*sys.argv[1:])
|
||||
|
||||
Reference in New Issue
Block a user