-
-
Notifications
You must be signed in to change notification settings - Fork 33.6k
gh-141004: Document missing PyDateTime* 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 our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
gh-141004: Document missing PyDateTime* APIs.
#141543
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!
Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
|
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 away before 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.
Oh I forgot about that one! I've moved this PR under it, since it is more specific. |
|
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.
|
Apologies Peter. |
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. |
|
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
Co-authored-by: Victor Stinner <vstinner@python.org>
|
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 commit 4273616) 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 the 3.14 branch. |
(cherry picked from commit 4273616) 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 the 3.13 branch. |
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