3 changed files with 32 additions and 74 deletions
@ -1,59 +0,0 @@ |
|||||
from functools import lru_cache |
|
||||
from typing import ( |
|
||||
Any, |
|
||||
) |
|
||||
|
|
||||
from fastapi.types import ModelNameMap |
|
||||
from pydantic import BaseModel |
|
||||
from typing_extensions import Literal |
|
||||
|
|
||||
from . import v2 |
|
||||
from .v2 import BaseConfig as BaseConfig |
|
||||
from .v2 import FieldInfo as FieldInfo |
|
||||
from .v2 import ModelField |
|
||||
from .v2 import PydanticSchemaGenerationError as PydanticSchemaGenerationError |
|
||||
from .v2 import RequiredParam as RequiredParam |
|
||||
from .v2 import Undefined as Undefined |
|
||||
from .v2 import UndefinedType as UndefinedType |
|
||||
from .v2 import Url as Url |
|
||||
from .v2 import Validator as Validator |
|
||||
from .v2 import evaluate_forwardref as evaluate_forwardref |
|
||||
from .v2 import get_missing_field_error as get_missing_field_error |
|
||||
from .v2 import get_model_fields as get_model_fields |
|
||||
from .v2 import ( |
|
||||
with_info_plain_validator_function as with_info_plain_validator_function, |
|
||||
) |
|
||||
|
|
||||
|
|
||||
@lru_cache |
|
||||
def get_cached_model_fields(model: type[BaseModel]) -> list[ModelField]: |
|
||||
return get_model_fields(model) # type: ignore[return-value] |
|
||||
|
|
||||
|
|
||||
def get_compat_model_name_map(fields: list[ModelField]) -> ModelNameMap: |
|
||||
all_flat_models = set() |
|
||||
|
|
||||
v2_model_fields = [field for field in fields if isinstance(field, v2.ModelField)] |
|
||||
v2_flat_models = v2.get_flat_models_from_fields(v2_model_fields, known_models=set()) |
|
||||
all_flat_models = all_flat_models.union(v2_flat_models) # type: ignore[arg-type] |
|
||||
|
|
||||
model_name_map = v2.get_model_name_map(all_flat_models) # type: ignore[arg-type] |
|
||||
return model_name_map |
|
||||
|
|
||||
|
|
||||
def get_schema_from_model_field( |
|
||||
*, |
|
||||
field: ModelField, |
|
||||
model_name_map: ModelNameMap, |
|
||||
field_mapping: dict[ |
|
||||
tuple[ModelField, Literal["validation", "serialization"]], |
|
||||
dict[str, Any], |
|
||||
], |
|
||||
separate_input_output_schemas: bool = True, |
|
||||
) -> dict[str, Any]: |
|
||||
return v2.get_schema_from_model_field( |
|
||||
field=field, # type: ignore[arg-type] |
|
||||
model_name_map=model_name_map, |
|
||||
field_mapping=field_mapping, # type: ignore[arg-type] |
|
||||
separate_input_output_schemas=separate_input_output_schemas, |
|
||||
) |
|
||||
Loading…
Reference in new issue