Improve typing information.

This commit is contained in:
Tom Hacohen
2020-12-29 17:18:09 +02:00
parent 332f7e2332
commit 709bc6c1fc
7 changed files with 70 additions and 39 deletions

View File

@@ -30,6 +30,8 @@ from ..sendfile import sendfile
User = get_typed_user_model
collection_router = APIRouter(route_class=MsgpackRoute, responses=permission_responses)
item_router = APIRouter(route_class=MsgpackRoute, responses=permission_responses)
CollectionQuerySet = QuerySet[models.Collection]
CollectionItemQuerySet = QuerySet[models.CollectionItem]
class ListMulti(BaseModel):
@@ -187,7 +189,7 @@ class ItemBatchIn(BaseModel):
@sync_to_async
def collection_list_common(
queryset: QuerySet,
queryset: CollectionQuerySet,
user: UserType,
stoken: t.Optional[str],
limit: int,
@@ -249,7 +251,7 @@ async def list_multi(
data: ListMulti,
stoken: t.Optional[str] = None,
limit: int = 50,
queryset: QuerySet = Depends(get_collection_queryset),
queryset: CollectionQuerySet = Depends(get_collection_queryset),
user: UserType = Depends(get_authenticated_user),
prefetch: Prefetch = PrefetchQuery,
):
@@ -267,7 +269,7 @@ async def collection_list(
limit: int = 50,
prefetch: Prefetch = PrefetchQuery,
user: UserType = Depends(get_authenticated_user),
queryset: QuerySet = Depends(get_collection_queryset),
queryset: CollectionQuerySet = Depends(get_collection_queryset),
):
return await collection_list_common(queryset, user, stoken, limit, prefetch)
@@ -395,7 +397,7 @@ def item_create(item_model: CollectionItemIn, collection: models.Collection, val
@item_router.get("/item/{item_uid}/", response_model=CollectionItemOut, dependencies=PERMISSIONS_READ)
def item_get(
item_uid: str,
queryset: QuerySet = Depends(get_item_queryset),
queryset: CollectionItemQuerySet = Depends(get_item_queryset),
user: UserType = Depends(get_authenticated_user),
prefetch: Prefetch = PrefetchQuery,
):
@@ -405,7 +407,7 @@ def item_get(
@sync_to_async
def item_list_common(
queryset: QuerySet,
queryset: CollectionItemQuerySet,
user: UserType,
stoken: t.Optional[str],
limit: int,
@@ -422,7 +424,7 @@ def item_list_common(
@item_router.get("/item/", response_model=CollectionItemListResponse, dependencies=PERMISSIONS_READ)
async def item_list(
queryset: QuerySet = Depends(get_item_queryset),
queryset: CollectionItemQuerySet = Depends(get_item_queryset),
stoken: t.Optional[str] = None,
limit: int = 50,
prefetch: Prefetch = PrefetchQuery,
@@ -471,7 +473,7 @@ def item_revisions(
iterator: t.Optional[str] = None,
prefetch: Prefetch = PrefetchQuery,
user: UserType = Depends(get_authenticated_user),
items: QuerySet = Depends(get_item_queryset),
items: CollectionItemQuerySet = Depends(get_item_queryset),
):
item = get_object_or_404(items, uid=item_uid)
@@ -505,7 +507,7 @@ def fetch_updates(
stoken: t.Optional[str] = None,
prefetch: Prefetch = PrefetchQuery,
user: UserType = Depends(get_authenticated_user),
queryset: QuerySet = Depends(get_item_queryset),
queryset: CollectionItemQuerySet = Depends(get_item_queryset),
):
# FIXME: make configurable?
item_limit = 200