marshmallow 4.2.0__tar.gz → 4.2.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {marshmallow-4.2.0 → marshmallow-4.2.1}/CHANGELOG.rst +8 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/PKG-INFO +1 -1
- {marshmallow-4.2.0 → marshmallow-4.2.1}/pyproject.toml +1 -1
- {marshmallow-4.2.0 → marshmallow-4.2.1}/src/marshmallow/schema.py +1 -1
- {marshmallow-4.2.0 → marshmallow-4.2.1}/src/marshmallow/validate.py +2 -2
- {marshmallow-4.2.0 → marshmallow-4.2.1}/tests/test_validate.py +8 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/CONTRIBUTING.rst +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/LICENSE +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/NOTICE +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/README.rst +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/SECURITY.md +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/docs/.gitignore +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/docs/_static/apple-touch-icon.png +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/docs/_static/custom.css +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/docs/_static/favicon.ico +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/docs/_static/marshmallow-logo-200.png +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/docs/_static/marshmallow-logo-with-title-for-dark-theme.png +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/docs/_static/marshmallow-logo-with-title.png +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/docs/_static/marshmallow-logo.png +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/docs/api_reference.rst +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/docs/authors.rst +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/docs/changelog.rst +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/docs/code_of_conduct.rst +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/docs/conf.py +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/docs/contributing.rst +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/docs/custom_fields.rst +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/docs/dashing.json +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/docs/donate.rst +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/docs/examples/index.rst +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/docs/examples/inflection.rst +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/docs/examples/quotes_api.rst +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/docs/examples/validating_package_json.rst +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/docs/extending/custom_error_handling.rst +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/docs/extending/custom_error_messages.rst +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/docs/extending/custom_options.rst +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/docs/extending/index.rst +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/docs/extending/overriding_attribute_access.rst +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/docs/extending/pre_and_post_processing_methods.rst +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/docs/extending/schema_validation.rst +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/docs/extending/using_original_input_data.rst +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/docs/index.rst +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/docs/install.rst +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/docs/kudos.rst +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/docs/license.rst +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/docs/marshmallow.class_registry.rst +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/docs/marshmallow.decorators.rst +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/docs/marshmallow.error_store.rst +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/docs/marshmallow.exceptions.rst +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/docs/marshmallow.experimental.context.rst +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/docs/marshmallow.fields.rst +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/docs/marshmallow.schema.rst +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/docs/marshmallow.types.rst +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/docs/marshmallow.utils.rst +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/docs/marshmallow.validate.rst +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/docs/nesting.rst +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/docs/quickstart.rst +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/docs/top_level.rst +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/docs/upgrading.rst +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/docs/whos_using.rst +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/docs/why.rst +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/src/marshmallow/__init__.py +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/src/marshmallow/class_registry.py +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/src/marshmallow/constants.py +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/src/marshmallow/decorators.py +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/src/marshmallow/error_store.py +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/src/marshmallow/exceptions.py +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/src/marshmallow/experimental/__init__.py +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/src/marshmallow/experimental/context.py +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/src/marshmallow/fields.py +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/src/marshmallow/orderedset.py +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/src/marshmallow/py.typed +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/src/marshmallow/types.py +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/src/marshmallow/utils.py +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/tests/__init__.py +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/tests/base.py +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/tests/conftest.py +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/tests/foo_serializer.py +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/tests/mypy_test_cases/test_class_registry.py +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/tests/mypy_test_cases/test_schema.py +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/tests/mypy_test_cases/test_validation_error.py +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/tests/test_context.py +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/tests/test_decorators.py +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/tests/test_deserialization.py +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/tests/test_error_store.py +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/tests/test_exceptions.py +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/tests/test_fields.py +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/tests/test_options.py +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/tests/test_registry.py +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/tests/test_schema.py +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/tests/test_serialization.py +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/tests/test_utils.py +0 -0
- {marshmallow-4.2.0 → marshmallow-4.2.1}/tox.ini +0 -0
|
@@ -2,6 +2,14 @@ Changelog
|
|
|
2
2
|
=========
|
|
3
3
|
|
|
4
4
|
|
|
5
|
+
4.2.1 (2026-01-23)
|
|
6
|
+
------------------
|
|
7
|
+
|
|
8
|
+
Bug fixes:
|
|
9
|
+
|
|
10
|
+
- Fix validation of URLs beginning with uppercare `FILE` (:issue:`2891`).
|
|
11
|
+
Thanks :user:`thanhlecongg` for reporting and fixing.
|
|
12
|
+
|
|
5
13
|
4.2.0 (2026-01-04)
|
|
6
14
|
------------------
|
|
7
15
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: marshmallow
|
|
3
|
-
Version: 4.2.
|
|
3
|
+
Version: 4.2.1
|
|
4
4
|
Summary: A lightweight library for converting complex datatypes to and from native Python datatypes.
|
|
5
5
|
Author-email: Steven Loria <oss@stevenloria.com>
|
|
6
6
|
Maintainer-email: Steven Loria <oss@stevenloria.com>, Jérôme Lafréchoux <jerome@jolimont.fr>, Jared Deckard <jared@shademaps.com>
|
|
@@ -388,7 +388,7 @@ class Schema(metaclass=SchemaMeta):
|
|
|
388
388
|
load_only: typing.ClassVar[tuple[str, ...] | list[str]]
|
|
389
389
|
"""Fields to exclude from serialized results"""
|
|
390
390
|
dump_only: typing.ClassVar[tuple[str, ...] | list[str]]
|
|
391
|
-
"""Fields to exclude from
|
|
391
|
+
"""Fields to exclude from deserialized results"""
|
|
392
392
|
unknown: typing.ClassVar[types.UnknownOption]
|
|
393
393
|
"""Whether to exclude, include, or raise an error for unknown fields in the data.
|
|
394
394
|
Use `EXCLUDE`, `INCLUDE` or `RAISE`.
|
|
@@ -214,8 +214,8 @@ class URL(Validator):
|
|
|
214
214
|
|
|
215
215
|
# Hostname is optional for file URLS. If absent it means `localhost`.
|
|
216
216
|
# Fill it in for the validation if needed
|
|
217
|
-
if scheme == "file" and value.startswith("file:///"):
|
|
218
|
-
matched = regex.search(
|
|
217
|
+
if scheme == "file" and value.lower().startswith("file:///"):
|
|
218
|
+
matched = regex.search("file://localhost/" + value[8:])
|
|
219
219
|
else:
|
|
220
220
|
matched = regex.search(value)
|
|
221
221
|
|
|
@@ -224,6 +224,14 @@ def test_url_custom_scheme_case_insensitive():
|
|
|
224
224
|
"file:///tmp/test%20file.txt",
|
|
225
225
|
"file:///",
|
|
226
226
|
"file://localhost/",
|
|
227
|
+
"FILE:///tmp/tmp1234",
|
|
228
|
+
"FILE://localhost/tmp/tmp1234",
|
|
229
|
+
"FILE:///C:/Users/test/file.txt",
|
|
230
|
+
"FILE://localhost/C:/Program%20Files/file.exe",
|
|
231
|
+
"FILE:///home/user/documents/test.pdf",
|
|
232
|
+
"FILE:///tmp/test%20file.txt",
|
|
233
|
+
"FILE:///",
|
|
234
|
+
"FILE://localhost/",
|
|
227
235
|
),
|
|
228
236
|
)
|
|
229
237
|
def test_url_accepts_valid_file_urls(valid_url):
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{marshmallow-4.2.0 → marshmallow-4.2.1}/docs/_static/marshmallow-logo-with-title-for-dark-theme.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|