mirror of https://github.com/tiangolo/fastapi.git
🎨 Fix types for lifespan, upgrade Starlette to 0.26.1 (#9245)
This commit is contained in:
parent
392ffaae43
commit
25aabe05ce
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -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(
|
||||||
|
|
|
||||||
|
|
@ -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"]
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue