-
-
Notifications
You must be signed in to change notification settings - Fork 32.3k
gh-95245: Document Py_TPFLAGS_PREHEADER #135861
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
base: main
Are you sure you want to change the base?
gh-95245: Document Py_TPFLAGS_PREHEADER #135861
Conversation
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.
We should include documentation on the type object page too.
@ZeroIntensity Thanks for review! Fixed (I hope :) |
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.
I think that if this is internal-only, it would be better to completely drop it from public headers rather than document it as such.
Misc/NEWS.d/next/Core_and_Builtins/2025-06-24-13-08-15.gh-issue-95245.3whjTE.rst
Outdated
Show resolved
Hide resolved
(Don't do this yet, by the way. Let's come to a consensus in the issue.) |
As no comments from @iritkatriel or @markshannon I propose to make it internal as @ZeroIntensity suggested and rename it to @encukou WDYT? |
Per PEP-387, removing (or renaming) it probablyneeds a deprecation cycle. Or is there evidence that no existing code uses it? |
Since the It might be better to rename it to |
https://grep.app/search?q=Py_TPFLAGS_PREHEADER shows close to nothing of usage. Also, I'm downloading top-pypi packages to checks usage (as described here https://hugovk.dev/blog/2022/how-to-search-5000-python-projects/), will report as it finished. |
@markshannon WDYT about wordings in this PR? Can you suggest some improvements? |
Searched over 13k+ packages:
|
If it's public, it's best not to rename it. |
Co-authored-by: Petr Viktorin <[email protected]>
Currently, this macro is equivalent to | ||
:c:expr:`Py_TPFLAGS_MANAGED_DICT | Py_TPFLAGS_MANAGED_WEAKREF`. | ||
|
||
This macro is intended for internal usage only; prefer using individual |
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.
I'm still not a big fan of documenting this as internal-only. If it's in the public headers and documentation, it should be at least usable. How about we say that its value is unstable, so we can change it later?
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.
What about this?
This macro is intended for internal usage only and may be changed without any notes
Is it OK or you prefer to completely remove the internal usage
part?
I think it's probably safe to rename it, at least for 3.14. Based on a code search, we're the only ones who use it (all the non-CPython mentions are people copying our headers). |
Only recordclass uses it - #135861 (comment) |
I see following usages of Py_TPFLAGS_PREHEADER:
I checked all linked PR from #95245 and can't find any explanation. I also checked https://github.com/python/cpython/blob/main/Objects/object_layout.md.
@encukou Please take a look.