resolved RESOLVED UNSUBMITTED PASS · None tool calls · 0 s · fastapi/fastapi
(not found in data/tasks.jsonl)
| # | Tool | Arguments | Result |
|---|---|---|---|
| No trace captured. | |||
--- a/fastapi/_compat/v2.py
+++ b/fastapi/_compat/v2.py
@@ -171,6 +171,13 @@ def _get_model_config(model: BaseModel) -> Any:
return model.model_config
+def _has_computed_fields(field: ModelField) -> bool:
+ computed_fields = field._type_adapter.core_schema.get("schema", {}).get(
+ "computed_fields", []
+ )
+ return len(computed_fields) > 0
+
+
def get_schema_from_model_field(
*,
field: ModelField,
@@ -180,12 +187,9 @@ def get_schema_from_model_field(
],
separate_input_output_schemas: bool = True,
) -> Dict[str, Any]:
- computed_fields = field._type_adapter.core_schema.get("schema", {}).get(
- "computed_fields", []
- )
override_mode: Union[Literal["validation"], None] = (
None
- if (separate_input_output_schemas or len(computed_fields) > 0)
+ if (separate_input_output_schemas or _has_computed_fields(field))
else "validation"
)
# This expects that GenerateJsonSchema was already used to generate the definitions
@@ -208,15 +212,7 @@ def get_definitions(
Dict[Tuple[ModelField, Literal["validation", "serialization"]], JsonSchemaValue],
Dict[str, Dict[str, Any]],
]:
- has_computed_fields: bool = any(
- field._type_adapter.core_schema.get("schema", {}).get("computed_fields", [])
- for field in fields
- )
-
schema_generator = GenerateJsonSchema(ref_template=REF_TEMPLATE)
- override_mode: Union[Literal["validation"], None] = (
- None if (separate_input_output_schemas or has_computed_fields) else "validation"
- )
validation_fields = [field for field in fields if field.mode == "validation"]
serialization_fields = [field for field in fields if field.mode == "serialization"]
flat_validation_models = get_flat_models_from_fields(
@@ -246,9 +242,16 @@ def get_definitions(
unique_flat_model_fields = {
f for f in flat_model_fields if f.type_ not in input_types
}
-
inputs = [
- (field, override_mode or field.mode, field._type_adapter.core_schema)
+ (
+ field,
+ (
+ field.mode
+ if (separate_input_output_schemas or _has_computed_fields(field))
+ else "validation"
+ ),
+ field._type_adapter.core_schema,
+ )
for field in list(fields) + list(unique_flat_model_fields)
]
field_mapping, definitions = schema_generator.generate_definitions(inputs=inputs)
....... [100%]
=============================== warnings summary ===============================
../../../../../../../Users/jp/repos/kaggle-gemini-coding-agent-post-training/.envs/overlays/starlette-0.50.0-py3-none-any/starlette/testclient.py:45
/Users/jp/repos/kaggle-gemini-coding-agent-post-training/.envs/overlays/starlette-0.50.0-py3-none-any/starlette/testclient.py:45: DeprecationWarning: The anyio.abc.BlockingPortal alias is deprecated, use anyio.from_thread.BlockingPortal instead.
_PortalFactoryType = Callable[[], AbstractContextManager[anyio.abc.BlockingPortal]]
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
7 passed, 1 warning in 0.58s