lafrech: TODO: update docs.
sloria: Behavior looks good. This should be good to merge after docs are updated.
diff --git a/docs/quickstart.rst b/docs/quickstart.rst
index db101bd1..1ee80e53 100644
--- a/docs/quickstart.rst
+++ b/docs/quickstart.rst
@@ -481,6 +481,25 @@ In the context of a web API, the ``dump_only`` and ``load_only`` parameters are
         created_at = fields.DateTime(dump_only=True)
 
 
+Specify default Serialization/Deserialization values
+----------------------------------------------------
+
+Default values can be provided to a :class:`Field <fields.Field>` for both serialization and deserialization.
+
+`missing` is used for deserialization if the field is not found in the input data. Likewise, `default` is used for serialization if the input value is missing.
+
+.. code-block:: python
+
+    class UserSchema(Schema):
+        id = fields.UUID(missing=uuid.uuid1)
+        birthdate = fields.DateTime(default=dt.datetime(2017, 9, 29))
+
+    UserSchema().load({})
+    # {'id': UUID('337d946c-32cd-11e8-b475-0022192ed31b')}
+    UserSchema().dump({})
+    # {'birthdate': '2017-09-29T00:00:00+00:00'}
+
+
 Next Steps
 ----------
 
diff --git a/docs/upgrading.rst b/docs/upgrading.rst
index 9683f2a8..1c439c80 100644
--- a/docs/upgrading.rst
+++ b/docs/upgrading.rst
@@ -393,6 +393,23 @@ The ``json_module`` class Meta option is deprecated in favor of ``render_module`
         class Meta:
             render_module = ujson
 
+
+``missing`` and ``default`` ``Field`` parameters are passed in deserialized form
+********************************************************************************
+
+.. code-block:: python
+
+    # 2.x
+    class UserSchema(Schema):
+        id = fields.UUID(missing=lambda: str(uuid.uuid1()))
+        birthdate = fields.DateTime(default=lambda: dt.datetime(2017, 9, 29).isoformat())
+
+    # 3.x
+    class UserSchema(Schema):
+        id = fields.UUID(missing=uuid.uuid1)
+        birthdate = fields.DateTime(default=dt.datetime(2017, 9, 29))
+
+
 Pass ``default`` as a keyword argument
 **************************************
 
diff --git a/marshmallow/fields.py b/marshmallow/fields.py
index 832ae1a8..946865e1 100755
--- a/marshmallow/fields.py
+++ b/marshmallow/fields.py
@@ -105,7 +105,7 @@ class Field(FieldABC):
         inputs are excluded from serialized output.
     """
     # Some fields, such as Method fields and Function fields, are not expected
-    #  to exists as attributes on the objects to serialize. Set this to False
+    #  to exist as attributes on the objects to serialize. Set this to False
     #  for those fields
     _CHECK_ATTRIBUTE = True
     _creation_index = 0  # Used for sorting
@@ -237,12 +237,11 @@ class Field(FieldABC):
         """
         if self._CHECK_ATTRIBUTE:
             value = self.get_value(obj, attr, accessor=accessor)
+            if value is missing_ and hasattr(self, 'default'):
+                default = self.default
+                value = default() if callable(default) else default
             if value is missing_:
-                if hasattr(self, 'default'):
-                    if callable(self.default):
-                        return self.default()
-                    else:
-                        return self.default
+                return value
         else:
             value = None
         return self._serialize(value, attr, obj)
@@ -256,6 +255,9 @@ class Field(FieldABC):
         # Validate required fields, deserialize, then validate
         # deserialized value
         self._validate_missing(value)
+        if value is missing_:
+            _miss = self.missing
+            return _miss() if callable(_miss) else _miss
         if getattr(self, 'allow_none', False) is True and value is None:
             return None
         output = self._deserialize(value, attr, data)
diff --git a/marshmallow/marshalling.py b/marshmallow/marshalling.py
index 1f3b2a32..162c722e 100644
--- a/marshmallow/marshalling.py
+++ b/marshmallow/marshalling.py
@@ -276,11 +276,6 @@ class Unmarshaller(ErrorStore):
                     (partial_is_collection and attr_name in partial)
                 ):
                     continue
-                _miss = field_obj.missing
-                raw_value = _miss() if callable(_miss) else _miss
-            if raw_value is missing and not field_obj.required:
-                continue
-
             getter = lambda val: field_obj.deserialize(val, field_name, data)
             value = self.call_and_store(
                 getter_func=getter,

missing and default values should be specified in deserialized form
Marshmallow expects `missing` and `default` values to be specified in a pre-serialized form, which is inconvenient and unintuitive.

Here is a schema which I would expect to work:

``` python
import datetime
import uuid

