sloria: Sorry, I haven't been following the related issues. On a cursory glance this seems like the right course, but it's unfortunate that it will introduce a performance regression. I defer to your and @lafrech 's judgment for merging and releasing this.
diff --git a/setup.py b/setup.py
index 370b0467..951594ca 100644
--- a/setup.py
+++ b/setup.py
@@ -10,7 +10,7 @@ EXTRAS_REQUIRE = {
         "pre-commit>=1.20,<3.0",
     ],
     "docs": [
-        "sphinx==2.4.0",
+        "sphinx==2.3.1",
         "sphinx-issues==1.2.0",
         "alabaster==0.7.12",
         "sphinx-version-warning==1.1.2",
diff --git a/src/marshmallow/fields.py b/src/marshmallow/fields.py
index e0575d65..27c6740a 100644
--- a/src/marshmallow/fields.py
+++ b/src/marshmallow/fields.py
@@ -146,7 +146,8 @@ class Field(FieldABC):
         attribute: str = None,
         validate: typing.Union[
             typing.Callable[[typing.Any], typing.Any],
-            typing.Iterable[typing.Callable[[typing.Any], typing.Any]],
+            typing.Sequence[typing.Callable[[typing.Any], typing.Any]],
+            typing.Generator[typing.Callable[[typing.Any], typing.Any], None, None],
         ] = None,
         required: bool = False,
         allow_none: bool = None,
@@ -561,33 +562,30 @@ class Nested(Field):
             if field.startswith(nested_field)
         ]
 
-    def _serialize(self, nested_obj, attr, obj, many=False, **kwargs):
+    def _serialize(self, nested_obj, attr, obj, **kwargs):
         # Load up the schema first. This allows a RegistryError to be raised
         # if an invalid schema name was passed
         schema = self.schema
         if nested_obj is None:
             return None
-        many = schema.many or self.many or many
-        return schema.dump(nested_obj, many=self.many or many)
+        many = schema.many or self.many
+        return schema.dump(nested_obj, many=many)
 
-    def _test_collection(self, value, many=False):
-        many = self.schema.many or self.many or many
+    def _test_collection(self, value):
+        many = self.schema.many or self.many
         if many and not utils.is_collection(value):
             raise self.make_error("type", input=value, type=value.__class__.__name__)
 
-    def _load(self, value, data, partial=None, many=False):
-        many = self.schema.many or self.many or many
+    def _load(self, value, data, partial=None):
         try:
-            valid_data = self.schema.load(
-                value, unknown=self.unknown, partial=partial, many=many
-            )
+            valid_data = self.schema.load(value, unknown=self.unknown, partial=partial)
         except ValidationError as error:
             raise ValidationError(
                 error.messages, valid_data=error.valid_data
             ) from error
         return valid_data
 
-    def _deserialize(self, value, attr, data, partial=None, many=False, **kwargs):
+    def _deserialize(self, value, attr, data, partial=None, **kwargs):
         """Same as :meth:`Field._deserialize` with additional ``partial`` argument.
 
         :param bool|tuple partial: For nested schemas, the ``partial``
@@ -596,8 +594,8 @@ class Nested(Field):
         .. versionchanged:: 3.0.0
             Add ``partial`` parameter.
         """
-        self._test_collection(value, many=many)
-        return self._load(value, data, partial=partial, many=many)
+        self._test_collection(value)
+        return self._load(value, data, partial=partial)
 
 
 class Pluck(Nested):
@@ -703,17 +701,11 @@ class List(Field):
     ) -> typing.Optional[typing.List[typing.Any]]:
         if value is None:
             return None
-        # Optimize dumping a list of Nested objects by calling dump(many=True)
-        if isinstance(self.inner, Nested) and not self.inner.many:
-            return self.inner._serialize(value, attr, obj, many=True, **kwargs)
         return [self.inner._serialize(each, attr, obj, **kwargs) for each in value]
 
     def _deserialize(self, value, attr, data, **kwargs) -> typing.List[typing.Any]:
         if not utils.is_collection(value):
             raise self.make_error("invalid")
-        # Optimize loading a list of Nested objects by calling load(many=True)
-        if isinstance(self.inner, Nested) and not self.inner.many:
-            return self.inner.deserialize(value, many=True, **kwargs)
 
         result = []
         errors = {}
diff --git a/tox.ini b/tox.ini
index 3ab5bdad..9c1cf2b7 100644
--- a/tox.ini
+++ b/tox.ini
@@ -6,7 +6,7 @@ extras = tests
 commands = pytest {posargs}
 
 [testenv:lint]
