from fastapi.security.base import SecurityBase
from fastapi.security.oauth2 import OAuth2, SecurityScopes
from fastapi.security.open_id_connect_url import OpenIdConnect
-from fastapi.utils import UnconstrainedConfig, get_path_param_names
-from pydantic import Schema, create_model
+from fastapi.utils import get_path_param_names
+from pydantic import BaseConfig, Schema, create_model
from pydantic.error_wrappers import ErrorWrapper
from pydantic.errors import MissingError
from pydantic.fields import Field, Required, Shape
default=None if required else default_value,
alias=alias,
required=required,
- model_config=UnconstrainedConfig,
- class_validators=[],
+ model_config=BaseConfig,
+ class_validators={},
schema=schema,
)
if schema.in_ == params.ParamTypes.path:
default=None if required else default_value,
alias=schema.alias or param.name,
required=required,
- model_config=UnconstrainedConfig,
- class_validators=[],
+ model_config=BaseConfig,
+ class_validators={},
schema=schema,
)
dependant.body_params.append(field)
ErrorWrapper(
MissingError(),
loc=(schema.in_.value, field.alias),
- config=UnconstrainedConfig,
+ config=BaseConfig,
)
)
else:
if field.required:
errors.append(
ErrorWrapper(
- MissingError(),
- loc=("body", field.alias),
- config=UnconstrainedConfig,
+ MissingError(), loc=("body", field.alias), config=BaseConfig
)
)
else:
type_=BodyModel,
default=None,
required=required,
- model_config=UnconstrainedConfig,
- class_validators=[],
+ model_config=BaseConfig,
+ class_validators={},
alias="body",
schema=BodySchema(None),
)
from fastapi.dependencies.models import Dependant
from fastapi.dependencies.utils import get_body_field, get_dependant, solve_dependencies
from fastapi.encoders import jsonable_encoder
-from fastapi.utils import UnconstrainedConfig
-from pydantic import BaseModel, Schema
+from pydantic import BaseConfig, BaseModel, Schema
from pydantic.error_wrappers import ErrorWrapper, ValidationError
from pydantic.fields import Field
from pydantic.utils import lenient_issubclass
if body_bytes:
body = await request.json()
except Exception as e:
- logging.error("Error getting request body", e)
+ logging.error(f"Error getting request body: {e}")
raise HTTPException(
status_code=400, detail="There was an error parsing the body"
)
self.response_field: Optional[Field] = Field(
name=response_name,
type_=self.response_model,
- class_validators=[],
+ class_validators={},
default=None,
required=False,
- model_config=UnconstrainedConfig,
+ model_config=BaseConfig,
schema=Schema(None),
)
else:
class_validators=None,
default=None,
required=False,
- model_config=UnconstrainedConfig,
+ model_config=BaseConfig,
schema=Schema(None),
)
response_fields[additional_status_code] = response_field
from fastapi import routing
from fastapi.openapi.constants import REF_PREFIX
-from pydantic import BaseConfig, BaseModel
+from pydantic import BaseModel
from pydantic.fields import Field
from pydantic.schema import get_flat_models_from_fields, model_process_schema
from starlette.routing import BaseRoute
-class UnconstrainedConfig(BaseConfig):
- min_anystr_length = None
- max_anystr_length = None
-
-
def get_flat_models_from_routes(
routes: Sequence[Type[BaseRoute]]
) -> Set[Type[BaseModel]]: