🎨 Lint and format tutorial src files

This commit is contained in:
Sebastián Ramírez 2018-12-13 21:48:37 +04:00
parent d9fbead646
commit b0d62b3410
60 changed files with 166 additions and 234 deletions

View file

@ -2,6 +2,7 @@ from fastapi import FastAPI
app = FastAPI() app = FastAPI()
@app.get("/") @app.get("/")
async def root(): async def root():
return {"message": "Hello World"} return {"message": "Hello World"}

View file

@ -2,6 +2,7 @@ from fastapi import FastAPI
app = FastAPI() app = FastAPI()
@app.get("/items/{item_id}") @app.get("/items/{item_id}")
async def read_item(item_id): async def read_item(item_id):
return {"item_id": item_id} return {"item_id": item_id}

View file

@ -2,6 +2,7 @@ from fastapi import FastAPI
app = FastAPI() app = FastAPI()
@app.get("/items/{item_id}") @app.get("/items/{item_id}")
async def read_item(item_id: int): async def read_item(item_id: int):
return {"item_id": item_id} return {"item_id": item_id}

View file

@ -1,8 +1,10 @@
from fastapi import FastAPI
from uuid import UUID from uuid import UUID
from fastapi import FastAPI
app = FastAPI() app = FastAPI()
@app.get("/items/{item_id}") @app.get("/items/{item_id}")
async def read_item(item_id: UUID): async def read_item(item_id: UUID):
return {"item_id": item_id} return {"item_id": item_id}

View file

@ -2,11 +2,8 @@ from fastapi import FastAPI
app = FastAPI() app = FastAPI()
fake_items_db = [ fake_items_db = [{"item_name": "Foo"}, {"item_name": "Bar"}, {"item_name": "Baz"}]
{"item_name": "Foo"},
{"item_name": "Bar"},
{"item_name": "Baz"},
]
@app.get("/items/") @app.get("/items/")
async def read_item(skip: int = 0, limit: int = 100): async def read_item(skip: int = 0, limit: int = 100):

View file

@ -1,8 +1,8 @@
from fastapi import FastAPI from fastapi import FastAPI
from fastapi import FastAPI
app = FastAPI() app = FastAPI()
@app.get("/items/{item_id}") @app.get("/items/{item_id}")
async def read_item(item_id: str, q: str = None): async def read_item(item_id: str, q: str = None):
if q: if q:

View file

@ -2,11 +2,14 @@ from fastapi import FastAPI
app = FastAPI() app = FastAPI()
@app.get("/items/{item_id}") @app.get("/items/{item_id}")
async def read_item(item_id: str, q: str = None, short: bool = False): async def read_item(item_id: str, q: str = None, short: bool = False):
item = {"item_id": item_id} item = {"item_id": item_id}
if q: if q:
item.update({"q": q}) item.update({"q": q})
if not short: if not short:
item.update({"description": "This is an amazing item that has a long description"}) item.update(
{"description": "This is an amazing item that has a long description"}
)
return item return item

View file

@ -2,11 +2,16 @@ from fastapi import FastAPI
app = FastAPI() app = FastAPI()
@app.get("/users/{user_id}/items/{item_id}") @app.get("/users/{user_id}/items/{item_id}")
async def read_user_item(user_id: int, item_id: str, q: str = None, short: bool = False): async def read_user_item(
user_id: int, item_id: str, q: str = None, short: bool = False
):
item = {"item_id": item_id, "owner_id": user_id} item = {"item_id": item_id, "owner_id": user_id}
if q: if q:
item.update({"q": q}) item.update({"q": q})
if not short: if not short:
item.update({"description": "This is an amazing item that has a long description"}) item.update(
{"description": "This is an amazing item that has a long description"}
)
return item return item

View file