-deps = pre-commit>=1.20,<3.0
+deps = pre-commit~=1.20
 skip_install = true
 commands = pre-commit run --all-files --show-diff-on-failure
 

Regression on list of nullable nested fields
Hello,

While porting some code from 2.20 to 3.3, I stumbled upon this change in behavior regarding list of nullable fields.

in 2.20 the following code works:
```python
from marshmallow import fields, Schema

class S(Schema):
    f = fields.List(fields.Nested(Schema, allow_none=True))

assert S().dump(dict(f=[None])).data == dict(f=[None])
```
whereas the same code in 3.3 fails with
`AssertionError: assert {'f': [{}]} == {'f': [None]}`
```python
from marshmallow import fields, Schema

class S(Schema):
    f = fields.List(fields.Nested(Schema, allow_none=True))

assert S().dump(dict(f=[None])) == dict(f=[None])
```

I could not find anything related to this in the upgrade instructions or the documentation.
I'm fully aware that this is an edge case and I don't mind looking into it if it's actually considered as a bug.

here are two unit tests that can be used to reproduce this issue:
```python
def test_list_of_nested_nullable_serialize_none_to_none(self):
    res = fields.List(fields.Nested(Schema, allow_none=True)).serialize("foo", {"foo": [None]})
    assert res == [None]

def test_nested_multiple_nullable_serialize_none_to_none(self):
    res = fields.Nested(Schema, allow_none=True, many=True).serialize("foo", {"foo": [None]})
    assert res == [None]
```
diff --git a/tests/test_deserialization.py b/tests/test_deserialization.py
index b71fed96..7790335a 100644
--- a/tests/test_deserialization.py
+++ b/tests/test_deserialization.py
@@ -38,6 +38,15 @@ class TestDeserializingNone:
         field = fields.Tuple([fields.String()], allow_none=True)
         assert field.deserialize(None) is None
 
+    def test_list_of_nested_allow_none_deserialize_none_to_none(self):
+        field = fields.List(fields.Nested(Schema(), allow_none=True))
+        assert field.deserialize([None]) == [None]
+
+    def test_list_of_nested_non_allow_none_deserialize_none_to_validation_error(self):
+        field = fields.List(fields.Nested(Schema(), allow_none=False))
+        with pytest.raises(ValidationError):
+            field.deserialize([None])
+
 
 class TestFieldDeserialization:
     def test_float_field_deserialization(self):

pip install -e .[dev]
parse_log_pytest
pytest
pytest
3.9
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
attrs==25.3.0
cachetools==5.5.2
cfgv==3.4.0
chardet==5.2.0
colorama==0.4.6
distlib==0.3.9
entrypoints==0.3
exceptiongroup @ file:///croot/exceptiongroup_1706031385326/work
filelock==3.18.0
flake8==3.7.9
flake8-bugbear==20.1.4
identify==2.6.9
iniconfig @ file:///home/linux1/recipes/ci/iniconfig_1610983019677/work
-e git+https://github.com/marshmallow-code/marshmallow.git@9146621c696a81446fc0c6fbab4dc071cb72d5f8#egg=marshmallow
mccabe==0.6.1
mypy==0.761
mypy_extensions==0.4.4
nodeenv==1.9.1
packaging @ file:///croot/packaging_1734472117206/work
platformdirs==4.3.7
pluggy @ file:///croot/pluggy_1733169602837/work
pre-commit==2.21.0
pycodestyle==2.5.0
pyflakes==2.1.1
pyproject-api==1.9.0
pytest @ file:///croot/pytest_1738938843180/work
pytz==2025.2
PyYAML==6.0.2
simplejson==3.20.1
tomli==2.2.1
tox==4.25.0
typed-ast==1.4.3
typing_extensions==4.13.0
virtualenv==20.29.3

