Browse Source

♻️ Simplify Pydantic v2/v1 code

pull/14857/head
Sebastián Ramírez 5 months ago
parent
commit
bac5b756f2
  1. 1
      fastapi/_compat/__init__.py
  2. 5
      fastapi/_compat/v2.py
  3. 8
      fastapi/openapi/utils.py

1
fastapi/_compat/__init__.py

@ -25,7 +25,6 @@ from .v2 import copy_field_info as copy_field_info
from .v2 import create_body_model as create_body_model
from .v2 import evaluate_forwardref as evaluate_forwardref
from .v2 import get_cached_model_fields as get_cached_model_fields
from .v2 import get_compat_model_name_map as get_compat_model_name_map
from .v2 import get_definitions as get_definitions
from .v2 import get_missing_field_error as get_missing_field_error
from .v2 import get_schema_from_model_field as get_schema_from_model_field

5
fastapi/_compat/v2.py

@ -499,11 +499,6 @@ def get_model_name_map(unique_models: TypeModelSet) -> dict[TypeModelOrEnum, str
return {v: k for k, v in name_model_map.items()}
def get_compat_model_name_map(fields: list[ModelField]) -> ModelNameMap:
flat_models = get_flat_models_from_fields(fields, known_models=set())
return get_model_name_map(flat_models)
def get_flat_models_from_model(
model: type["BaseModel"], known_models: Union[TypeModelSet, None] = None
) -> TypeModelSet:

8
fastapi/openapi/utils.py

@ -9,11 +9,14 @@ from fastapi import routing
from fastapi._compat import (
ModelField,
Undefined,
get_compat_model_name_map,
get_definitions,
get_schema_from_model_field,
lenient_issubclass,
)
from fastapi._compat.v2 import (
get_flat_models_from_fields,
get_model_name_map,
)
from fastapi.datastructures import DefaultPlaceholder
from fastapi.dependencies.models import Dependant
from fastapi.dependencies.utils import (
@ -512,7 +515,8 @@ def get_openapi(
webhook_paths: dict[str, dict[str, Any]] = {}
operation_ids: set[str] = set()
all_fields = get_fields_from_routes(list(routes or []) + list(webhooks or []))
model_name_map = get_compat_model_name_map(all_fields)
flat_models = get_flat_models_from_fields(all_fields, known_models=set())
model_name_map = get_model_name_map(flat_models)
field_mapping, definitions = get_definitions(
fields=all_fields,
model_name_map=model_name_map,

Loading…
Cancel
Save