Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 33.9k
gh-104265 Disallow instantiation of _csv.Reader and _csv.Writer#104266
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
Uh oh!
There was an error while loading. Please reload this page.
Conversation
chgnrdv commented May 7, 2023 • edited by bedevere-bot
Loading Uh oh!
There was an error while loading. Please reload this page.
edited by bedevere-bot
Uh oh!
There was an error while loading. Please reload this page.
…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.Writererlend-aasland commented May 7, 2023
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. |
erlend-aasland commented May 7, 2023
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. |
chgnrdv commented May 7, 2023 • edited
Loading Uh oh!
There was an error while loading. Please reload this page.
edited
Uh oh!
There was an error while loading. Please reload this page.
@erlend-aasland, are you talking about |
erlend-aasland commented May 7, 2023
There's a disallow_instantiation helper in test.support. |
erlend-aasland commented May 7, 2023
Ah, 3.10 is in security fix mode, so we can only backport to 3.11. |
erlend-aasland commented May 7, 2023
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
erlend-aasland left a comment • edited
Loading Uh oh!
There was an error while loading. Please reload this page.
edited
Uh oh!
There was an error while loading. Please reload this page.
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_BASETYPEchanges - Add NEWS entry
bedevere-bot commented May 7, 2023
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 |
chgnrdv commented May 7, 2023
erlend-aasland commented May 7, 2023
Indeed it did. You can reference GitHub issues/PRs with the |
chgnrdv commented May 7, 2023
I have made the requested changes; please review again |
bedevere-bot commented May 7, 2023
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 resolvedHide resolved
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
…ub.com:chgnrdv/cpython into _csv-make-Reader-Writer-types-non-instantiable
erlend-aasland commented May 7, 2023
Thank you so much for the report and bugfix, Radislav; good job! |
miss-islington commented May 7, 2023
Thanks @chgnrdv for the PR, and @erlend-aasland for merging it 🌮🎉.. I'm working now to backport this PR to: 3.11. |
bedevere-bot commented May 7, 2023
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>
chgnrdv commented May 7, 2023
@erlend-aasland, thank you for your patient review :) |
* main: (47 commits) pythongh-97696 Remove unnecessary check for eager_start kwarg (python#104188) pythonGH-104308: socket.getnameinfo should release the GIL (python#104307) pythongh-104310: Add importlib.util.allowing_all_extensions() (pythongh-104311) pythongh-99113: A Per-Interpreter GIL! (pythongh-104210) pythonGH-104284: Fix documentation gettext build (python#104296) pythongh-89550: Buffer GzipFile.write to reduce execution time by ~15% (python#101251) pythongh-104223: Fix issues with inheriting from buffer classes (python#104227) pythongh-99108: fix typo in Modules/Setup (python#104293) pythonGH-104145: Use fully-qualified cross reference types for the bisect module (python#104172) pythongh-103193: Improve `getattr_static` test coverage (python#104286) Trim trailing whitespace and test on CI (python#104275) pythongh-102500: Remove mention of bytes shorthand (python#104281) pythongh-97696: Improve and fix documentation for asyncio eager tasks (python#104256) pythongh-99108: Replace SHA3 implementation HACL* version (python#103597) pythongh-104273: Remove redundant len() calls in argparse function (python#104274) pythongh-64660: Don't hardcode Argument Clinic return converter result variable name (python#104200) pythongh-104265 Disallow instantiation of `_csv.Reader` and `_csv.Writer` (python#104266) pythonGH-102613: Improve performance of `pathlib.Path.rglob()` (pythonGH-104244) pythongh-103650: Fix perf maps address format (python#103651) pythonGH-89812: Churn `pathlib.Path` methods (pythonGH-104243) ...
Fixes#104265
Set
Py_TPFLAGS_DISALLOW_INSTANTIATIONand unsetPy_TPFLAGS_BASETYPEflags onReaderandWritertypes to prevent their instantiation and subtyping_csvReaderandWritertypes shouldn't be directly instantiable #104265