-
Notifications
You must be signed in to change notification settings - Fork 27
Add Python 3.13 support #212
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
Conversation
|
Hello, for my information is it the issue which is preventing the push of the version 0.9.4 on pypi.org? How could we help to allow the push of this version on pypi.org? |
|
I'm going to tackle this issue this week. The compability issue was up in the air in CPython, but the final APIs are done. |
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.
Pull Request Overview
Adds support for Python 3.13 by branching on the new public PyTime API, updating compatibility aliases, and expanding CI/test configurations.
- Introduce
PyTime_Timeon ≥3.13 and fallback for older APIs inlogrecord.cxx, including a manual millisecond calculation. - Alias public
PyTime_tandPyTime_AsSecondsDoubleincompat.hxxfor ≥3.13. - Bump dependencies and extend GitHub Actions matrices to include Python 3.13; update/workflow and
pyproject.tomlaccordingly.
Reviewed Changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| src/picologging/logrecord.cxx | Conditional PyTime API usage and fallback msecs calculation |
| src/picologging/compat.hxx | Aliases for public PyTime types/functions on Python 3.13+ |
| pyproject.toml | Bumped scikit-build and updated cibuildwheel skip patterns |
| .github/workflows/wheel.yml | Expanded build matrix, updated triggers and cibuildwheel version |
| .github/workflows/test.yml | Added Python 3.13, updated OS filters and conditional steps |
| .github/workflows/quality.yml | Commented out the clang-tidy check |
| .github/workflows/hypothesis.yaml | Extended Hypothesis matrix with Python 3.12 and 3.13 |
Comments suppressed due to low confidence (3)
src/picologging/logrecord.cxx:173
- Add unit tests that exercise the
#elsebranch for Python ≥3.13 to verify thatmsecsis calculated correctly, ensuring this new fallback logic is covered.
// msecs conversion isn't in 3.13 API
.github/workflows/quality.yml:169
- Re-enable or update the
clang-tidystep (including correct include paths for newer Python headers) to maintain C++ linting and catch regressions.
# - name: Check clang-tidy
.github/workflows/wheel.yml:3
- [nitpick] Consider restricting the workflow triggers back to the main branch or release branches to avoid running full builds on every feature branch push.
on: [push, pull_request]
|
related discussion python/cpython#124088 |
It also seems that 3.13 doesn't have an API for getting milliseconds, so the timestamp of the log record will be to the nearest second (unless I find a solution)