@ -2,11 +2,16 @@ from fastapi import FastAPI
app = FastAPI() app = FastAPI()
@app.get("/users/{user_id}/items/{item_id}") @app.get("/users/{user_id}/items/{item_id}")
async def read_user_item(user_id: int, item_id: str, needy: str, q: str = None, short: bool = False): async def read_user_item(
user_id: int, item_id: str, needy: str, q: str = None, short: bool = False
):
item = {"item_id": item_id, "owner_id": user_id, "needy": needy} item = {"item_id": item_id, "owner_id": user_id, "needy": needy}
if q: if q:
item.update({"q": q}) item.update({"q": q})
if not short: if not short:
item.update({"description": "This is an amazing item that has a long description"}) item.update(
{"description": "This is an amazing item that has a long description"}
)
return item return item

View file

@ -1,6 +1,7 @@
from fastapi import FastAPI from fastapi import FastAPI
from pydantic import BaseModel from pydantic import BaseModel
class Item(BaseModel): class Item(BaseModel):
name: str name: str
description: str = None description: str = None
@ -10,6 +11,7 @@ class Item(BaseModel):
app = FastAPI() app = FastAPI()
@app.post("/items/") @app.post("/items/")
async def create_item(item: Item): async def create_item(item: Item):
return item return item

View file

@ -1,6 +1,7 @@
from fastapi import FastAPI from fastapi import FastAPI
from pydantic import BaseModel from pydantic import BaseModel
class Item(BaseModel): class Item(BaseModel):
name: str name: str
description: str = None description: str = None
@ -10,6 +11,7 @@ class Item(BaseModel):
app = FastAPI() app = FastAPI()
@app.post("/items/") @app.post("/items/")
async def create_item(item: Item): async def create_item(item: Item):
item_dict = item.dict() item_dict = item.dict()

View file

@ -1,6 +1,7 @@
from fastapi import FastAPI from fastapi import FastAPI
from pydantic import BaseModel from pydantic import BaseModel
class Item(BaseModel): class Item(BaseModel):
name: str name: str
description: str = None description: str = None
@ -10,6 +11,7 @@ class Item(BaseModel):
app = FastAPI() app = FastAPI()
@app.put("/items/{item_id}") @app.put("/items/{item_id}")
async def create_item(item_id: int, item: Item): async def create_item(item_id: int, item: Item):
return {"item_id": item_id, **item.dict()} return {"item_id": item_id, **item.dict()}

View file

@ -1,6 +1,7 @@
from fastapi import FastAPI from fastapi import FastAPI
from pydantic import BaseModel from pydantic import BaseModel
class Item(BaseModel): class Item(BaseModel):
name: str name: str
description: str = None description: str = None
@ -10,6 +11,7 @@ class Item(BaseModel):
app = FastAPI() app = FastAPI()
@app.put("/items/{item_id}") @app.put("/items/{item_id}")
async def create_item(item_id: int, item: Item, q: str = None): async def create_item(item_id: int, item: Item, q: str = None):
result = {"item_id": item_id, **item.dict()} result = {"item_id": item_id, **item.dict()}

View file

@ -4,7 +4,9 @@ app = FastAPI()
@app.get("/items/") @app.get("/items/")
async def read_items(q: str = Query(None, min_length=3, max_length=50, regex="^fixedquery$")): async def read_items(
q: str = Query(None, min_length=3, max_length=50, regex="^fixedquery$")
):
results = {"items": [{"item_id": "Foo"}, {"item_id": "Bar"}]} results = {"items": [{"item_id": "Foo"}, {"item_id": "Bar"}]}
if q: if q:
results.update({"q": q}) results.update({"q": q})

View file

@ -1,4 +1,4 @@
from fastapi import FastAPI, Query, Path from fastapi import FastAPI, Path, Query
app = FastAPI() app = FastAPI()

View file

@ -1,12 +1,11 @@
from fastapi import FastAPI, Query, Path from fastapi import FastAPI, Path
app = FastAPI() app = FastAPI()
@app.get("/items/{item_id}") @app.get("/items/{item_id}")
async def read_items( async def read_items(
q: str, q: str, item_id: int = Path(..., title="The ID of the item to get")
item_id: int = Path(..., title="The ID of the item to get"),
): ):
results = {"item_id": item_id} results = {"item_id": item_id}
if q: if q:

View file

@ -1,13 +1,11 @@
from fastapi import FastAPI, Query, Path from fastapi import FastAPI, Path
app = FastAPI() app = FastAPI()
@app.get("/items/{item_id}") @app.get("/items/{item_id}")
async def read_items( async def read_items(
*, *, item_id: int = Path(..., title="The ID of the item to get"), q: str
item_id: int = Path(..., title="The ID of the item to get"),
q: str,
): ):
results = {"item_id": item_id} results = {"item_id": item_id}
if q: if q:

View file

@ -1,13 +1,11 @@
from fastapi import FastAPI, Query, Path from fastapi import FastAPI, Path
app = FastAPI() app = FastAPI()
@app.get("/items/{item_id}") @app.get("/items/{item_id}")
async def read_items( async def read_items(
*, *, item_id: int = Path(..., title="The ID of the item to get", ge=1), q: str
item_id: int = Path(..., title="The ID of the item to get", ge=1),
q: str,
): ):
results = {"item_id": item_id} results = {"item_id": item_id}
if q: if q:

View file

@ -1,4 +1,4 @@
from fastapi import FastAPI, Query, Path from fastapi import FastAPI, Path
app = FastAPI() app = FastAPI()

View file

@ -1,4 +1,4 @@
from fastapi import FastAPI, Query, Path from fastapi import FastAPI, Path, Query
app = FastAPI() app = FastAPI()

View file

@ -1,4 +1,4 @@
from fastapi import FastAPI, Query, Path from fastapi import FastAPI, Path
from pydantic import BaseModel from pydantic import BaseModel
app = FastAPI() app = FastAPI()

View file

@ -1,4 +1,4 @@
from fastapi import FastAPI, Query, Path from fastapi import FastAPI
from pydantic import BaseModel from pydantic import BaseModel
app = FastAPI() app = FastAPI()
@ -17,11 +17,6 @@ class User(BaseModel):
@app.put("/items/{item_id}") @app.put("/items/{item_id}")
async def update_item( async def update_item(*, item_id: int, item: Item, user: User):
*,
item_id: int,
item: Item,
user: User,
):
results = {"item_id": item_id, "item": item, "user": user} results = {"item_id": item_id, "item": item, "user": user}
return results return results

View file

@ -1,4 +1,4 @@
from fastapi import FastAPI, Query, Path, Body from fastapi import Body, FastAPI
from pydantic import BaseModel from pydantic import BaseModel
app = FastAPI() app = FastAPI()
@ -18,11 +18,12 @@ class User(BaseModel):
@app.put("/items/{item_id}") @app.put("/items/{item_id}")
async def update_item( async def update_item(
*, *, item_id: int, item: Item, user: User, access_token: str = Body(...)
item_id: int,
item: Item,
user: User,
access_token: str = Body(...),
): ):
results = {"item_id": item_id, "item": item, "user": user, "access_token": access_token} results = {
"item_id": item_id,
"item": item,
"user": user,
"access_token": access_token,
}
return results return results

View file

@ -1,4 +1,4 @@
from fastapi import FastAPI, Query, Path, Body from fastapi import Body, FastAPI
from pydantic import BaseModel from pydantic import BaseModel
app = FastAPI() app = FastAPI()
@ -25,7 +25,12 @@ async def update_item(
access_token: str = Body(...), access_token: str = Body(...),
q: str = None, q: str = None,
): ):
results = {"item_id": item_id, "item": item, "user": user, "access_token": access_token} results = {
"item_id": item_id,
"item": item,
"user": user,
"access_token": access_token,
}
if q: if q:
results.update({"q": q}) results.update({"q": q})
return results return results

View file

@ -1,4 +1,4 @@
from fastapi import FastAPI, Query, Path, Body from fastapi import Body, FastAPI
from pydantic import BaseModel from pydantic import BaseModel
app = FastAPI() app = FastAPI()
@ -12,10 +12,6 @@ class Item(BaseModel):
@app.put("/items/{item_id}") @app.put("/items/{item_id}")
async def update_item( async def update_item(*, item_id: int, item: Item = Body(..., embed=True)):
*,
item_id: int,
item: Item = Body(..., embed=True),
):
results = {"item_id": item_id, "item": item} results = {"item_id": item_id, "item": item}
return results return results

View file

@ -1,4 +1,4 @@
from fastapi import FastAPI, Query, Path, Body from fastapi import Body, FastAPI
from pydantic import BaseModel, Schema from pydantic import BaseModel, Schema
app = FastAPI() app = FastAPI()
@ -12,10 +12,6 @@ class Item(BaseModel):
@app.put("/items/{item_id}") @app.put("/items/{item_id}")
async def update_item( async def update_item(*, item_id: int, item: Item = Body(..., embed=True)):
*,
item_id: int,
item: Item = Body(..., embed=True),
):
results = {"item_id": item_id, "item": item} results = {"item_id": item_id, "item": item}
return results return results

View file

@ -1,4 +1,4 @@
from fastapi import FastAPI, Query, Path, Body from fastapi import FastAPI
from pydantic import BaseModel from pydantic import BaseModel
app = FastAPI() app = FastAPI()
@ -13,10 +13,6 @@ class Item(BaseModel):
@app.put("/items/{item_id}") @app.put("/items/{item_id}")
async def update_item( async def update_item(*, item_id: int, item: Item):
*,
item_id: int,
item: Item,
):
results = {"item_id": item_id, "item": item} results = {"item_id": item_id, "item": item}
return results return results

View file

@ -1,7 +1,8 @@
from fastapi import Body, FastAPI, Path, Query
from pydantic import BaseModel
from typing import List from typing import List
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI() app = FastAPI()
@ -14,10 +15,6 @@ class Item(BaseModel):
@app.put("/items/{item_id}") @app.put("/items/{item_id}")
async def update_item( async def update_item(*, item_id: int, item: Item):
*,
item_id: int,
item: Item,
):
results = {"item_id": item_id, "item": item} results = {"item_id": item_id, "item": item}
return results return results

View file

@ -1,7 +1,8 @@
from fastapi import Body, FastAPI, Path, Query
from pydantic import BaseModel
from typing import Set from typing import Set
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI() app = FastAPI()
@ -14,10 +15,6 @@ class Item(BaseModel):
@app.put("/items/{item_id}") @app.put("/items/{item_id}")
async def update_item( async def update_item(*, item_id: int, item: Item):
*,
item_id: int,
item: Item,
):
results = {"item_id": item_id, "item": item} results = {"item_id": item_id, "item": item}
return results return results

View file

@ -1,7 +1,8 @@
from fastapi import Body, FastAPI, Path, Query
from pydantic import BaseModel
from typing import Set from typing import Set
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI() app = FastAPI()
@ -20,10 +21,6 @@ class Item(BaseModel):
@app.put("/items/{item_id}") @app.put("/items/{item_id}")
async def update_item( async def update_item(*, item_id: int, item: Item):
*,
item_id: int,
item: Item,
):
results = {"item_id": item_id, "item": item} results = {"item_id": item_id, "item": item}
return results return results

View file

@ -1,7 +1,8 @@
from fastapi import Body, FastAPI, Path, Query from typing import Set
from fastapi import FastAPI
from pydantic import BaseModel from pydantic import BaseModel
from pydantic.types import UrlStr from pydantic.types import UrlStr
from typing import Set
app = FastAPI() app = FastAPI()
@ -21,10 +22,6 @@ class Item(BaseModel):
@app.put("/items/{item_id}") @app.put("/items/{item_id}")
async def update_item( async def update_item(*, item_id: int, item: Item):
*,
item_id: int,
item: Item,
):
results = {"item_id": item_id, "item": item} results = {"item_id": item_id, "item": item}
return results return results

View file

