🎨 Fix types for lifespan, upgrade Starlette to 0.26.1 (#9245)

This commit is contained in:
Sebastián Ramírez 2023-03-14 03:19:04 +01:00 committed by GitHub
parent 392ffaae43
commit 25aabe05ce
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 9 additions and 4 deletions

View File

@ -9,6 +9,7 @@ from typing import (
Optional, Optional,
Sequence, Sequence,
Type, Type,
TypeVar,
Union, Union,
) )
@ -43,10 +44,12 @@ from starlette.responses import HTMLResponse, JSONResponse, Response
from starlette.routing import BaseRoute from starlette.routing import BaseRoute
from starlette.types import ASGIApp, Lifespan, Receive, Scope, Send from starlette.types import ASGIApp, Lifespan, Receive, Scope, Send
AppType = TypeVar("AppType", bound="FastAPI")
class FastAPI(Starlette): class FastAPI(Starlette):
def __init__( def __init__(
self, self: AppType,
*, *,
debug: bool = False, debug: bool = False,
routes: Optional[List[BaseRoute]] = None, routes: Optional[List[BaseRoute]] = None,
@ -71,7 +74,7 @@ class FastAPI(Starlette):
] = None, ] = None,
on_startup: Optional[Sequence[Callable[[], Any]]] = None, on_startup: Optional[Sequence[Callable[[], Any]]] = None,
on_shutdown: Optional[Sequence[Callable[[], Any]]] = None, on_shutdown: Optional[Sequence[Callable[[], Any]]] = None,
lifespan: Optional[Lifespan] = None, lifespan: Optional[Lifespan[AppType]] = None,
terms_of_service: Optional[str] = None, terms_of_service: Optional[str] = None,
contact: Optional[Dict[str, Union[str, Any]]] = None, contact: Optional[Dict[str, Union[str, Any]]] = None,
license_info: Optional[Dict[str, Union[str, Any]]] = None, license_info: Optional[Dict[str, Union[str, Any]]] = None,

View File

@ -492,7 +492,9 @@ class APIRouter(routing.Router):
route_class: Type[APIRoute] = APIRoute, route_class: Type[APIRoute] = APIRoute,
on_startup: Optional[Sequence[Callable[[], Any]]] = None, on_startup: Optional[Sequence[Callable[[], Any]]] = None,
on_shutdown: Optional[Sequence[Callable[[], Any]]] = None, on_shutdown: Optional[Sequence[Callable[[], Any]]] = None,
lifespan: Optional[Lifespan] = None, # the generic to Lifespan[AppType] is the type of the top level application
# which the router cannot know statically, so we use typing.Any
lifespan: Optional[Lifespan[Any]] = None,
deprecated: Optional[bool] = None, deprecated: Optional[bool] = None,
include_in_schema: bool = True, include_in_schema: bool = True,
generate_unique_id_function: Callable[[APIRoute], str] = Default( generate_unique_id_function: Callable[[APIRoute], str] = Default(

View File

@ -41,7 +41,7 @@ classifiers = [
"Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP",
] ]
dependencies = [ dependencies = [
"starlette>=0.26.0,<0.27.0", "starlette>=0.26.1,<0.27.0",
"pydantic >=1.6.2,!=1.7,!=1.7.1,!=1.7.2,!=1.7.3,!=1.8,!=1.8.1,<2.0.0", "pydantic >=1.6.2,!=1.7,!=1.7.1,!=1.7.2,!=1.7.3,!=1.8,!=1.8.1,<2.0.0",
] ]
dynamic = ["version"] dynamic = ["version"]