Closed hydrargyrum closed 1 year ago
I was unable to reproduce on python 3.10.8 with marshmallow-dataclass==8.5.10. Reverting to 8.5.9 produces the same output that you pasted above though. For reference:
(venv) $ cat requirements.txt
marshmallow==3.19.0
marshmallow-dataclass==8.5.10
marshmallow-enum==1.5.1
marshmallow-oneofschema==2.1.0
(venv) $ pip install -r requirements.txt
Requirement already satisfied: marshmallow==3.19.0 in ./venv/lib/python3.10/site-packages (from -r requirements.txt (line 1)) (3.19.0)
...
(venv) $ pip freeze
marshmallow==3.19.0
marshmallow-dataclass==8.5.10
marshmallow-enum==1.5.1
marshmallow-oneofschema==2.1.0
mypy-extensions==0.4.3
packaging==22.0
typing-inspect==0.8.0
typing_extensions==4.4.0
(venv) $ python -V
Python 3.10.8
(venv) $ python test.py
WithOptional(id=None)
WithUnion(id=None)
WithOr(id=None)
I was unable to reproduce on python 3.10.8 with marshmallow-dataclass==8.5.10. Reverting to 8.5.9 produces the same output that you pasted above though.
PR #219, included as of release 8.5.10, should (at least, in theory) support the str | None
notation.
(There is even a regression test for it.)
Ok the issue seems when this version is pinned: typing-inspect==0.7.1
I see. I believe that's sort of expected since support for UnionType was only added here in typing-inspect v0.8.0.
It seems that marshmallow-dataclass only specifies typing-inspect>=0.7.1 in its setup.py, so I think this actually is a bug after all.
It seems that marshmallow-dataclass only specifies typing-inspect>=0.7.1 in its setup.py, so I think this actually is a bug after all.
I've just pushed 1d0f019cc5b85e6e940669962dda84c300a717ea which pins typing-inspect>=0.8.0
.
Thanks, @hydrargyrum and @otonnesen, for the report and diagnosis.
Let me know if there's a need for an immediate new release (of marshmallow-dataclass), otherwise, I'll wait until there are more changes before making the next release.
With these versions:
The following snippet breaks:
with error: