Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork34.3k
gh-108907: ctypes: Document _type_ codes#145837
Conversation
Add `_SimpleCData._type_` docs.Add type codes to the summary table.Cross-link `struct`, `array`, and `ctypes`; throw in `numpy` too.(Anyone wanting to add a code should be aware of those.)Add `py_object`, and `VARIANT_BOOL` for completeness.
Uh oh!
There was an error while loading.Please reload this page.
| .. seealso:: | ||
| The :mod:`array` and :ref:`struct <format-characters>` modules, |
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.
Do we really need this? It looks like type codes match, when same data type is present (and not an alias).
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.
They match, and I'd like to keep it that way.
I'd like to add this note, for a very specific case: when adding a new one (in stdlib or a third-party module), it's good to be aware of the others -- and more importantly, of the fact that there are several lists to be aware of.
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 see point of doing this for third-party modules, but for stdlib I would rather advocate more simple invariant to keep: struct/array/memoryview should usesame type codes. Modulo well documented differences:
- some fundamental types in the ctypes module are implemented as aliases.
- some just aren't supported by the struct (e.g. long double, perhaps it's not forever) or the ctype (e.g. Pascal strings).
I suggest just add references to the struct and the array modules. And a more detailed note about the NumPy.
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.
That's a goodinvariant design goal, and I hope these notes will help us do that.
But, I'm assuming most readers want docs for one specific module. For those, readers separate tables are better.
Co-authored-by: Sergey B Kirpichev <skirpichev@gmail.com>
encukou commentedMar 23, 2026
Thank you for the review! I'll merge now; follow-ups welcome :) |
1114d7f intopython:mainUh oh!
There was an error while loading.Please reload this page.
Thanks@encukou for the PR 🌮🎉.. I'm working now to backport this PR to: 3.14. |
Add `_SimpleCData._type_` docs.Add type codes to the summary table.Cross-link `struct`, `array`, and `ctypes`; throw in `numpy` too.(Anyone wanting to add a code should be aware of those.)Add `py_object`, and `VARIANT_BOOL` for completeness.(cherry picked from commit1114d7f)Co-authored-by: Petr Viktorin <encukou@gmail.com>
GH-146328 is a backport of this pull request to the3.14 branch. |
gh-108907: ctypes: Document _type_ codes (GH-145837)Add `_SimpleCData._type_` docs.Add type codes to the summary table.Cross-link `struct`, `array`, and `ctypes`; throw in `numpy` too.(Anyone wanting to add a code should be aware of those.)Add `py_object`, and `VARIANT_BOOL` for completeness.(cherry picked from commit1114d7f)Co-authored-by: Petr Viktorin <encukou@gmail.com>
…8577* 'main' of github.com:python/cpython:pythongh-146197: Run -m test.pythoninfo on the Emscripten CI (python#146332)pythongh-146325: Use `test.support.requires_fork` in test_fastpath_cache_cleared_in_forked_child (python#146330)pythongh-146197: Add Emscripten to CI (python#146198)pythongh-143387: Raise an exception instead of returning None when metadata file is missing. (python#146234)pythongh-108907: ctypes: Document _type_ codes (pythonGH-145837)pythongh-146175: Soft-deprecate outdated macros; convert internal usage (pythonGH-146178)pythongh-146056: Rework ref counting in treebuilder_handle_end() (python#146167) Add a warning about untrusted input to `configparser` docs (python#146276)pythongh-145264: Do not ignore excess Base64 data after the first padded quad (pythonGH-145267)pythongh-146308: Fix error handling issues in _remote_debugging module (python#146309)pythongh-146192: Add base32 support to binascii (pythonGH-146193)pythongh-135953: Properly obtain main thread identifier in Gecko Collector (python#146045)pythongh-143414: Implement unique reference tracking for JIT, optimize unpacking of such tuples (pythonGH-144300)pythongh-146261: Fix bug in `_Py_uop_sym_set_func_version` (pythonGH-146291)pythongh-145144: Add more tests for UserList, UserDict, etc (pythonGH-145145)pythongh-143959: Fix test_datetime if _datetime is unavailable (pythonGH-145248)pythongh-146245: Fix reference and buffer leaks via audit hook in socket module (pythonGH-146248)pythongh-140049: Colorize exception notes in `traceback.py` (python#140051) Update docs forpythongh-146056 (pythonGH-146213)
Uh oh!
There was an error while loading.Please reload this page.
Add
_SimpleCData._type_docs.Add type codes to the summary table.
Cross-link
struct,array, andctypes; throw innumpytoo. (Anyone wanting to add a code should be aware of those.)Add
py_object, andVARIANT_BOOLfor completeness.📚 Documentation preview 📚:https://cpython-previews--145837.org.readthedocs.build/