diff --git a/.gitignore b/.gitignore index d380d16b7..c8247162f 100644 --- a/.gitignore +++ b/.gitignore @@ -25,3 +25,6 @@ archive.zip *~ .*.sw? .cache + +main.py +.devcontainer diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 9f7085f72..f97947a8d 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,7 +1,7 @@ # See https://pre-commit.com for more information # See https://pre-commit.com/hooks.html for more hooks default_language_version: - python: python3.10 + python: python3.11 repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.4.0 diff --git a/fastapi/_compat.py b/fastapi/_compat.py index 2233fe33c..8c76a8011 100644 --- a/fastapi/_compat.py +++ b/fastapi/_compat.py @@ -227,6 +227,12 @@ if PYDANTIC_V2: def is_scalar_sequence_field(field: ModelField) -> bool: return field_annotation_is_scalar_sequence(field.field_info.annotation) + + def is_scalar_sequence_mapping_field(field: ModelField) -> bool: + return field_annotation_is_scalar_sequence(field.field_info.annotation) + + def is_scalar_mapping_field(field: ModelField) -> bool: + return field_annotation_is_scalar_sequence(field.field_info.annotation) def is_bytes_field(field: ModelField) -> bool: return is_bytes_or_nonable_bytes_annotation(field.type_) @@ -467,6 +473,12 @@ else: def is_scalar_sequence_field(field: ModelField) -> bool: return is_pv1_scalar_sequence_field(field) + + def is_scalar_sequence_mapping_field(field: ModelField) -> bool: + return is_pv1_scalar_sequence_field(field) + + def is_scalar_mapping_field(field: ModelField) -> bool: + return is_pv1_scalar_sequence_field(field) def is_bytes_field(field: ModelField) -> bool: return lenient_issubclass(field.type_, bytes) diff --git a/fastapi/dependencies/utils.py b/fastapi/dependencies/utils.py index 0556325b9..255f58a22 100644 --- a/fastapi/dependencies/utils.py +++ b/fastapi/dependencies/utils.py @@ -37,6 +37,8 @@ from fastapi._compat import ( is_bytes_sequence_field, is_scalar_field, is_scalar_sequence_field, + is_scalar_mapping_field, + is_scalar_sequence_mapping_field, is_sequence_field, is_uploadfile_or_nonable_uploadfile_annotation, is_uploadfile_sequence_annotation,