mirror of https://github.com/tiangolo/fastapi.git
🐛 Fix Python 3.7 specific list query handling
This commit is contained in:
parent
ccf30b5c2e
commit
60599bad99
|
|
@ -3,7 +3,7 @@ import inspect
|
||||||
from copy import deepcopy
|
from copy import deepcopy
|
||||||
from datetime import date, datetime, time, timedelta
|
from datetime import date, datetime, time, timedelta
|
||||||
from decimal import Decimal
|
from decimal import Decimal
|
||||||
from typing import Any, Callable, Dict, List, Mapping, Sequence, Set, Tuple, Type, Union
|
from typing import Any, Callable, Dict, List, Mapping, Sequence, Tuple, Type, Union
|
||||||
from uuid import UUID
|
from uuid import UUID
|
||||||
|
|
||||||
from fastapi import params
|
from fastapi import params
|
||||||
|
|
@ -107,10 +107,18 @@ def get_dependant(*, path: str, call: Callable, name: str = None) -> Dependant:
|
||||||
)
|
)
|
||||||
elif isinstance(param.default, params.Param):
|
elif isinstance(param.default, params.Param):
|
||||||
if param.annotation != param.empty:
|
if param.annotation != param.empty:
|
||||||
assert lenient_issubclass(
|
origin = getattr(param.annotation, "__origin__", None)
|
||||||
param.annotation,
|
param_all_types = param_supported_types + (list, tuple, set)
|
||||||
param_supported_types + (List, Tuple, Set, list, tuple, set),
|
if isinstance(param.default, (params.Query, params.Header)):
|
||||||
), f"Parameters for Path, Query, Header and Cookies must be of type str, int, float, bool, list, tuple or set: {param}"
|
assert lenient_issubclass(
|
||||||
|
param.annotation, param_all_types
|
||||||
|
) or lenient_issubclass(
|
||||||
|
origin, param_all_types
|
||||||
|
), f"Parameters for Query and Header must be of type str, int, float, bool, list, tuple or set: {param}"
|
||||||
|
else:
|
||||||
|
assert lenient_issubclass(
|
||||||
|
param.annotation, param_supported_types
|
||||||
|
), f"Parameters for Path and Cookies must be of type str, int, float, bool: {param}"
|
||||||
add_param_to_fields(
|
add_param_to_fields(
|
||||||
param=param, dependant=dependant, default_schema=params.Query
|
param=param, dependant=dependant, default_schema=params.Query
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -322,7 +322,7 @@ class OpenIdConnect(SecurityBase):
|
||||||
openIdConnectUrl: str
|
openIdConnectUrl: str
|
||||||
|
|
||||||
|
|
||||||
SecurityScheme = Union[APIKey, HTTPBase, HTTPBearer, OAuth2, OpenIdConnect]
|
SecurityScheme = Union[APIKey, HTTPBase, OAuth2, OpenIdConnect, HTTPBearer]
|
||||||
|
|
||||||
|
|
||||||
class Components(BaseModel):
|
class Components(BaseModel):
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue