GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — gh-108907: ctypes: Document _type_ codes by encukou · Pull Request #145837 · python/cpython

Conversation

@encukou

@encukou encukou commented Mar 11, 2026 •
edited by github-actions Bot
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

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.

  • Issue: Wrong size of c_ulong/c_ulonglong in Linux #108907

📚 Documentation preview 📚: https://cpython-previews--145837.org.readthedocs.build/

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@encukou
ctypes: Document _type_ codes
8541450
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.
@encukou
encukou requested a review from skirpichev March 11, 2026 16:33
@bedevere-app bedevere-app Bot added docs Documentation in the Doc dir skip news awaiting core review labels Mar 11, 2026
@github-project-automation github-project-automation Bot added this to Docs PRs Mar 11, 2026
@github-project-automation github-project-automation Bot moved this to Todo in Docs PRs Mar 11, 2026
@bedevere-app bedevere-app Bot mentioned this pull request Mar 11, 2026
Wrong size of c_ulong/c_ulonglong in Linux #108907
Closed
skirpichev
skirpichev reviewed Mar 19, 2026
View reviewed changes
Comment thread Doc/library/ctypes.rst Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread Doc/library/ctypes.rst

.. seealso::

The :mod:`array` and :ref:`struct <format-characters>` modules,

@skirpichev skirpichev Mar 19, 2026

Copy link
Copy Markdown
Member

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).

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@encukou encukou Mar 19, 2026

Copy link
Copy Markdown
Member Author

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.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@skirpichev skirpichev Mar 19, 2026

Copy link
Copy Markdown
Member

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 use same type codes. Modulo well documented differences:

  1. some fundamental types in the ctypes module are implemented as aliases.
  2. 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.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@encukou encukou Mar 19, 2026

Copy link
Copy Markdown
Member Author

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 good invariant 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.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@encukou @skirpichev
Be more specific: unsigned
2699aa7
Co-authored-by: Sergey B Kirpichev <[email protected]>
@encukou

encukou commented Mar 23, 2026

Copy link
Copy Markdown
Member Author

Thank you for the review!

I'll merge now; follow-ups welcome :)

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@encukou
encukou merged commit 1114d7f into python:main Mar 23, 2026
28 checks passed

Uh oh!

There was an error while loading. Please reload this page.

@github-project-automation github-project-automation Bot moved this from Todo to Done in Docs PRs Mar 23, 2026
@encukou
encukou deleted the doc-_type_ branch March 23, 2026 12:41
@bedevere-app bedevere-app Bot removed the awaiting core review label Mar 23, 2026
@encukou encukou added the needs backport to 3.14 bugs and security fixes label Mar 23, 2026
@miss-islington-app

miss-islington-app Bot commented Mar 23, 2026

Copy link
Copy Markdown

Thanks @encukou for the PR 🌮🎉.. I'm working now to backport this PR to: 3.14.
🐍🍒⛏🤖

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

miss-islington pushed a commit to miss-islington/cpython that referenced this pull request Mar 23, 2026
@encukou @miss-islington
pythongh-108907: ctypes: Document _type_ codes (pythonGH-145837)
5cacbb1
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 commit 1114d7f)

Co-authored-by: Petr Viktorin <[email protected]>
@bedevere-app

bedevere-app Bot commented Mar 23, 2026

Copy link
Copy Markdown

GH-146328 is a backport of this pull request to the 3.14 branch.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@bedevere-app bedevere-app Bot removed the needs backport to 3.14 bugs and security fixes label Mar 23, 2026
encukou added a commit that referenced this pull request Mar 23, 2026
@miss-islington @encukou
[3.14] gh-108907: ctypes: Document _type_ codes (GH-145837) (GH-146328)
f883bbd
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 commit 1114d7f)

Co-authored-by: Petr Viktorin <[email protected]>
CuriousLearner added a commit to CuriousLearner/cpython that referenced this pull request Mar 23, 2026
@CuriousLearner
Merge branch 'main' of github.com:python/cpython into fix-pythongh-13…
3e05fa3
…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 for pythongh-146056 (pythonGH-146213)
@pablogsal pablogsal mentioned this pull request Apr 4, 2026
gh-130273: Fix traceback color output with unicode characters #142529
Merged
ljfp pushed a commit to ljfp/cpython that referenced this pull request Apr 25, 2026
@encukou @ljfp
pythongh-108907: ctypes: Document _type_ codes (pythonGH-145837)
7383377
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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@skirpichev skirpichev skirpichev left review comments

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

docs Documentation in the Doc dir skip news

Projects

Docs PRs
Status: Done

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

2 participants

@encukou @skirpichev
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.