]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
gh-98886: Fix issues with dataclass fields with special underscore names (#102032)
authorShantanu <12621235+hauntsaninja@users.noreply.github.com>
Sat, 25 Mar 2023 21:40:11 +0000 (14:40 -0700)
committerGitHub <noreply@github.com>
Sat, 25 Mar 2023 21:40:11 +0000 (14:40 -0700)
commit718e86671fe62a706c460b7f049b196e434cb5b3
tree26cd28586e4b45a8507769c1bcc56b54034e366a
parent027223db96b0464c49a74513f82a1bf25aa510bd
gh-98886: Fix issues with dataclass fields with special underscore names (#102032)

This commit prefixes `__dataclass` to several things in the locals dict:
- Names like `_dflt_` (which cause trouble, see first test)
- Names like `_type_` (not known to be able to cause trouble)
- `_return_type` (not known to able to cause trouble)
- `_HAS_DEFAULT_FACTORY` (which causes trouble, see second test)

In addition, this removes `MISSING` from the locals dict. As far as I can tell, this wasn't needed even in the initial implementation of dataclasses.py (and tests on that version passed with it removed). This makes me wary :-)

This is basically a continuation of #96151, where fixing this was welcomed in https://github.com/python/cpython/pull/98143#issuecomment-1280306360
Lib/dataclasses.py
Lib/test/test_dataclasses.py
Misc/NEWS.d/next/Library/2023-02-18-23-03-50.gh-issue-98886.LkKGWv.rst [new file with mode: 0644]