name: marshmallow
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - exceptiongroup=1.2.0=py39h06a4308_0
  - iniconfig=1.1.1=pyhd3eb1b0_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=3.0.16=h5eee18b_0
  - packaging=24.2=py39h06a4308_0
  - pip=25.0=py39h06a4308_0
  - pluggy=1.5.0=py39h06a4308_0
  - pytest=8.3.4=py39h06a4308_0
  - python=3.9.21=he870216_1
  - readline=8.2=h5eee18b_0
  - setuptools=75.8.0=py39h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - tzdata=2025a=h04d1e81_0
  - wheel=0.45.1=py39h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - attrs==25.3.0
      - cachetools==5.5.2
      - cfgv==3.4.0
      - chardet==5.2.0
      - colorama==0.4.6
      - distlib==0.3.9
      - entrypoints==0.3
      - filelock==3.18.0
      - flake8==3.7.9
      - flake8-bugbear==20.1.4
      - identify==2.6.9
      - marshmallow==3.4.0
      - mccabe==0.6.1
      - mypy==0.761
      - mypy-extensions==0.4.4
      - nodeenv==1.9.1
      - platformdirs==4.3.7
      - pre-commit==2.21.0
      - pycodestyle==2.5.0
      - pyflakes==2.1.1
      - pyproject-api==1.9.0
      - pytz==2025.2
      - pyyaml==6.0.2
      - simplejson==3.20.1
      - tomli==2.2.1
      - tox==4.25.0
      - typed-ast==1.4.3
      - typing-extensions==4.13.0
      - virtualenv==20.29.3
prefix: /opt/conda/envs/marshmallow

