🐛 Fix list convertor with an empty list default factory #1350
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixing the regression that happened after #1018, recently released as v0.19.1.
In v0.19.0, this was the original code for the
internal_converor
:The author in #1018 changed that to:
which made the (new) tests succeed, but had some typing issues.
value
should optionally beNone
(the fact that we didn't account for that was the reason for the bug that #1018 was solving).Then
mypy
(understandably) needed a guarantee thatvalue
wasn'tNone
by the final statement. Because of this, I rewrote the fix in #1018 tobut this was a mistake and has caused a new bug as reported in #1349. I've written a new unit test to cover that bug in this PR, and now propose to revert this code to a solution in the middle:
comparing this to the original code from v0.19.0, the only thing that changes is the
(value is None) or
part. This seems a much cleaner and much less error-prone suggestion than what we eventually had in #1018.