Browse Source

🎨 Add newly required type annotations for mypy (#2882)

* ⬆️ Upgrade mypy

* 🎨 Add extra type annotations, now required by mypy
pull/2887/head
Sebastián Ramírez 4 years ago
committed by GitHub
parent
commit
4d208b2b90
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      fastapi/dependencies/utils.py
  2. 8
      fastapi/exceptions.py
  3. 2
      pyproject.toml

2
fastapi/dependencies/utils.py

@ -752,7 +752,7 @@ def get_body_field(*, dependant: Dependant, name: str) -> Optional[ModelField]:
for param in flat_dependant.body_params:
setattr(param.field_info, "embed", True)
model_name = "Body_" + name
BodyModel = create_model(model_name)
BodyModel: Type[BaseModel] = create_model(model_name)
for f in flat_dependant.body_params:
BodyModel.__fields__[f.name] = get_schema_compatible_field(field=f)
required = any(True for f in flat_dependant.body_params if f.required)

8
fastapi/exceptions.py

@ -1,6 +1,6 @@
from typing import Any, Dict, Optional, Sequence
from typing import Any, Dict, Optional, Sequence, Type
from pydantic import ValidationError, create_model
from pydantic import BaseModel, ValidationError, create_model
from pydantic.error_wrappers import ErrorList
from starlette.exceptions import HTTPException as StarletteHTTPException
@ -16,8 +16,8 @@ class HTTPException(StarletteHTTPException):
self.headers = headers
RequestErrorModel = create_model("Request")
WebSocketErrorModel = create_model("WebSocket")
RequestErrorModel: Type[BaseModel] = create_model("Request")
WebSocketErrorModel: Type[BaseModel] = create_model("WebSocket")
class FastAPIError(RuntimeError):

2
pyproject.toml

@ -46,7 +46,7 @@ test = [
"pytest ==5.4.3",
"pytest-cov ==2.10.0",
"pytest-asyncio >=0.14.0,<0.15.0",
"mypy ==0.790",
"mypy ==0.812",
"flake8 >=3.8.3,<4.0.0",
"black ==20.8b1",
"isort >=5.0.6,<6.0.0",

Loading…
Cancel
Save