|
|
@ -1,5 +1,6 @@ |
|
|
import dataclasses |
|
|
import dataclasses |
|
|
import inspect |
|
|
import inspect |
|
|
|
|
|
from collections import defaultdict |
|
|
from contextlib import contextmanager |
|
|
from contextlib import contextmanager |
|
|
from copy import deepcopy |
|
|
from copy import deepcopy |
|
|
from typing import ( |
|
|
from typing import ( |
|
|
@ -17,7 +18,6 @@ from typing import ( |
|
|
Union, |
|
|
Union, |
|
|
cast, |
|
|
cast, |
|
|
) |
|
|
) |
|
|
from collections import defaultdict |
|
|
|
|
|
|
|
|
|
|
|
import anyio |
|
|
import anyio |
|
|
from fastapi import params |
|
|
from fastapi import params |
|
|
@ -257,7 +257,9 @@ def is_scalar_mapping_field(field: ModelField) -> bool: |
|
|
if field.sub_fields is None: |
|
|
if field.sub_fields is None: |
|
|
return True |
|
|
return True |
|
|
for sub_field in field.sub_fields: |
|
|
for sub_field in field.sub_fields: |
|
|
if (not is_scalar_field(sub_field)) and (not is_scalar_sequence_field(sub_field)): |
|
|
if (not is_scalar_field(sub_field)) and ( |
|
|
|
|
|
not is_scalar_sequence_field(sub_field) |
|
|
|
|
|
): |
|
|
return False |
|
|
return False |
|
|
return True |
|
|
return True |
|
|
if lenient_issubclass(field.type_, mapping_types): |
|
|
if lenient_issubclass(field.type_, mapping_types): |
|
|
|