[packages/python3-dataclasses-json] - apply PR with marshmallow 4 support

qboosh qboosh at pld-linux.org
Fri Oct 2 22:01:20 CEST 2026


commit d1595ed662b400807eb2abd284fa0b8a95ae72d0
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Fri Oct 2 22:01:41 2026 +0200

    - apply PR with marshmallow 4 support

 dataclasses_json-marshmallow4.patch | 77 +++++++++++++++++++++++++++++++++++++
 python3-dataclasses-json.spec       |  3 ++
 2 files changed, 80 insertions(+)
---
diff --git a/python3-dataclasses-json.spec b/python3-dataclasses-json.spec
index 0e4c9c7..0d5ab5e 100644
--- a/python3-dataclasses-json.spec
+++ b/python3-dataclasses-json.spec
@@ -8,6 +8,8 @@ Group:		Libraries/Python
 #Source0Download: https://pypi.org/simple/dataclasses-json/
 Source0:	https://files.pythonhosted.org/packages/source/d/dataclasses-json/dataclasses_json-%{version}.tar.gz
 # Source0-md5:	bfcfcd66a85092c89e7b04ed8fa07a9e
+# part of https://github.com/lidatong/dataclasses-json/pull/577.patch (without update of poetry.lock, which is not present in sdist)
+Patch0:		dataclasses_json-marshmallow4.patch
 URL:		https://pypi.org/project/dataclasses-json/
 BuildRequires:	python3-build
 BuildRequires:	python3-installer
@@ -30,6 +32,7 @@ dataclass do/z JSON-a.
 
 %prep
 %setup -q -n dataclasses_json-%{version}
+%patch -P0 -p1
 
 %build
 %py3_build_pyproject
diff --git a/dataclasses_json-marshmallow4.patch b/dataclasses_json-marshmallow4.patch
new file mode 100644
index 0000000..cc4a7ca
--- /dev/null
+++ b/dataclasses_json-marshmallow4.patch
@@ -0,0 +1,77 @@
+From 3498ccd5d8014ec1208d2aaf03db2fb0a0ef2cc2 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Mark=C3=A9ta?= <meggy.calabkova at gmail.com>
+Date: Tue, 2 Jun 2026 17:52:45 +0200
+Subject: [PATCH 1/2] support marshmallow 4
+
+---
+ dataclasses_json/api.py |  1 -
+ dataclasses_json/mm.py  | 10 ++++++----
+ 2 files changed, 6 insertions(+), 5 deletions(-)
+
+diff --git a/dataclasses_json/api.py b/dataclasses_json/api.py
+index 3481e93f..5660b8d3 100644
+--- a/dataclasses_json/api.py
++++ b/dataclasses_json/api.py
+@@ -95,7 +95,6 @@ def schema(cls: Type[A],
+         return Schema(only=only,
+                       exclude=exclude,
+                       many=many,
+-                      context=context,
+                       load_only=load_only,
+                       dump_only=dump_only,
+                       partial=partial,
+diff --git a/dataclasses_json/mm.py b/dataclasses_json/mm.py
+index 9cfacf1d..08aa5790 100644
+--- a/dataclasses_json/mm.py
++++ b/dataclasses_json/mm.py
+@@ -245,9 +245,11 @@ def inner(type_, options):
+ 
+         if is_dataclass(type_):
+             if _issubclass_safe(type_, mixin):
+-                options['field_many'] = bool(
+-                    _is_supported_generic(field.type) and _is_collection(
+-                        field.type))
++                options['metadata'] = {
++                    "field_many": bool(
++                        _is_supported_generic(field.type) and _is_collection(
++                            field.type))
++                    }
+                 return fields.Nested(type_.schema(), **options)
+             else:
+                 warnings.warn(f"Nested dataclass field {field.name} of type "
+@@ -305,7 +307,7 @@ def schema(cls, mixin, infer_missing):
+         else:
+             type_ = field.type
+             options: typing.Dict[str, typing.Any] = {}
+-            missing_key = 'missing' if infer_missing else 'default'
++            missing_key = 'load_default' if infer_missing else 'dump_default'
+             if field.default is not MISSING:
+                 options[missing_key] = field.default
+             elif field.default_factory is not MISSING:
+
+From 58466d1caec7a9a998a5b3eadeb2f52a8a97f8ff Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Mark=C3=A9ta?= <meggy.calabkova at gmail.com>
+Date: Tue, 2 Jun 2026 18:26:36 +0200
+Subject: [PATCH 2/2] update poetry.lock to marshmallow >= 4 and python >= 3.9
+
+---
+ poetry.lock    | 2170 +++++++++++++++++++++++++++++++++---------------
+ pyproject.toml |    4 +-
+ 2 files changed, 1507 insertions(+), 667 deletions(-)
+
+diff --git a/pyproject.toml b/pyproject.toml
+index 20a147fb..62a63de0 100644
+--- a/pyproject.toml
++++ b/pyproject.toml
+@@ -9,9 +9,9 @@ readme = "README.md"
+ repository = 'https://github.com/lidatong/dataclasses-json'
+ 
+ [tool.poetry.dependencies]
+-python = "^3.7"
++python = "^3.9"
+ typing-inspect = ">=0.4.0, <1"
+-marshmallow = ">=3.18.0,<4.0.0"
++marshmallow = ">=4.0.0"
+ 
+ [tool.poetry.group.dev.dependencies]
+ pytest = "^7.1"
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/python3-dataclasses-json.git/commitdiff/d1595ed662b400807eb2abd284fa0b8a95ae72d0



More information about the pld-cvs-commit mailing list