New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
gh-104265 Disallow instantiation of _csv.Reader
and _csv.Writer
#104266
gh-104265 Disallow instantiation of _csv.Reader
and _csv.Writer
#104266
Conversation
…r` types Set `Py_TPFLAGS_DISALLOW_INSTANTIATION` and unset `Py_TPFLAGS_BASETYPE` flags on `Reader` and `Writer` types to prevent their instantiation and subtyping
_csv.Reader
and _csv.Writer
_csv.Reader
and _csv.Writer
Thanks! This needs a NEWS entry, preferrably with a reference to when the bug was introduced. I think this should be backported through to 3.10. |
Also, please add tests. There's a dedicated test.support helper for this. Grep through the code base to find it and see how it's used. |
@erlend-aasland, are you talking about |
There's a disallow_instantiation helper in test.support. |
Ah, 3.10 is in security fix mode, so we can only backport to 3.11. |
Some history, the original issue for applying PEP-384 to the _csv extension module:
A later (duplicate issue); the linked PRs were closed and incorporated into gh-23224
As you can see, both the Writer and the Reader class had |
_csv.Reader
and _csv.Writer
_csv.Reader
and _csv.Writer
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changes requested:
- Revert
Py_TPFLAGS_BASETYPE
changes - Add NEWS entry
A Python core developer has requested some changes be made to your pull request before we can consider merging it. If you could please address their requests along with any other requests in other reviews from core developers that would be appreciated. Once you have made the requested changes, please leave a comment on this pull request containing the phrase |
Indeed it did. You can reference GitHub issues/PRs with the
|
I have made the requested changes; please review again |
Thanks for making the requested changes! @erlend-aasland: please review the changes made to this pull request. |
Misc/NEWS.d/next/Library/2023-05-07-19-56-45.gh-issue-104265.fVblry.rst
Outdated
Show resolved
Hide resolved
…ub.com:chgnrdv/cpython into _csv-make-Reader-Writer-types-non-instantiable
Thank you so much for the report and bugfix, Radislav; good job! |
Thanks @chgnrdv for the PR, and @erlend-aasland for merging it |
GH-104278 is a backport of this pull request to the 3.11 branch. |
…ter` (pythonGH-104266) (cherry picked from commit 06c2a48) Co-authored-by: chgnrdv <52372310+chgnrdv@users.noreply.github.com>
@erlend-aasland, thank you for your patient review :) |
Fixes #104265
Set
Py_TPFLAGS_DISALLOW_INSTANTIATION
and unsetPy_TPFLAGS_BASETYPE
flags onReader
andWriter
types to prevent their instantiation and subtyping_csv
Reader
andWriter
types shouldn't be directly instantiable #104265