@ -1,7 +1,8 @@
from fastapi import Body, FastAPI, Path, Query from typing import List, Set
from fastapi import FastAPI
from pydantic import BaseModel from pydantic import BaseModel
from pydantic.types import UrlStr from pydantic.types import UrlStr
from typing import Set, List
app = FastAPI() app = FastAPI()
@ -21,10 +22,6 @@ class Item(BaseModel):
@app.put("/items/{item_id}") @app.put("/items/{item_id}")
async def update_item( async def update_item(*, item_id: int, item: Item):
*,
item_id: int,
item: Item,
):
results = {"item_id": item_id, "item": item} results = {"item_id": item_id, "item": item}
return results return results

View file

@ -1,7 +1,8 @@
from fastapi import Body, FastAPI, Path, Query from typing import List, Set
from fastapi import FastAPI
from pydantic import BaseModel from pydantic import BaseModel
from pydantic.types import UrlStr from pydantic.types import UrlStr
from typing import Set, List
app = FastAPI() app = FastAPI()

View file

@ -1,7 +1,8 @@
from fastapi import Body, FastAPI, Path, Query from typing import List
from fastapi import FastAPI
from pydantic import BaseModel from pydantic import BaseModel
from pydantic.types import UrlStr from pydantic.types import UrlStr
from typing import Set, List
app = FastAPI() app = FastAPI()

View file

@ -1,7 +1,4 @@
from fastapi import FastAPI, Cookie from fastapi import Cookie, FastAPI
from pydantic import BaseModel
from pydantic.types import UrlStr
from typing import Set, List
app = FastAPI() app = FastAPI()

View file

@ -1,7 +1,4 @@
from fastapi import FastAPI, Header from fastapi import FastAPI, Header
from pydantic import BaseModel
from pydantic.types import UrlStr
from typing import Set, List
app = FastAPI() app = FastAPI()

View file

@ -1,7 +1,4 @@
from fastapi import FastAPI, Header from fastapi import FastAPI, Header
from pydantic import BaseModel
from pydantic.types import UrlStr
from typing import Set, List
app = FastAPI() app = FastAPI()

View file

@ -1,7 +1,7 @@
from fastapi import Body, FastAPI, Path, Query from typing import Set
from fastapi import FastAPI
from pydantic import BaseModel from pydantic import BaseModel
from pydantic.types import UrlStr
from typing import Set, List
app = FastAPI() app = FastAPI()

View file

@ -1,7 +1,6 @@
from fastapi import Body, FastAPI, Path, Query from fastapi import FastAPI
from pydantic import BaseModel from pydantic import BaseModel
from pydantic.types import EmailStr from pydantic.types import EmailStr
from typing import Set, List
app = FastAPI() app = FastAPI()
@ -13,7 +12,6 @@ class UserIn(BaseModel):
full_name: str = None full_name: str = None
# Don't do this in production! # Don't do this in production!
@app.post("/user/", response_model=UserIn) @app.post("/user/", response_model=UserIn)
async def create_user(*, user: UserIn): async def create_user(*, user: UserIn):

View file

@ -1,7 +1,6 @@
from fastapi import Body, FastAPI, Path, Query from fastapi import FastAPI
from pydantic import BaseModel from pydantic import BaseModel
from pydantic.types import EmailStr from pydantic.types import EmailStr
from typing import Set, List
app = FastAPI() app = FastAPI()

View file

@ -1,8 +1,6 @@
from fastapi import Body, FastAPI, Path, Query from fastapi import FastAPI
from pydantic import BaseModel from pydantic import BaseModel
from pydantic.types import EmailStr from pydantic.types import EmailStr
from typing import Set, List
from uuid import UUID, uuid4
app = FastAPI() app = FastAPI()
@ -37,6 +35,7 @@ def fake_save_user(user_in: UserIn):
print("User saved! ..not really") print("User saved! ..not really")
return user_in_db return user_in_db
@app.post("/user/", response_model=UserOut) @app.post("/user/", response_model=UserOut)
async def create_user(*, user_in: UserIn): async def create_user(*, user_in: UserIn):
user_saved = fake_save_user(user_in) user_saved = fake_save_user(user_in)

