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
Docs: Use PY_VERSION_HEX for version comparison#100179
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
Docs: Use PY_VERSION_HEX for version comparison #100179
Uh oh!
There was an error while loading. Please reload this page.
Conversation
hugovk commented Dec 11, 2022 • 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.
`PY_VERSION_HEX` should be used when comparing version numbers, for example `PY_VERSION_HEX >= 0x03080000`. Avoid `PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 8` because that is true for 3.8-3.12, but also for 4.8-4.12 and so on. Hoist the comment from `PY_VERSION_HEX`'s definition in `patchlevel.h` to docs in `apiabiversion.rst`.
netlifybot commented Dec 11, 2022 • 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.
✅ Deploy Preview for python-cpython-preview ready!
To edit notification comments on pull requests, go to your Netlify site settings. |
Uh oh!
There was an error while loading. Please reload this page.
Co-authored-by: Stanley <46876382+slateny@users.noreply.github.com>
miss-islington commented Dec 17, 2022
Thanks @hugovk for the PR, and @kumaraditya303 for merging it 🌮🎉.. I'm working now to backport this PR to: 3.11. |
bedevere-bot commented Dec 17, 2022
GH-100314 is a backport of this pull request to the 3.11 branch. |
(cherry picked from commit 0264f63) Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
(cherry picked from commit 0264f63) Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
* origin/main: (1306 commits) Correct CVE-2020-10735 documentation (python#100306) pythongh-100272: Fix JSON serialization of OrderedDict (pythonGH-100273) pythongh-93649: Split tracemalloc tests from _testcapimodule.c (python#99551) Docs: Use `PY_VERSION_HEX` for version comparison (python#100179) pythongh-97909: Fix markup for `PyMethodDef` members (python#100089) pythongh-99240: Reset pointer to NULL when the pointed memory is freed in argument parsing (python#99890) pythongh-99240: Reset pointer to NULL when the pointed memory is freed in argument parsing (python#99890) pythonGH-98831: Add DECREF_INPUTS(), expanding to DECREF() each stack input (python#100205) pythongh-78707: deprecate passing >1 argument to `PurePath.[is_]relative_to()` (pythonGH-94469) pythongh-99540: Constant hash for _PyNone_Type to aid reproducibility (pythonGH-99541) pythongh-100039: enhance __signature__ to work with str and callables (pythonGH-100168) pythongh-99830: asyncio: Document returns of remove_{reader,writer} (python#100302) "Compound statement" docs: Fix with-statement step indexing (python#100286) pythonGH-90043: Handle NaNs in COMPARE_OP_FLOAT_JUMP (pythonGH-100278) Improve stats presentation for calls. (pythonGH-100274) Better stats for `LOAD_ATTR` and `STORE_ATTR` (pythonGH-100295) pythongh-81057: Move the Cached Parser Dummy Name to _PyRuntimeState (python#100277) Document that zipfile's pwd parameter is a `bytes` object (python#100209) pythongh-99767: mark `PyTypeObject.tp_watched` as internal use only in table (python#100271) Fix typo in introduction.rst (python#100266) ...
* main: pythongh-89727: Fix os.walk RecursionError on deep trees (python#99803) Docs: Don't upload CI artifacts (python#100330) pythongh-94912: Added marker for non-standard coroutine function detection (python#99247) Correct CVE-2020-10735 documentation (python#100306) pythongh-100272: Fix JSON serialization of OrderedDict (pythonGH-100273) pythongh-93649: Split tracemalloc tests from _testcapimodule.c (python#99551) Docs: Use `PY_VERSION_HEX` for version comparison (python#100179) pythongh-97909: Fix markup for `PyMethodDef` members (python#100089) pythongh-99240: Reset pointer to NULL when the pointed memory is freed in argument parsing (python#99890) pythongh-99240: Reset pointer to NULL when the pointed memory is freed in argument parsing (python#99890) pythonGH-98831: Add DECREF_INPUTS(), expanding to DECREF() each stack input (python#100205) pythongh-78707: deprecate passing >1 argument to `PurePath.[is_]relative_to()` (pythonGH-94469)
PY_VERSION_HEXshould be used when comparing version numbers, for examplePY_VERSION_HEX >= 0x03080000.Avoid
PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 8because that is true for 3.8-3.12, but also for 4.8-4.12 and so on.This is already warned in
patchlevel.hwherePY_VERSION_HEXis defined:cpython/Include/patchlevel.h
Lines 29 to 35 in 2e279e8
It's a bit hidden there, let's hoist it into docs in
apiabiversion.rstfor visibilty.Preview