← 返回首页
gh-104035: Do not ignore user-defined `__{get,set}state__` in slotted frozen dataclasses by sobolevn · Pull Request #104041 · python/cpython · GitHub
Skip to content

Navigation Menu

Toggle navigation
Sign in
Appearance settings
Search or jump to...

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Include my email address so I can be contacted

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
Resetting focus

gh-104035: Do not ignore user-defined __{get,set}state__ in slotted frozen dataclasses#104041

Merged
carljm merged 2 commits into
python:mainfrom
sobolevn:issue-104035
May 1, 2023
Merged

gh-104035: Do not ignore user-defined __{get,set}state__ in slotted frozen dataclasses#104041
carljm merged 2 commits into
python:mainfrom
sobolevn:issue-104035

Conversation

sobolevn commented May 1, 2023
edited by bedevere-bot
Loading

Copy link
Copy Markdown
Member

I had some time to look at this problem. Here's what I found:

  1. Our docs do not say anything about __getstate__ or __setstate__ methods and their generation: https://docs.python.org/3/library/dataclasses.html
  2. I think that this new implementation is in-line with other methods / attributes generation
  3. It should not break any existing code, except cases where some invalid __getstate__ / __setstate__ method was overridden with the correct one (but, there's nothing we can do if user already has invalid code)
  4. This seems like a bug-fix, so probably it should be back-ported to 3.11 as well

carljm added the needs backport to 3.11 only security fixes label May 1, 2023
carljm merged commit 99aab61 into python:main May 1, 2023

Copy link
Copy Markdown
Contributor

Thanks @sobolevn for the PR, and @carljm for merging it 🌮🎉.. I'm working now to backport this PR to: 3.11.
🐍🍒⛏🤖

Copy link
Copy Markdown

GH-104044 is a backport of this pull request to the 3.11 branch.

miss-islington pushed a commit to miss-islington/cpython that referenced this pull request May 1, 2023
…lotted frozen dataclasses (pythonGH-104041) (cherry picked from commit 99aab61) Co-authored-by: Nikita Sobolev <mail@sobolevn.me>
bedevere-bot removed the needs backport to 3.11 only security fixes label May 1, 2023
carljm pushed a commit that referenced this pull request May 1, 2023
…slotted frozen dataclasses (GH-104041) (#104044) gh-104035: Do not ignore user-defined `__{get,set}state__` in slotted frozen dataclasses (GH-104041) (cherry picked from commit 99aab61) Co-authored-by: Nikita Sobolev <mail@sobolevn.me>
carljm added a commit to carljm/cpython that referenced this pull request May 1, 2023
* main: (463 commits) pythongh-104057: Fix direct invocation of test_super (python#104064) pythongh-87092: Expose assembler to unit tests (python#103988) pythongh-97696: asyncio eager tasks factory (python#102853) pythongh-84436: Immortalize in _PyStructSequence_InitBuiltinWithFlags() (pythongh-104054) pythongh-104057: Fix direct invocation of test_module (pythonGH-104059) pythongh-100458: Clarify Enum.__format__() change of mixed-in types in the whatsnew/3.11.rst (pythonGH-100387) pythongh-104018: disallow "z" format specifier in %-format of byte strings (pythonGH-104033) pythongh-104016: Fixed off by 1 error in f string tokenizer (python#104047) pythonGH-103629: Update Unpack's repr in compliance with PEP 692 (python#104048) pythongh-102799: replace sys.exc_info by sys.exception in inspect and traceback modules (python#104032) Fix typo in "expected" word in few source files (python#104034) pythongh-103824: fix use-after-free error in Parser/tokenizer.c (python#103993) pythongh-104035: Do not ignore user-defined `__{get,set}state__` in slotted frozen dataclasses (python#104041) pythongh-104028: Reduce object creation while calling callback function from gc (pythongh-104030) pythongh-104036: Fix direct invocation of test_typing (python#104037) pythongh-102213: Optimize the performance of `__getattr__` (pythonGH-103761) pythongh-103895: Improve how invalid `Exception.__notes__` are displayed (python#103897) Adjust expression from `==` to `!=` in alignment with the meaning of the paragraph. (pythonGH-104021) pythongh-88496: Fix IDLE test hang on macOS (python#104025) Improve int test coverage (python#104024) ...
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

Footer

© 2026 GitHub, Inc.