View file

@ -1,15 +1,16 @@
from fastapi import Body, FastAPI, Path, Query from fastapi import FastAPI
from pydantic import BaseModel from pydantic import BaseModel
from pydantic.types import EmailStr from pydantic.types import EmailStr
from typing import Set, List
app = FastAPI() app = FastAPI()
class UserBase(BaseModel): class UserBase(BaseModel):
username: str username: str
email: EmailStr email: EmailStr
full_name: str = None full_name: str = None
class UserIn(UserBase): class UserIn(UserBase):
password: str password: str
@ -17,6 +18,7 @@ class UserIn(UserBase):
class UserOut(UserBase): class UserOut(UserBase):
pass pass
class UserInDB(UserBase): class UserInDB(UserBase):
hashed_password: str hashed_password: str
@ -31,6 +33,7 @@ def fake_save_user(user_in: UserIn):
print("User saved! ..not really") print("User saved! ..not really")
return user_in_db return user_in_db
@app.post("/user/", response_model=UserOut) @app.post("/user/", response_model=UserOut)
async def create_user(*, user_in: UserIn): async def create_user(*, user_in: UserIn):
user_saved = fake_save_user(user_in) user_saved = fake_save_user(user_in)

View file

@ -1,7 +1,4 @@
from fastapi import Body, FastAPI, Path, Query, Form from fastapi import FastAPI, Form
from pydantic import BaseModel
from pydantic.types import EmailStr
from typing import Set, List
app = FastAPI() app = FastAPI()

View file

@ -1,7 +1,4 @@
from fastapi import Body, FastAPI, Path, Query, File from fastapi import FastAPI, File
from pydantic import BaseModel
from pydantic.types import EmailStr
from typing import Set, List
app = FastAPI() app = FastAPI()

View file

@ -1,7 +1,4 @@
from fastapi import Body, FastAPI, Path, Query, File, Form from fastapi import FastAPI, File, Form
from pydantic import BaseModel
from pydantic.types import EmailStr
from typing import Set, List
app = FastAPI() app = FastAPI()

View file

@ -1,8 +1,8 @@
from fastapi import Body, FastAPI, Path, Query from typing import Set
from starlette.status import HTTP_201_CREATED
from fastapi import FastAPI
from pydantic import BaseModel from pydantic import BaseModel
from pydantic.types import UrlStr from starlette.status import HTTP_201_CREATED
from typing import Set, List
app = FastAPI() app = FastAPI()

View file

@ -1,8 +1,7 @@
from fastapi import Body, FastAPI, Path, Query from typing import Set
from starlette.status import HTTP_201_CREATED
from fastapi import FastAPI
from pydantic import BaseModel from pydantic import BaseModel
from pydantic.types import UrlStr
from typing import Set, List
app = FastAPI() app = FastAPI()

View file

@ -1,8 +1,7 @@
from fastapi import Body, FastAPI, Path, Query from typing import Set
from starlette.status import HTTP_201_CREATED
from fastapi import FastAPI
from pydantic import BaseModel from pydantic import BaseModel
from pydantic.types import UrlStr
from typing import Set, List
app = FastAPI() app = FastAPI()

View file

@ -1,8 +1,7 @@
from fastapi import Body, FastAPI, Path, Query from typing import Set
from starlette.status import HTTP_201_CREATED
from fastapi import FastAPI
from pydantic import BaseModel from pydantic import BaseModel
from pydantic.types import UrlStr
from typing import Set, List
app = FastAPI() app = FastAPI()

View file

@ -1,8 +1,7 @@
from fastapi import Body, FastAPI, Path, Query from typing import Set
from starlette.status import HTTP_201_CREATED
from fastapi import FastAPI
from pydantic import BaseModel from pydantic import BaseModel
from pydantic.types import UrlStr
from typing import Set, List
app = FastAPI() app = FastAPI()
@ -15,7 +14,12 @@ class Item(BaseModel):
tags: Set[str] = [] tags: Set[str] = []
@app.post("/items/", response_model=Item, summary="Create an item", response_description="The created item") @app.post(
"/items/",
response_model=Item,
summary="Create an item",
response_description="The created item",
)
async def create_item(*, item: Item): async def create_item(*, item: Item):
""" """
Create an item with all the information: Create an item with all the information:

View file

@ -1,9 +1,4 @@
from typing import List, Set from fastapi import FastAPI
from fastapi import Body, FastAPI, Path, Query
from pydantic import BaseModel
from pydantic.types import UrlStr
from starlette.status import HTTP_201_CREATED
app = FastAPI() app = FastAPI()

View file

@ -1,9 +1,4 @@
from typing import List, Set from fastapi import FastAPI
from fastapi import Body, FastAPI, Path, Query
from pydantic import BaseModel
from pydantic.types import UrlStr
from starlette.status import HTTP_201_CREATED
app = FastAPI() app = FastAPI()

View file

@ -1,9 +1,4 @@
from typing import List, Set from fastapi import FastAPI
from fastapi import Body, FastAPI, Path, Query
from pydantic import BaseModel
from pydantic.types import UrlStr
from starlette.status import HTTP_201_CREATED
app = FastAPI() app = FastAPI()

View file

@ -1,9 +1,4 @@
from typing import List, Set from fastapi import FastAPI
from fastapi import Body, FastAPI, Path, Query
from pydantic import BaseModel
from pydantic.types import UrlStr
from starlette.status import HTTP_201_CREATED
from starlette.responses import UJSONResponse from starlette.responses import UJSONResponse
app = FastAPI() app = FastAPI()

View file

@ -1,9 +1,4 @@
from typing import List, Set from fastapi import FastAPI
from fastapi import Body, FastAPI, Path, Query
from pydantic import BaseModel
from pydantic.types import UrlStr
from starlette.status import HTTP_201_CREATED
from starlette.responses import HTMLResponse from starlette.responses import HTMLResponse
app = FastAPI() app = FastAPI()

View file

@ -1,10 +1,5 @@
from typing import List, Set from fastapi import Depends, FastAPI
from fastapi import Body, FastAPI, Path, Query, Depends
from pydantic import BaseModel from pydantic import BaseModel
from pydantic.types import UrlStr
from starlette.status import HTTP_201_CREATED
from starlette.responses import HTMLResponse
app = FastAPI() app = FastAPI()

View file

@ -1,10 +1,7 @@
from typing import List, Set from typing import List
from fastapi import Body, FastAPI, Path, Query, Depends, Cookie from fastapi import Cookie, Depends, FastAPI
from pydantic import BaseModel from pydantic import BaseModel
from pydantic.types import UrlStr
from starlette.status import HTTP_201_CREATED
from starlette.responses import HTMLResponse
app = FastAPI() app = FastAPI()
@ -30,6 +27,8 @@ async def get_tracked_interests(track_code: str = Cookie(None)):
@app.get("/interests/") @app.get("/interests/")
async def read_interests(tracked_interests: InterestsTracker = Depends(get_tracked_interests)): async def read_interests(
tracked_interests: InterestsTracker = Depends(get_tracked_interests)
):
response = {"interests": tracked_interests.interests} response = {"interests": tracked_interests.interests}
return response return response

View file

@ -1,11 +1,8 @@
from typing import List, Set
from fastapi import Body, FastAPI, Path, Query, Depends, Cookie
from pydantic import BaseModel
from pydantic.types import UrlStr
from starlette.status import HTTP_201_CREATED
from starlette.responses import HTMLResponse
from random import choice from random import choice
from typing import List
from fastapi import Cookie, Depends, FastAPI
from pydantic import BaseModel
app = FastAPI() app = FastAPI()
@ -21,6 +18,7 @@ fake_tracked_users_db = {
"Baz": {"track_code": "Baz", "interests": ["gaming", "virtual reality"]}, "Baz": {"track_code": "Baz", "interests": ["gaming", "virtual reality"]},
} }
async def get_tracked_interests(track_code: str = Cookie(None)): async def get_tracked_interests(track_code: str = Cookie(None)):
if track_code in fake_tracked_users_db: if track_code in fake_tracked_users_db:
track_dict = fake_tracked_users_db[track_code] track_dict = fake_tracked_users_db[track_code]
@ -28,6 +26,7 @@ async def get_tracked_interests(track_code: str = Cookie(None)):
return track return track
return None return None
class ComplexTracker: class ComplexTracker:
def __init__(self, tracker: InterestsTracker = Depends(get_tracked_interests)): def __init__(self, tracker: InterestsTracker = Depends(get_tracked_interests)):
self.tracker = tracker self.tracker = tracker
@ -39,7 +38,9 @@ class ComplexTracker:
""" """
if self.tracker.interests: if self.tracker.interests:
return choice(self.tracker.interests) return choice(self.tracker.interests)
return choice(["sports", "movies", "food", "shows", "gaming", "virtual reality"]) return choice(
["sports", "movies", "food", "shows", "gaming", "virtual reality"]
)
@app.get("/suggested-category") @app.get("/suggested-category")

View file

@ -1,17 +1,8 @@
from typing import List, Set from fastapi import FastAPI
from fastapi import Body, FastAPI, Path, Query, Depends, Cookie from sqlalchemy import Boolean, Column, Integer, String, create_engine
from pydantic import BaseModel
from pydantic.types import UrlStr
from starlette.status import HTTP_201_CREATED
from starlette.responses import HTMLResponse
from random import choice
from sqlalchemy import create_engine
from sqlalchemy.orm import scoped_session, sessionmaker
from sqlalchemy import Column, Integer, DateTime, String, Boolean, ForeignKey
from sqlalchemy.ext.declarative import declarative_base, declared_attr from sqlalchemy.ext.declarative import declarative_base, declared_attr
from sqlalchemy.orm import scoped_session, sessionmaker
# SQLAlchemy specific code, as with any other app # SQLAlchemy specific code, as with any other app
@ -22,6 +13,7 @@ SQLALCHEMY_DATABASE_URI = "postgresql://user:password@postgresserver/db"
# automatic __tablename__ attributes. So you don't have to declare them. # automatic __tablename__ attributes. So you don't have to declare them.
# So, your models will behave very similarly to, for example, Flask-SQLAlchemy # So, your models will behave very similarly to, for example, Flask-SQLAlchemy
class CustomBase: class CustomBase:
# Generate __tablename__ automatically # Generate __tablename__ automatically
@declared_attr @declared_attr
@ -49,6 +41,7 @@ db_session = scoped_session(
def get_user(username, db_session): def get_user(username, db_session):
return db_session.query(User).filter(User.id == username).first() return db_session.query(User).filter(User.id == username).first()
# FastAPI specific code # FastAPI specific code
app = FastAPI() app = FastAPI()

View file

@ -1,21 +1,12 @@
from typing import List, Set from typing import Optional
from fastapi import Body, FastAPI, Path, Query, Depends, Cookie
from pydantic import BaseModel
from pydantic.types import UrlStr
from starlette.status import HTTP_201_CREATED
from starlette.responses import HTMLResponse
from random import choice
from typing import List, Optional, Union
from fastapi import FastAPI
from pydantic import BaseModel from pydantic import BaseModel
from app.models.config import USERPROFILE_DOC_TYPE from app.models.config import USERPROFILE_DOC_TYPE
from app.models.role import RoleEnum from couchbase import LOCKMODE_WAIT
from couchbase.bucket import Bucket from couchbase.bucket import Bucket
from couchbase.cluster import Cluster, PasswordAuthenticator from couchbase.cluster import Cluster, PasswordAuthenticator
from couchbase import LOCKMODE_WAIT
def get_bucket(): def get_bucket():