From 66e46a6db65deb2fafd77b2fc0955b03d068d312 Mon Sep 17 00:00:00 2001 From: Luciano Ramalho Date: Sun, 28 Feb 2021 17:16:44 -0300 Subject: [PATCH] ch 21 and 22: updated examples --- 22-asyncio/mojifinder/web_mojifinder.py | 26 ++++++++++++------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/22-asyncio/mojifinder/web_mojifinder.py b/22-asyncio/mojifinder/web_mojifinder.py index 44ef24e..7e4ef2e 100644 --- a/22-asyncio/mojifinder/web_mojifinder.py +++ b/22-asyncio/mojifinder/web_mojifinder.py @@ -1,7 +1,3 @@ -""" -uvicorn main:app --reload -""" - import pathlib from unicodedata import name @@ -11,28 +7,30 @@ from pydantic import BaseModel from charindex import InvertedIndex -app = FastAPI( +app = FastAPI( # <1> title='Mojifinder Web', description='Search for Unicode characters by name.', ) -class CharName(BaseModel): +class CharName(BaseModel): # <2> char: str name: str -def init(app): +def init(app): # <3> app.state.index = InvertedIndex() static = pathlib.Path(__file__).parent.absolute() / 'static' with open(static / 'form.html') as fp: app.state.form = fp.read() -init(app) +init(app) # <4> -@app.get('/', response_class=HTMLResponse, include_in_schema=False) +@app.get('/search', response_model=list[CharName]) # <5> +async def search(q: str): # <6> + chars = app.state.index.search(q) + return ({'char': c, 'name': name(c)} for c in chars) # <7> + +@app.get('/', # <8> + response_class=HTMLResponse, + include_in_schema=False) def form(): return app.state.form - -@app.get('/search', response_model=list[CharName]) -async def search(q: str): - chars = app.state.index.search(q) - return [{'char': c, 'name': name(c)} for c in chars]