class TestSchema(Schema):
    id = fields.UUID(
        missing=uuid.uuid1)
    ts = fields.DateTime(
        format='rfc',
        missing=datetime.datetime.now)
```

However, it does not:

``` python
schema = TestSchema()
pprint.pprint(tuple(schema.load({})))
({}, {'id': [u'Not a valid UUID.'], 'ts': [u'Not a valid datetime.']})
```

Instead, I have to convert my `default` and `missing` values to primitive types, which undermines the purpose of a library like marshmallow that already knows how to do this.  For data types like datetimes, which have many possible serialized formats, I have to keep the formatting of my `default` and `missing` values in sync with my field properties, which is fragile and convoluted:

``` python
from email.Utils import formatdate

class TestSchema(Schema):
    id = fields.UUID(
        missing=lambda: str(uuid.uuid1()))
    ts = fields.DateTime(
        format='rfc',
        missing=formatdate)
```

In the case of `default` values, marshmallow does not attempt to validate them, so no error is raised, but the resulting document is not deserializable. 

diff --git a/tests/test_deserialization.py b/tests/test_deserialization.py
index 881c6098..b3a6bfd4 100644
--- a/tests/test_deserialization.py
+++ b/tests/test_deserialization.py
@@ -1105,26 +1105,30 @@ class TestSchemaDeserialization:
         assert 'nicknames' not in result
 
     def test_deserialize_with_missing_param_value(self):
+        bdate = dt.datetime(2017, 9, 29)
+
         class AliasingUserSerializer(Schema):
             name = fields.String()
-            years = fields.Integer(missing=10)
+            birthdate = fields.DateTime(missing=bdate)
         data = {
             'name': 'Mick',
         }
         result = AliasingUserSerializer().load(data)
         assert result['name'] == 'Mick'
-        assert result['years'] == 10
+        assert result['birthdate'] == bdate
 
     def test_deserialize_with_missing_param_callable(self):
+        bdate = dt.datetime(2017, 9, 29)
+
         class AliasingUserSerializer(Schema):
             name = fields.String()
-            years = fields.Integer(missing=lambda: 13 + 7)
+            birthdate = fields.DateTime(missing=lambda: bdate)
         data = {
             'name': 'Mick',
         }
         result = AliasingUserSerializer().load(data)
         assert result['name'] == 'Mick'
-        assert result['years'] == 20
+        assert result['birthdate'] == bdate
 
     def test_deserialize_with_missing_param_none(self):
         class AliasingUserSerializer(Schema):
diff --git a/tests/test_serialization.py b/tests/test_serialization.py
index 24826eb5..e8e6c360 100644
--- a/tests/test_serialization.py
+++ b/tests/test_serialization.py
@@ -29,10 +29,6 @@ class TestFieldSerialization:
     def user(self):
         return User("Foo", email="foo@bar.com", age=42)
 
-    def test_default(self, user):
-        field = fields.Field(default='nan')
-        assert field.serialize('age', {}) == 'nan'
-
     @pytest.mark.parametrize(('value', 'expected'),
     [
         (42, float(42)),
@@ -54,10 +50,6 @@ class TestFieldSerialization:
         field = fields.Number(as_string=True, allow_none=True)
         assert field.serialize('age', user) is None
 
-    def test_callable_default(self, user):
-        field = fields.Field(default=lambda: 'nan')
-        assert field.serialize('age', {}) == 'nan'
-
     def test_function_field_passed_func(self, user):
         field = fields.Function(lambda obj: obj.name.upper())
         assert "FOO" == field.serialize("key", user)
@@ -815,6 +807,29 @@ class TestFieldSerialization:
         else:
             assert res is None
 
+class TestSchemaSerialization:
+
+    def test_serialize_with_missing_param_value(self):
+        class AliasingUserSerializer(Schema):
+            name = fields.String()
+            birthdate = fields.DateTime(default=dt.datetime(2017, 9, 29))
+        data = {
+            'name': 'Mick',
+        }
+        result = AliasingUserSerializer().dump(data)
+        assert result['name'] == 'Mick'
+        assert result['birthdate'] == '2017-09-29T00:00:00+00:00'
+
+    def test_serialize_with_missing_param_callable(self):
+        class AliasingUserSerializer(Schema):
+            name = fields.String()
+            birthdate = fields.DateTime(default=lambda: dt.datetime(2017, 9, 29))
+        data = {
+            'name': 'Mick',
+        }
+        result = AliasingUserSerializer().dump(data)
+        assert result['name'] == 'Mick'
+        assert result['birthdate'] == '2017-09-29T00:00:00+00:00'
 
 def test_serializing_named_tuple():
     Point = namedtuple('Point', ['x', 'y'])

pip install -e .[reco]
parse_log_pytest
requirements.txt
pytest pytest-cov pytest-xdist pytest-mock pytest-asyncio pytest
3.9
dev-requirements.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
attrs==25.3.0
coverage==7.8.0
distlib==0.3.9
exceptiongroup==1.2.2
execnet==2.1.1
filelock==3.18.0
flake8==3.5.0
iniconfig==2.1.0
invoke==0.22.0
-e git+https://github.com/marshmallow-code/marshmallow.git@08fba280e37f19ae24a82a93ec6868b6704e2f64#egg=marshmallow
mccabe==0.6.1
packaging==24.2
platformdirs==4.3.7
pluggy==1.5.0
py==1.11.0
pycodestyle==2.3.1
pyflakes==1.6.0
pytest==8.3.5
pytest-asyncio==0.26.0
pytest-cov==6.0.0
pytest-mock==3.14.0
pytest-xdist==3.6.1
python-dateutil==2.6.1
pytz==2017.3
simplejson==3.13.2
six==1.17.0
toml==0.10.2
tomli==2.2.1
tox==3.12.1
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
  - 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
  - pip=25.0=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
      - coverage==7.8.0
      - distlib==0.3.9
      - exceptiongroup==1.2.2
      - execnet==2.1.1
      - filelock==3.18.0
      - flake8==3.5.0
      - iniconfig==2.1.0
      - invoke==0.22.0
      - mccabe==0.6.1
      - packaging==24.2
      - platformdirs==4.3.7
      - pluggy==1.5.0
      - py==1.11.0
      - pycodestyle==2.3.1
      - pyflakes==1.6.0
      - pytest==8.3.5
      - pytest-asyncio==0.26.0
      - pytest-cov==6.0.0
      - pytest-mock==3.14.0
      - pytest-xdist==3.6.1
      - python-dateutil==2.6.1
      - pytz==2017.3
      - simplejson==3.13.2
      - six==1.17.0
      - toml==0.10.2
      - tomli==2.2.1
      - tox==3.12.1
      - typing-extensions==4.13.0
      - virtualenv==20.29.3
prefix: /opt/conda/envs/marshmallow

tests/test_deserialization.py::TestSchemaDeserialization::test_deserialize_with_missing_param_value tests/test_deserialization.py::TestSchemaDeserialization::test_deserialize_with_missing_param_callable tests/test_serialization.py::TestSchemaSerialization::test_serialize_with_missing_param_value tests/test_serialization.py::TestSchemaSerialization::test_serialize_with_missing_param_callable
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[LocalDateTime] 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[FormattedString] 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[LocalDateTime] 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[FormattedString] 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_empty_list 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_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_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_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_datetime_passed_year_is_invalid tests/test_deserialization.py::TestFieldDeserialization::test_datetime_passed_date_is_invalid tests/test_deserialization.py::TestFieldDeserialization::test_custom_date_format_datetime_field_deserialization tests/test_deserialization.py::TestFieldDeserialization::test_rfc_datetime_field_deserialization[rfc] tests/test_deserialization.py::TestFieldDeserialization::test_rfc_datetime_field_deserialization[rfc822] tests/test_deserialization.py::TestFieldDeserialization::test_iso_datetime_field_deserialization[iso] tests/test_deserialization.py::TestFieldDeserialization::test_iso_datetime_field_deserialization[iso8601] tests/test_deserialization.py::TestFieldDeserialization::test_localdatetime_field_deserialization 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 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_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_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_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_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_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::TestFieldDeserialization::test_field_deserialization_with_non_utf8_value 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_dump_only_param 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::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::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[LocalDateTime] 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] tests/test_deserialization.py::test_deserialize_raises_exception_if_input_type_is_incorrect[False] tests/test_deserialization.py::test_deserialize_raises_exception_if_input_type_is_incorrect[42] tests/test_deserialization.py::test_deserialize_raises_exception_if_input_type_is_incorrect[None] tests/test_deserialization.py::test_deserialize_raises_exception_if_input_type_is_incorrect[data4] tests/test_serialization.py::TestFieldSerialization::test_number[42-42.0] tests/test_serialization.py::TestFieldSerialization::test_number[0-0.0] tests/test_serialization.py::TestFieldSerialization::test_number[None-None] tests/test_serialization.py::TestFieldSerialization::test_number_as_string tests/test_serialization.py::TestFieldSerialization::test_number_as_string_passed_none tests/test_serialization.py::TestFieldSerialization::test_function_field_passed_func tests/test_serialization.py::TestFieldSerialization::test_function_field_passed_serialize_only_is_dump_only tests/test_serialization.py::TestFieldSerialization::test_function_field_passed_deserialize_and_serialize_is_not_dump_only tests/test_serialization.py::TestFieldSerialization::test_function_field_passed_serialize tests/test_serialization.py::TestFieldSerialization::test_function_field_does_not_swallow_attribute_error tests/test_serialization.py::TestFieldSerialization::test_function_field_load_only tests/test_serialization.py::TestFieldSerialization::test_function_field_passed_serialize_with_context tests/test_serialization.py::TestFieldSerialization::test_function_field_passed_uncallable_object tests/test_serialization.py::TestFieldSerialization::test_integer_field tests/test_serialization.py::TestFieldSerialization::test_integer_as_string_field tests/test_serialization.py::TestFieldSerialization::test_integer_field_default tests/test_serialization.py::TestFieldSerialization::test_integer_field_default_set_to_none tests/test_serialization.py::TestFieldSerialization::test_uuid_field tests/test_serialization.py::TestFieldSerialization::test_decimal_field tests/test_serialization.py::TestFieldSerialization::test_decimal_field_string tests/test_serialization.py::TestFieldSerialization::test_decimal_field_special_values tests/test_serialization.py::TestFieldSerialization::test_decimal_field_special_values_not_permitted tests/test_serialization.py::TestFieldSerialization::test_decimal_field_fixed_point_representation tests/test_serialization.py::TestFieldSerialization::test_boolean_field_serialization tests/test_serialization.py::TestFieldSerialization::test_function_with_uncallable_param tests/test_serialization.py::TestFieldSerialization::test_email_field_serialize_none tests/test_serialization.py::TestFieldSerialization::test_dict_field_serialize_none tests/test_serialization.py::TestFieldSerialization::test_dict_field_invalid_dict_but_okay tests/test_serialization.py::TestFieldSerialization::test_dict_field_serialize tests/test_serialization.py::TestFieldSerialization::test_dict_field_serialize_ordereddict tests/test_serialization.py::TestFieldSerialization::test_structured_dict_value_serialize tests/test_serialization.py::TestFieldSerialization::test_structured_dict_key_serialize tests/test_serialization.py::TestFieldSerialization::test_structured_dict_key_value_serialize tests/test_serialization.py::TestFieldSerialization::test_structured_dict_validates tests/test_serialization.py::TestFieldSerialization::test_url_field_serialize_none tests/test_serialization.py::TestFieldSerialization::test_method_field_with_method_missing tests/test_serialization.py::TestFieldSerialization::test_method_field_passed_serialize_only_is_dump_only tests/test_serialization.py::TestFieldSerialization::test_method_field_passed_deserialize_only_is_load_only tests/test_serialization.py::TestFieldSerialization::test_method_field_with_uncallable_attribute tests/test_serialization.py::TestFieldSerialization::test_method_field_does_not_swallow_attribute_error tests/test_serialization.py::TestFieldSerialization::test_method_with_no_serialize_is_missing tests/test_serialization.py::TestFieldSerialization::test_serialize_with_data_key_param tests/test_serialization.py::TestFieldSerialization::test_serialize_with_attribute_and_data_key_uses_data_key tests/test_serialization.py::TestFieldSerialization::test_datetime_serializes_to_iso_by_default tests/test_serialization.py::TestFieldSerialization::test_datetime_invalid_serialization[invalid] tests/test_serialization.py::TestFieldSerialization::test_datetime_invalid_serialization[value1] tests/test_serialization.py::TestFieldSerialization::test_datetime_invalid_serialization[24] tests/test_serialization.py::TestFieldSerialization::test_datetime_field_rfc822[rfc] tests/test_serialization.py::TestFieldSerialization::test_datetime_field_rfc822[rfc822] tests/test_serialization.py::TestFieldSerialization::test_localdatetime_rfc_field tests/test_serialization.py::TestFieldSerialization::test_datetime_iso8601[iso] tests/test_serialization.py::TestFieldSerialization::test_datetime_iso8601[iso8601] tests/test_serialization.py::TestFieldSerialization::test_localdatetime_iso tests/test_serialization.py::TestFieldSerialization::test_datetime_format tests/test_serialization.py::TestFieldSerialization::test_string_field tests/test_serialization.py::TestFieldSerialization::test_formattedstring_field tests/test_serialization.py::TestFieldSerialization::test_formattedstring_field_on_schema tests/test_serialization.py::TestFieldSerialization::test_string_field_default_to_empty_string tests/test_serialization.py::TestFieldSerialization::test_time_field tests/test_serialization.py::TestFieldSerialization::test_invalid_time_field_serialization[badvalue] tests/test_serialization.py::TestFieldSerialization::test_invalid_time_field_serialization[] tests/test_serialization.py::TestFieldSerialization::test_invalid_time_field_serialization[in_data2] tests/test_serialization.py::TestFieldSerialization::test_invalid_time_field_serialization[42] tests/test_serialization.py::TestFieldSerialization::test_date_field tests/test_serialization.py::TestFieldSerialization::test_invalid_date_field_serialization[badvalue] tests/test_serialization.py::TestFieldSerialization::test_invalid_date_field_serialization[] tests/test_serialization.py::TestFieldSerialization::test_invalid_date_field_serialization[in_data2] tests/test_serialization.py::TestFieldSerialization::test_invalid_date_field_serialization[42] tests/test_serialization.py::TestFieldSerialization::test_timedelta_field tests/test_serialization.py::TestFieldSerialization::test_datetime_list_field tests/test_serialization.py::TestFieldSerialization::test_list_field_with_error tests/test_serialization.py::TestFieldSerialization::test_datetime_list_serialize_single_value tests/test_serialization.py::TestFieldSerialization::test_list_field_serialize_none_returns_none tests/test_serialization.py::TestFieldSerialization::test_list_field_respect_inner_attribute tests/test_serialization.py::TestFieldSerialization::test_list_field_respect_inner_attribute_single_value tests/test_serialization.py::TestFieldSerialization::test_list_field_work_with_generator_single_value tests/test_serialization.py::TestFieldSerialization::test_list_field_work_with_generators_multiple_values tests/test_serialization.py::TestFieldSerialization::test_list_field_work_with_generators_error tests/test_serialization.py::TestFieldSerialization::test_list_field_work_with_generators_empty_generator_returns_none_for_every_non_returning_yield_statement tests/test_serialization.py::TestFieldSerialization::test_list_field_work_with_set tests/test_serialization.py::TestFieldSerialization::test_list_field_work_with_custom_class_with_iterator_protocol tests/test_serialization.py::TestFieldSerialization::test_bad_list_field tests/test_serialization.py::TestFieldSerialization::test_serialize_does_not_apply_validators tests/test_serialization.py::TestFieldSerialization::test_constant_field_serialization tests/test_serialization.py::TestFieldSerialization::test_constant_is_always_included_in_serialized_data tests/test_serialization.py::TestFieldSerialization::test_constant_field_serialize_when_omitted tests/test_serialization.py::TestFieldSerialization::test_all_fields_serialize_none_to_none[String] tests/test_serialization.py::TestFieldSerialization::test_all_fields_serialize_none_to_none[Integer] tests/test_serialization.py::TestFieldSerialization::test_all_fields_serialize_none_to_none[Boolean] tests/test_serialization.py::TestFieldSerialization::test_all_fields_serialize_none_to_none[Float] tests/test_serialization.py::TestFieldSerialization::test_all_fields_serialize_none_to_none[Number] tests/test_serialization.py::TestFieldSerialization::test_all_fields_serialize_none_to_none[DateTime] tests/test_serialization.py::TestFieldSerialization::test_all_fields_serialize_none_to_none[LocalDateTime] tests/test_serialization.py::TestFieldSerialization::test_all_fields_serialize_none_to_none[Time] tests/test_serialization.py::TestFieldSerialization::test_all_fields_serialize_none_to_none[Date] tests/test_serialization.py::TestFieldSerialization::test_all_fields_serialize_none_to_none[TimeDelta] tests/test_serialization.py::TestFieldSerialization::test_all_fields_serialize_none_to_none[Dict] tests/test_serialization.py::TestFieldSerialization::test_all_fields_serialize_none_to_none[Url] tests/test_serialization.py::TestFieldSerialization::test_all_fields_serialize_none_to_none[Email] tests/test_serialization.py::TestFieldSerialization::test_all_fields_serialize_none_to_none[FormattedString] tests/test_serialization.py::TestFieldSerialization::test_all_fields_serialize_none_to_none[UUID] tests/test_serialization.py::TestFieldSerialization::test_all_fields_serialize_none_to_none[Decimal] tests/test_serialization.py::test_serializing_named_tuple tests/test_serialization.py::test_serializing_named_tuple_with_meta tests/test_serialization.py::test_serializing_slice
docs/quickstart.rst marshmallow/marshalling.py docs/upgrading.rst marshmallow/fields.py
docs/quickstart.rst marshmallow/marshalling.py docs/upgrading.rst marshmallow/fields.py