Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork34k
gh-141004: Document missingPyDateTime* APIs.#141543
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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
gh-141004: Document missingPyDateTime* APIs.#141543
Uh oh!
There was an error while loading.Please reload this page.
Conversation
Doc/c-api/datetime.rst Outdated
| .. c:macro:: PyDateTime_IMPORT() | ||
| Import the datetime C API. The macro does not need a semi-colon to be called. |
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.
The macro does not need a semi-colon to be called.
This is wrong.
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.
Yes, I should've fact-checked this one before copy-pasting it. Good catch!
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
pganssle commentedNov 14, 2025
This sounded familiar so I thought there was some reason that we didn't do it, but apparently I actually wanted to go even further than this and didn't get around to it / didn't drum up enough interest:#83785 I am tempted to say we should not say the thing about the struct contents being private and subject to change because there are situations where they are legitimately the only way to accomplish things and I am not crazy about the fact that our public interface is C macros anyway (given that those macros don't work outside of C++, I'd rather they be symbols that can be linked against in an FFI). Given the subinterpreter stuff, though, it might be a bit of an own goal to make the struct public right awaybefore making a plan for how to move forward (in case the implementation details of the struct end up being inconvenient in that effort), so I'm +1 on the current scope of this PR. |
PyDateTime* APIs.PyDateTime* APIs.StanFromIreland commentedNov 14, 2025
Oh I forgot about that one! I've moved this PR under it, since it is more specific. |
ZeroIntensity commentedNov 14, 2025
I'm fine with removing the note on the contents of
Please don't edit my PRs without my permission. I don't think this PR fits great under that issue; we're merely documenting that |
PyDateTime* APIs.PyDateTime* APIs.StanFromIreland commentedNov 14, 2025
Apologies Peter. |
pganssle commentedNov 14, 2025 • 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.
No I think we should leave it. If we later decide that we're going to officially expose them publicly without any changes we can always backport the docs changes to older versions to retroactively document it. |
ZeroIntensity commentedNov 14, 2025
I created#141563 for discussion on the global variable. |
vstinner left a comment
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.
LGTM, I just left minor suggestions.
| .. code-block:: | ||
| PyDateTime_IMPORT; | ||
| if (PyErr_Occurred()) { /* cleanup */ } |
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.
| if (PyErr_Occurred()) { /*cleanup */ } | |
| if (PyErr_Occurred()) { /*error */ } |
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 like the current comment, we do similar for the curses C API:https://docs.python.org/3/c-api/curses.html
Uh oh!
There was an error while loading.Please reload this page.
Co-authored-by: Victor Stinner <vstinner@python.org>
4273616 intopython:mainUh oh!
There was an error while loading.Please reload this page.
Thanks@ZeroIntensity for the PR 🌮🎉.. I'm working now to backport this PR to: 3.14. |
Thanks@ZeroIntensity for the PR 🌮🎉.. I'm working now to backport this PR to: 3.13. |
(cherry picked from commit4273616)Co-authored-by: Peter Bierma <zintensitydev@gmail.com>Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>Co-authored-by: Victor Stinner <vstinner@python.org>
GH-141791 is a backport of this pull request to the3.14 branch. |
(cherry picked from commit4273616)Co-authored-by: Peter Bierma <zintensitydev@gmail.com>Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>Co-authored-by: Victor Stinner <vstinner@python.org>
GH-141792 is a backport of this pull request to the3.13 branch. |
Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>Co-authored-by: Victor Stinner <vstinner@python.org>
Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>Co-authored-by: Victor Stinner <vstinner@python.org>
Uh oh!
There was an error while loading.Please reload this page.
I was mostly inspired by Bénédikt's work on the
cursesC API (#141254) for this.In the future, I think we should completely deprecate
PyDateTimeAPIandPyDateTime_IMPORTbecause of subinterpreter incompatibility, as well as documenting all the fields onPyDateTime_CAPIto make this usable under subinterpreters, but that's a later project.📚 Documentation preview 📚:https://cpython-previews--141543.org.readthedocs.build/en/141543/c-api/datetime.html