tests/test_deserialization.py::TestDeserializingNone::test_list_of_nested_allow_none_deserialize_none_to_none tests/test_deserialization.py::TestFieldDeserialization::test_invalid_datetime_deserialization[10:27:34
tests/test_deserialization.py::TestDeserializingNone::test_fields_allow_none_deserialize_to_none[String] tests/test_deserialization.py::TestDeserializingNone::test_fields_allow_none_deserialize_to_none[Integer] tests/test_deserialization.py::TestDeserializingNone::test_fields_allow_none_deserialize_to_none[Boolean] tests/test_deserialization.py::TestDeserializingNone::test_fields_allow_none_deserialize_to_none[Float] tests/test_deserialization.py::TestDeserializingNone::test_fields_allow_none_deserialize_to_none[Number] tests/test_deserialization.py::TestDeserializingNone::test_fields_allow_none_deserialize_to_none[DateTime] tests/test_deserialization.py::TestDeserializingNone::test_fields_allow_none_deserialize_to_none[Time] tests/test_deserialization.py::TestDeserializingNone::test_fields_allow_none_deserialize_to_none[Date] tests/test_deserialization.py::TestDeserializingNone::test_fields_allow_none_deserialize_to_none[TimeDelta] tests/test_deserialization.py::TestDeserializingNone::test_fields_allow_none_deserialize_to_none[Dict] tests/test_deserialization.py::TestDeserializingNone::test_fields_allow_none_deserialize_to_none[Url] tests/test_deserialization.py::TestDeserializingNone::test_fields_allow_none_deserialize_to_none[Email] tests/test_deserialization.py::TestDeserializingNone::test_fields_allow_none_deserialize_to_none[UUID] tests/test_deserialization.py::TestDeserializingNone::test_fields_allow_none_deserialize_to_none[Decimal] tests/test_deserialization.py::TestDeserializingNone::test_fields_dont_allow_none_by_default[String] tests/test_deserialization.py::TestDeserializingNone::test_fields_dont_allow_none_by_default[Integer] tests/test_deserialization.py::TestDeserializingNone::test_fields_dont_allow_none_by_default[Boolean] tests/test_deserialization.py::TestDeserializingNone::test_fields_dont_allow_none_by_default[Float] tests/test_deserialization.py::TestDeserializingNone::test_fields_dont_allow_none_by_default[Number] tests/test_deserialization.py::TestDeserializingNone::test_fields_dont_allow_none_by_default[DateTime] tests/test_deserialization.py::TestDeserializingNone::test_fields_dont_allow_none_by_default[Time] tests/test_deserialization.py::TestDeserializingNone::test_fields_dont_allow_none_by_default[Date] tests/test_deserialization.py::TestDeserializingNone::test_fields_dont_allow_none_by_default[TimeDelta] tests/test_deserialization.py::TestDeserializingNone::test_fields_dont_allow_none_by_default[Dict] tests/test_deserialization.py::TestDeserializingNone::test_fields_dont_allow_none_by_default[Url] tests/test_deserialization.py::TestDeserializingNone::test_fields_dont_allow_none_by_default[Email] tests/test_deserialization.py::TestDeserializingNone::test_fields_dont_allow_none_by_default[UUID] tests/test_deserialization.py::TestDeserializingNone::test_fields_dont_allow_none_by_default[Decimal] tests/test_deserialization.py::TestDeserializingNone::test_allow_none_is_true_if_missing_is_true tests/test_deserialization.py::TestDeserializingNone::test_list_field_deserialize_none_to_none tests/test_deserialization.py::TestDeserializingNone::test_tuple_field_deserialize_none_to_none tests/test_deserialization.py::TestDeserializingNone::test_list_of_nested_non_allow_none_deserialize_none_to_validation_error tests/test_deserialization.py::TestFieldDeserialization::test_float_field_deserialization tests/test_deserialization.py::TestFieldDeserialization::test_invalid_float_field_deserialization[bad] tests/test_deserialization.py::TestFieldDeserialization::test_invalid_float_field_deserialization[] tests/test_deserialization.py::TestFieldDeserialization::test_invalid_float_field_deserialization[in_val2] tests/test_deserialization.py::TestFieldDeserialization::test_invalid_float_field_deserialization[True] tests/test_deserialization.py::TestFieldDeserialization::test_invalid_float_field_deserialization[False] tests/test_deserialization.py::TestFieldDeserialization::test_float_field_overflow tests/test_deserialization.py::TestFieldDeserialization::test_integer_field_deserialization tests/test_deserialization.py::TestFieldDeserialization::test_strict_integer_field_deserialization tests/test_deserialization.py::TestFieldDeserialization::test_decimal_field_deserialization tests/test_deserialization.py::TestFieldDeserialization::test_decimal_field_with_places tests/test_deserialization.py::TestFieldDeserialization::test_decimal_field_with_places_and_rounding tests/test_deserialization.py::TestFieldDeserialization::test_decimal_field_deserialization_string tests/test_deserialization.py::TestFieldDeserialization::test_decimal_field_special_values tests/test_deserialization.py::TestFieldDeserialization::test_decimal_field_special_values_not_permitted tests/test_deserialization.py::TestFieldDeserialization::test_float_field_allow_nan[nan-None] tests/test_deserialization.py::TestFieldDeserialization::test_float_field_allow_nan[nan-False] tests/test_deserialization.py::TestFieldDeserialization::test_float_field_allow_nan[nan-True] tests/test_deserialization.py::TestFieldDeserialization::test_float_field_allow_nan[-nan-None] tests/test_deserialization.py::TestFieldDeserialization::test_float_field_allow_nan[-nan-False] tests/test_deserialization.py::TestFieldDeserialization::test_float_field_allow_nan[-nan-True] tests/test_deserialization.py::TestFieldDeserialization::test_float_field_allow_nan[inf-None] tests/test_deserialization.py::TestFieldDeserialization::test_float_field_allow_nan[inf-False] tests/test_deserialization.py::TestFieldDeserialization::test_float_field_allow_nan[inf-True] tests/test_deserialization.py::TestFieldDeserialization::test_float_field_allow_nan[-inf-None] tests/test_deserialization.py::TestFieldDeserialization::test_float_field_allow_nan[-inf-False] tests/test_deserialization.py::TestFieldDeserialization::test_float_field_allow_nan[-inf-True] tests/test_deserialization.py::TestFieldDeserialization::test_string_field_deserialization tests/test_deserialization.py::TestFieldDeserialization::test_boolean_field_deserialization tests/test_deserialization.py::TestFieldDeserialization::test_boolean_field_deserialization_with_custom_truthy_values tests/test_deserialization.py::TestFieldDeserialization::test_boolean_field_deserialization_with_custom_truthy_values_invalid[notvalid] tests/test_deserialization.py::TestFieldDeserialization::test_boolean_field_deserialization_with_custom_truthy_values_invalid[123] tests/test_deserialization.py::TestFieldDeserialization::test_boolean_field_deserialization_with_empty_truthy tests/test_deserialization.py::TestFieldDeserialization::test_boolean_field_deserialization_with_custom_falsy_values tests/test_deserialization.py::TestFieldDeserialization::test_field_toggle_show_invalid_value_in_error_message tests/test_deserialization.py::TestFieldDeserialization::test_invalid_datetime_deserialization[not-a-datetime] tests/test_deserialization.py::TestFieldDeserialization::test_invalid_datetime_deserialization[42] tests/test_deserialization.py::TestFieldDeserialization::test_invalid_datetime_deserialization[] tests/test_deserialization.py::TestFieldDeserialization::test_invalid_datetime_deserialization[in_value3] tests/test_deserialization.py::TestFieldDeserialization::test_invalid_datetime_deserialization[2018] tests/test_deserialization.py::TestFieldDeserialization::test_invalid_datetime_deserialization[2018-01-01] tests/test_deserialization.py::TestFieldDeserialization::test_invalid_datetime_deserialization[03-31-2025 tests/test_deserialization.py::TestFieldDeserialization::test_custom_date_format_datetime_field_deserialization tests/test_deserialization.py::TestFieldDeserialization::test_rfc_datetime_field_deserialization[Sun, tests/test_deserialization.py::TestFieldDeserialization::test_iso_datetime_field_deserialization[2013-11-10T01:23:45-expected0-False-iso] tests/test_deserialization.py::TestFieldDeserialization::test_iso_datetime_field_deserialization[2013-11-10T01:23:45-expected0-False-iso8601] tests/test_deserialization.py::TestFieldDeserialization::test_iso_datetime_field_deserialization[2013-11-10T01:23:45+00:00-expected1-True-iso] tests/test_deserialization.py::TestFieldDeserialization::test_iso_datetime_field_deserialization[2013-11-10T01:23:45+00:00-expected1-True-iso8601] tests/test_deserialization.py::TestFieldDeserialization::test_iso_datetime_field_deserialization[2013-11-10T01:23:45.123+00:00-expected2-True-iso] tests/test_deserialization.py::TestFieldDeserialization::test_iso_datetime_field_deserialization[2013-11-10T01:23:45.123+00:00-expected2-True-iso8601] tests/test_deserialization.py::TestFieldDeserialization::test_iso_datetime_field_deserialization[2013-11-10T01:23:45.123456+00:00-expected3-True-iso] tests/test_deserialization.py::TestFieldDeserialization::test_iso_datetime_field_deserialization[2013-11-10T01:23:45.123456+00:00-expected3-True-iso8601] tests/test_deserialization.py::TestFieldDeserialization::test_iso_datetime_field_deserialization[2013-11-10T01:23:45-06:00-expected4-True-iso] tests/test_deserialization.py::TestFieldDeserialization::test_iso_datetime_field_deserialization[2013-11-10T01:23:45-06:00-expected4-True-iso8601] tests/test_deserialization.py::TestFieldDeserialization::test_naive_datetime_with_timezone[iso-None-2013-11-10T01:23:45-expected0] tests/test_deserialization.py::TestFieldDeserialization::test_naive_datetime_with_timezone[iso-timezone1-2013-11-10T01:23:45+00:00-expected1] tests/test_deserialization.py::TestFieldDeserialization::test_naive_datetime_with_timezone[iso-timezone2-2013-11-10T01:23:45-03:00-expected2] tests/test_deserialization.py::TestFieldDeserialization::test_naive_datetime_with_timezone[rfc-None-Sun, tests/test_deserialization.py::TestFieldDeserialization::test_naive_datetime_with_timezone[rfc-timezone4-Sun, tests/test_deserialization.py::TestFieldDeserialization::test_naive_datetime_with_timezone[rfc-timezone5-Sun, tests/test_deserialization.py::TestFieldDeserialization::test_aware_datetime_default_timezone[iso-2013-11-10T01:23:45-timezone0] tests/test_deserialization.py::TestFieldDeserialization::test_aware_datetime_default_timezone[iso-2013-11-10T01:23:45-timezone1] tests/test_deserialization.py::TestFieldDeserialization::test_aware_datetime_default_timezone[rfc-Sun, tests/test_deserialization.py::TestFieldDeserialization::test_time_field_deserialization tests/test_deserialization.py::TestFieldDeserialization::test_invalid_time_field_deserialization[badvalue] tests/test_deserialization.py::TestFieldDeserialization::test_invalid_time_field_deserialization[] tests/test_deserialization.py::TestFieldDeserialization::test_invalid_time_field_deserialization[in_data2] tests/test_deserialization.py::TestFieldDeserialization::test_invalid_time_field_deserialization[42] tests/test_deserialization.py::TestFieldDeserialization::test_invalid_timedelta_precision tests/test_deserialization.py::TestFieldDeserialization::test_timedelta_field_deserialization tests/test_deserialization.py::TestFieldDeserialization::test_invalid_timedelta_field_deserialization[] tests/test_deserialization.py::TestFieldDeserialization::test_invalid_timedelta_field_deserialization[badvalue] tests/test_deserialization.py::TestFieldDeserialization::test_invalid_timedelta_field_deserialization[in_value2] tests/test_deserialization.py::TestFieldDeserialization::test_invalid_timedelta_field_deserialization[9999999999] tests/test_deserialization.py::TestFieldDeserialization::test_date_field_deserialization[None] tests/test_deserialization.py::TestFieldDeserialization::test_date_field_deserialization[%Y-%m-%d] tests/test_deserialization.py::TestFieldDeserialization::test_invalid_date_field_deserialization[] tests/test_deserialization.py::TestFieldDeserialization::test_invalid_date_field_deserialization[123] tests/test_deserialization.py::TestFieldDeserialization::test_invalid_date_field_deserialization[in_value2] tests/test_deserialization.py::TestFieldDeserialization::test_invalid_date_field_deserialization[21-08-2014] tests/test_deserialization.py::TestFieldDeserialization::test_dict_field_deserialization tests/test_deserialization.py::TestFieldDeserialization::test_structured_dict_value_deserialization tests/test_deserialization.py::TestFieldDeserialization::test_structured_dict_key_deserialization tests/test_deserialization.py::TestFieldDeserialization::test_structured_dict_key_value_deserialization tests/test_deserialization.py::TestFieldDeserialization::test_url_field_deserialization tests/test_deserialization.py::TestFieldDeserialization::test_url_field_non_list_validators tests/test_deserialization.py::TestFieldDeserialization::test_relative_url_field_deserialization tests/test_deserialization.py::TestFieldDeserialization::test_url_field_schemes_argument tests/test_deserialization.py::TestFieldDeserialization::test_email_field_deserialization tests/test_deserialization.py::TestFieldDeserialization::test_email_field_non_list_validators tests/test_deserialization.py::TestFieldDeserialization::test_function_field_deserialization_is_noop_by_default tests/test_deserialization.py::TestFieldDeserialization::test_function_field_deserialization_with_callable tests/test_deserialization.py::TestFieldDeserialization::test_function_field_deserialization_with_context tests/test_deserialization.py::TestFieldDeserialization::test_function_field_passed_deserialize_only_is_load_only tests/test_deserialization.py::TestFieldDeserialization::test_function_field_passed_deserialize_and_serialize_is_not_load_only tests/test_deserialization.py::TestFieldDeserialization::test_uuid_field_deserialization tests/test_deserialization.py::TestFieldDeserialization::test_invalid_uuid_deserialization[malformed] tests/test_deserialization.py::TestFieldDeserialization::test_invalid_uuid_deserialization[123] tests/test_deserialization.py::TestFieldDeserialization::test_invalid_uuid_deserialization[in_value2] tests/test_deserialization.py::TestFieldDeserialization::test_invalid_uuid_deserialization[tooshort] tests/test_deserialization.py::TestFieldDeserialization::test_deserialization_function_must_be_callable tests/test_deserialization.py::TestFieldDeserialization::test_method_field_deserialization_is_noop_by_default tests/test_deserialization.py::TestFieldDeserialization::test_deserialization_method tests/test_deserialization.py::TestFieldDeserialization::test_deserialization_method_must_be_a_method tests/test_deserialization.py::TestFieldDeserialization::test_method_field_deserialize_only tests/test_deserialization.py::TestFieldDeserialization::test_datetime_list_field_deserialization tests/test_deserialization.py::TestFieldDeserialization::test_list_field_deserialize_invalid_item tests/test_deserialization.py::TestFieldDeserialization::test_list_field_deserialize_multiple_invalid_items tests/test_deserialization.py::TestFieldDeserialization::test_list_field_deserialize_value_that_is_not_a_list[notalist] tests/test_deserialization.py::TestFieldDeserialization::test_list_field_deserialize_value_that_is_not_a_list[42] tests/test_deserialization.py::TestFieldDeserialization::test_list_field_deserialize_value_that_is_not_a_list[value2] tests/test_deserialization.py::TestFieldDeserialization::test_datetime_int_tuple_field_deserialization tests/test_deserialization.py::TestFieldDeserialization::test_tuple_field_deserialize_invalid_item tests/test_deserialization.py::TestFieldDeserialization::test_tuple_field_deserialize_multiple_invalid_items tests/test_deserialization.py::TestFieldDeserialization::test_tuple_field_deserialize_value_that_is_not_a_collection[notalist] tests/test_deserialization.py::TestFieldDeserialization::test_tuple_field_deserialize_value_that_is_not_a_collection[42] tests/test_deserialization.py::TestFieldDeserialization::test_tuple_field_deserialize_value_that_is_not_a_collection[value2] tests/test_deserialization.py::TestFieldDeserialization::test_tuple_field_deserialize_invalid_length tests/test_deserialization.py::TestFieldDeserialization::test_constant_field_deserialization tests/test_deserialization.py::TestFieldDeserialization::test_constant_is_always_included_in_deserialized_data tests/test_deserialization.py::TestFieldDeserialization::test_field_deserialization_with_user_validator_function tests/test_deserialization.py::TestFieldDeserialization::test_field_deserialization_with_user_validator_class_that_returns_bool tests/test_deserialization.py::TestFieldDeserialization::test_field_deserialization_with_user_validator_that_raises_error_with_list tests/test_deserialization.py::TestFieldDeserialization::test_validator_must_return_false_to_raise_error tests/test_deserialization.py::TestFieldDeserialization::test_field_deserialization_with_validator_with_nonascii_input tests/test_deserialization.py::TestFieldDeserialization::test_field_deserialization_with_user_validators tests/test_deserialization.py::TestFieldDeserialization::test_field_deserialization_with_custom_error_message tests/test_deserialization.py::TestSchemaDeserialization::test_deserialize_to_dict tests/test_deserialization.py::TestSchemaDeserialization::test_deserialize_with_missing_values tests/test_deserialization.py::TestSchemaDeserialization::test_deserialize_many tests/test_deserialization.py::TestSchemaDeserialization::test_exclude tests/test_deserialization.py::TestSchemaDeserialization::test_nested_single_deserialization_to_dict tests/test_deserialization.py::TestSchemaDeserialization::test_nested_list_deserialization_to_dict tests/test_deserialization.py::TestSchemaDeserialization::test_nested_single_none_not_allowed tests/test_deserialization.py::TestSchemaDeserialization::test_nested_many_non_not_allowed tests/test_deserialization.py::TestSchemaDeserialization::test_nested_single_required_missing tests/test_deserialization.py::TestSchemaDeserialization::test_nested_many_required_missing tests/test_deserialization.py::TestSchemaDeserialization::test_nested_only_basestring tests/test_deserialization.py::TestSchemaDeserialization::test_nested_only_basestring_with_list_data tests/test_deserialization.py::TestSchemaDeserialization::test_nested_none_deserialization tests/test_deserialization.py::TestSchemaDeserialization::test_deserialize_with_attribute_param tests/test_deserialization.py::TestSchemaDeserialization::test_deserialize_with_attribute_param_symmetry tests/test_deserialization.py::TestSchemaDeserialization::test_deserialize_with_attribute_param_error_returns_field_name_not_attribute_name tests/test_deserialization.py::TestSchemaDeserialization::test_deserialize_with_attribute_param_error_returns_data_key_not_attribute_name tests/test_deserialization.py::TestSchemaDeserialization::test_deserialize_with_data_key_param tests/test_deserialization.py::TestSchemaDeserialization::test_deserialize_with_data_key_as_empty_string tests/test_deserialization.py::TestSchemaDeserialization::test_deserialize_with_dump_only_param tests/test_deserialization.py::TestSchemaDeserialization::test_deserialize_with_missing_param_value tests/test_deserialization.py::TestSchemaDeserialization::test_deserialize_with_missing_param_callable tests/test_deserialization.py::TestSchemaDeserialization::test_deserialize_with_missing_param_none tests/test_deserialization.py::TestSchemaDeserialization::test_deserialization_raises_with_errors tests/test_deserialization.py::TestSchemaDeserialization::test_deserialization_raises_with_errors_with_multiple_validators tests/test_deserialization.py::TestSchemaDeserialization::test_deserialization_many_raises_errors tests/test_deserialization.py::TestSchemaDeserialization::test_validation_errors_are_stored tests/test_deserialization.py::TestSchemaDeserialization::test_multiple_errors_can_be_stored_for_a_field tests/test_deserialization.py::TestSchemaDeserialization::test_multiple_errors_can_be_stored_for_an_email_field tests/test_deserialization.py::TestSchemaDeserialization::test_multiple_errors_can_be_stored_for_a_url_field tests/test_deserialization.py::TestSchemaDeserialization::test_required_value_only_passed_to_validators_if_provided tests/test_deserialization.py::TestSchemaDeserialization::test_partial_deserialization[True] tests/test_deserialization.py::TestSchemaDeserialization::test_partial_deserialization[False] tests/test_deserialization.py::TestSchemaDeserialization::test_partial_fields_deserialization tests/test_deserialization.py::TestSchemaDeserialization::test_partial_fields_validation tests/test_deserialization.py::TestSchemaDeserialization::test_unknown_fields_deserialization tests/test_deserialization.py::TestSchemaDeserialization::test_unknown_fields_deserialization_precedence tests/test_deserialization.py::TestSchemaDeserialization::test_unknown_fields_deserialization_with_data_key tests/test_deserialization.py::TestSchemaDeserialization::test_unknown_fields_deserialization_with_index_errors_false tests/test_deserialization.py::TestSchemaDeserialization::test_dump_only_fields_considered_unknown tests/test_deserialization.py::TestValidation::test_integer_with_validator tests/test_deserialization.py::TestValidation::test_integer_with_validators[field0] tests/test_deserialization.py::TestValidation::test_integer_with_validators[field1] tests/test_deserialization.py::TestValidation::test_integer_with_validators[field2] tests/test_deserialization.py::TestValidation::test_float_with_validators[field0] tests/test_deserialization.py::TestValidation::test_float_with_validators[field1] tests/test_deserialization.py::TestValidation::test_float_with_validators[field2] tests/test_deserialization.py::TestValidation::test_string_validator tests/test_deserialization.py::TestValidation::test_function_validator tests/test_deserialization.py::TestValidation::test_function_validators[field0] tests/test_deserialization.py::TestValidation::test_function_validators[field1] tests/test_deserialization.py::TestValidation::test_function_validators[field2] tests/test_deserialization.py::TestValidation::test_method_validator tests/test_deserialization.py::TestValidation::test_nested_data_is_stored_when_validation_fails tests/test_deserialization.py::TestValidation::test_false_value_validation tests/test_deserialization.py::TestValidation::test_nested_partial_load tests/test_deserialization.py::TestValidation::test_deeply_nested_partial_load tests/test_deserialization.py::TestValidation::test_nested_partial_tuple tests/test_deserialization.py::test_required_field_failure[String] tests/test_deserialization.py::test_required_field_failure[Integer] tests/test_deserialization.py::test_required_field_failure[Boolean] tests/test_deserialization.py::test_required_field_failure[Float] tests/test_deserialization.py::test_required_field_failure[Number] tests/test_deserialization.py::test_required_field_failure[DateTime] tests/test_deserialization.py::test_required_field_failure[Time] tests/test_deserialization.py::test_required_field_failure[Date] tests/test_deserialization.py::test_required_field_failure[TimeDelta] tests/test_deserialization.py::test_required_field_failure[Dict] tests/test_deserialization.py::test_required_field_failure[Url] tests/test_deserialization.py::test_required_field_failure[Email] tests/test_deserialization.py::test_required_field_failure[UUID] tests/test_deserialization.py::test_required_field_failure[Decimal] tests/test_deserialization.py::test_required_message_can_be_changed[My tests/test_deserialization.py::test_required_message_can_be_changed[message1] tests/test_deserialization.py::test_required_message_can_be_changed[message2] tests/test_deserialization.py::test_deserialize_raises_exception_if_input_type_is_incorrect[True-exclude] tests/test_deserialization.py::test_deserialize_raises_exception_if_input_type_is_incorrect[True-include] tests/test_deserialization.py::test_deserialize_raises_exception_if_input_type_is_incorrect[True-raise] tests/test_deserialization.py::test_deserialize_raises_exception_if_input_type_is_incorrect[False-exclude] tests/test_deserialization.py::test_deserialize_raises_exception_if_input_type_is_incorrect[False-include] tests/test_deserialization.py::test_deserialize_raises_exception_if_input_type_is_incorrect[False-raise] tests/test_deserialization.py::test_deserialize_raises_exception_if_input_type_is_incorrect[42-exclude] tests/test_deserialization.py::test_deserialize_raises_exception_if_input_type_is_incorrect[42-include] tests/test_deserialization.py::test_deserialize_raises_exception_if_input_type_is_incorrect[42-raise] tests/test_deserialization.py::test_deserialize_raises_exception_if_input_type_is_incorrect[None-exclude] tests/test_deserialization.py::test_deserialize_raises_exception_if_input_type_is_incorrect[None-include] tests/test_deserialization.py::test_deserialize_raises_exception_if_input_type_is_incorrect[None-raise] tests/test_deserialization.py::test_deserialize_raises_exception_if_input_type_is_incorrect[data4-exclude] tests/test_deserialization.py::test_deserialize_raises_exception_if_input_type_is_incorrect[data4-include] tests/test_deserialization.py::test_deserialize_raises_exception_if_input_type_is_incorrect[data4-raise]
setup.py tox.ini src/marshmallow/fields.py
setup.py tox.ini src/marshmallow/fields.py