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 — Remove deprecated and undocumented function `ctypes.SetPointerType` · Issue #133866 · python/cpython

Remove deprecated and undocumented function ctypes.SetPointerType #133866

New issue
Copy link
New issue
Copy link
Closed
Closed
Remove deprecated and undocumented function ctypes.SetPointerType#133866
Copy link
Labels
stdlibStandard Library Python modules in the Lib/ directoryStandard Library Python modules in the Lib/ directorytopic-ctypestype-featureA feature request or enhancementA feature request or enhancement

Description

@picnixz
picnixz
opened on May 11, 2025
Issue body actions

Feature or enhancement

This was deprecated in #105733 alongside with ctypes.ARRAY(), but the latter has been eventually soft deprecated instead.

Linked PRs

  • gh-133866: remove deprecated and undocumented function ctypes.SetPointerType #133869

Activity

  1. picnixz
    self-assigned this
    on May 11, 2025
  2. picnixz
    added
    type-featureA feature request or enhancementA feature request or enhancement
    topic-ctypes
    extension-modulesC modules in the Modules dirC modules in the Modules dir
    stdlibStandard Library Python modules in the Lib/ directoryStandard Library Python modules in the Lib/ directory
    and removed
    extension-modulesC modules in the Modules dirC modules in the Modules dir
    on May 11, 2025
  3. kumaraditya303 commented on May 11, 2025

    @kumaraditya303
    kumaraditya303
    on May 11, 2025
    Contributor
    More actions

    +1 to remove SetPointerType as it is not thread safe too and can crash as the uses of info->proto use borrowed reference.

  4. picnixz commented on May 11, 2025

    @picnixz
    picnixz
    on May 11, 2025
    MemberAuthor
    More actions

    Oh, do you mean that no one use should be using it? in this case, I'll remove the use set_type instead.

  5. kumaraditya303 commented on May 11, 2025

    @kumaraditya303
    kumaraditya303
    on May 11, 2025
    Contributor
    More actions

    Yes, you should remove the underlying C implementation as well.

  6. picnixz commented on May 11, 2025

    @picnixz
    picnixz
    on May 11, 2025
    MemberAuthor
    More actions

    Yes, you should remove the underlying C implementation as well.

    I'm not entirely sure I can do it. We only communicated that the Python interface is deprecated, not the C one (even if this should not be used). cc @vstinner @encukou.

    (I'm however in favor of doing it, just that I don't know if we can do it without an explicit notice)

  7. sergey-miryanov commented on May 11, 2025

    @sergey-miryanov
    sergey-miryanov
    on May 11, 2025
    Contributor
    More actions

    set_type set proto for pointer type, that used in lot of places. Also, it will break external users like pyglet who implements IUnknown interface with _type_.

  8. vstinner commented on May 11, 2025

    @vstinner
    vstinner
    on May 11, 2025
    Member
    More actions

    I don't think that the ctypes C API is considered as part of the public C API. I'm not sure if it's technically usable outside CPython.

  9. encukou commented on May 12, 2025

    @encukou
    encukou
    on May 12, 2025
    Member
    More actions

    Yes, we'll need to deprecate set_type, and its C implementation, separately; in 3.15.

    Now that __pointer_type__ is in, it should be possible to replace set_type by the new API, in all use cases we're aware of. But let's give users time to report other use cases.

  10. encukou
    added a commit that references this issue on May 29, 2025

    gh-133866: remove deprecated and undocumented function `ctypes.SetPoi…

    cafbcd6
  11. Pranjal095
    added a commit that references this issue on Jul 12, 2025

    pythongh-133866: remove deprecated and undocumented function `ctypes.…

    50c18b4
  12. taegyunkim
    added a commit that references this issue on Aug 4, 2025

    pythongh-133866: remove deprecated and undocumented function `ctypes.…

    6869492
  13. picnixz
    removed their assignment
    on Sep 16, 2025
  14. ngoldbaum commented on Mar 6, 2026

    @ngoldbaum
    ngoldbaum
    on Mar 6, 2026
    Contributor
    More actions

    FWIW, I think the CFFI TSan CI hit a race caused by something related to this issue:

    https://github.com/python-cffi/cffi/actions/runs/22596398074/job/65467405565?pr=232#step:5:365

    Details
    WARNING: ThreadSanitizer: data race (pid=432)
      Read of size 8 at 0x7f7ff8914f38 by thread T1137:
        #0 ctype_get_pointer_type /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Modules/_ctypes/_ctypes.c:592:15 (_ctypes.cpython-314t-x86_64-linux-gnu.so+0xb858) (BuildId: 0dc90d8ab245295ae10f5fc556e9cf4e597e59a0)
        #1 getset_get /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/descrobject.c:194:16 (libpython3.14t.so.1.0+0x144578) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #2 _Py_type_getattro_impl /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/typeobject.c:6058:19 (libpython3.14t.so.1.0+0x23e11d) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #3 _Py_type_getattro /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/typeobject.c:6119:12 (libpython3.14t.so.1.0+0x23e420) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #4 PyObject_GetAttr /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/object.c:1299:18 (libpython3.14t.so.1.0+0x1e5b97) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #5 _PyEval_EvalFrameDefault /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/generated_cases.c.h:8043:30 (libpython3.14t.so.1.0+0x350994) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #6 _PyEval_EvalFrame /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Include/internal/pycore_ceval.h:120:16 (libpython3.14t.so.1.0+0x336d80) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #7 _PyEval_Vector /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/ceval.c:2083:12 (libpython3.14t.so.1.0+0x336d80)
        #8 _PyFunction_Vectorcall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c (libpython3.14t.so.1.0+0x12c691) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #9 _PyObject_VectorcallTstate /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Include/internal/pycore_call.h:169:11 (libpython3.14t.so.1.0+0x131076) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #10 method_vectorcall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/classobject.c:95:18 (libpython3.14t.so.1.0+0x131076)
        #11 _PyVectorcall_Call /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:273:16 (libpython3.14t.so.1.0+0x12c317) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #12 _PyObject_Call /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:348:16 (libpython3.14t.so.1.0+0x12c317)
        #13 PyObject_Call /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:373:12 (libpython3.14t.so.1.0+0x12c387) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #14 _PyEval_EvalFrameDefault /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/generated_cases.c.h:2657:32 (libpython3.14t.so.1.0+0x33fc93) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #15 _PyEval_EvalFrame /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Include/internal/pycore_ceval.h:120:16 (libpython3.14t.so.1.0+0x336d80) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #16 _PyEval_Vector /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/ceval.c:2083:12 (libpython3.14t.so.1.0+0x336d80)
        #17 _PyFunction_Vectorcall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c (libpython3.14t.so.1.0+0x12c691) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #18 _PyObject_VectorcallTstate /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Include/internal/pycore_call.h:169:11 (libpython3.14t.so.1.0+0x130fd1) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #19 method_vectorcall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/classobject.c:73:20 (libpython3.14t.so.1.0+0x130fd1)
        #20 _PyVectorcall_Call /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:273:16 (libpython3.14t.so.1.0+0x12c317) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #21 _PyObject_Call /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:348:16 (libpython3.14t.so.1.0+0x12c317)
        #22 PyObject_Call /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:373:12 (libpython3.14t.so.1.0+0x12c387) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #23 _PyEval_EvalFrameDefault /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/generated_cases.c.h:2657:32 (libpython3.14t.so.1.0+0x33fc93) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #24 _PyEval_EvalFrame /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Include/internal/pycore_ceval.h:120:16 (libpython3.14t.so.1.0+0x336d80) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #25 _PyEval_Vector /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/ceval.c:2083:12 (libpython3.14t.so.1.0+0x336d80)
        #26 _PyFunction_Vectorcall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c (libpython3.14t.so.1.0+0x12c691) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #27 _PyObject_VectorcallTstate /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Include/internal/pycore_call.h:169:11 (libpython3.14t.so.1.0+0x130fd1) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #28 method_vectorcall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/classobject.c:73:20 (libpython3.14t.so.1.0+0x130fd1)
        #29 _PyObject_VectorcallTstate /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Include/internal/pycore_call.h:169:11 (libpython3.14t.so.1.0+0x3908c9) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #30 context_run /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/context.c:722:29 (libpython3.14t.so.1.0+0x3908c9)
        #31 _PyEval_EvalFrameDefault /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/generated_cases.c.h:3747:35 (libpython3.14t.so.1.0+0x344028) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #32 _PyEval_EvalFrame /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Include/internal/pycore_ceval.h:120:16 (libpython3.14t.so.1.0+0x336d80) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #33 _PyEval_Vector /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/ceval.c:2083:12 (libpython3.14t.so.1.0+0x336d80)
        #34 _PyFunction_Vectorcall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c (libpython3.14t.so.1.0+0x12c691) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #35 _PyObject_VectorcallTstate /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Include/internal/pycore_call.h:169:11 (libpython3.14t.so.1.0+0x130fd1) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #36 method_vectorcall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/classobject.c:73:20 (libpython3.14t.so.1.0+0x130fd1)
        #37 _PyVectorcall_Call /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:273:16 (libpython3.14t.so.1.0+0x12c317) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #38 _PyObject_Call /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:348:16 (libpython3.14t.so.1.0+0x12c317)
        #39 PyObject_Call /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:373:12 (libpython3.14t.so.1.0+0x12c387) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #40 thread_run /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Modules/_threadmodule.c:359:21 (libpython3.14t.so.1.0+0x501e42) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #41 pythread_wrapper /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/thread_pthread.h:242:5 (libpython3.14t.so.1.0+0x440877) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
    
      Previous write of size 8 at 0x7f7ff8914f38 by thread T1138:
        #0 PyCPointerType_SetProto /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Modules/_ctypes/_ctypes.c:1258:9 (_ctypes.cpython-314t-x86_64-linux-gnu.so+0x10057) (BuildId: 0dc90d8ab245295ae10f5fc556e9cf4e597e59a0)
        #1 PyCPointerType_init /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Modules/_ctypes/_ctypes.c:1312:13 (_ctypes.cpython-314t-x86_64-linux-gnu.so+0xf4c2) (BuildId: 0dc90d8ab245295ae10f5fc556e9cf4e597e59a0)
        #2 type_call /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/typeobject.c:2321:19 (libpython3.14t.so.1.0+0x23fda9) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #3 _PyObject_MakeTpCall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:242:18 (libpython3.14t.so.1.0+0x12b49e) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #4 type_vectorcall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/typeobject.c:4759:12 (libpython3.14t.so.1.0+0x2432d7) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #5 _PyEval_EvalFrameDefault /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/generated_cases.c.h:2153:35 (libpython3.14t.so.1.0+0x33ddec) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #6 _PyEval_EvalFrame /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Include/internal/pycore_ceval.h:120:16 (libpython3.14t.so.1.0+0x336d80) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #7 _PyEval_Vector /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/ceval.c:2083:12 (libpython3.14t.so.1.0+0x336d80)
        #8 _PyFunction_Vectorcall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c (libpython3.14t.so.1.0+0x12c691) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #9 _PyObject_VectorcallTstate /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Include/internal/pycore_call.h:169:11 (libpython3.14t.so.1.0+0x131076) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #10 method_vectorcall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/classobject.c:95:18 (libpython3.14t.so.1.0+0x131076)
        #11 _PyVectorcall_Call /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:273:16 (libpython3.14t.so.1.0+0x12c317) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #12 _PyObject_Call /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:348:16 (libpython3.14t.so.1.0+0x12c317)
        #13 PyObject_Call /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:373:12 (libpython3.14t.so.1.0+0x12c387) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #14 _PyEval_EvalFrameDefault /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/generated_cases.c.h:2657:32 (libpython3.14t.so.1.0+0x33fc93) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #15 _PyEval_EvalFrame /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Include/internal/pycore_ceval.h:120:16 (libpython3.14t.so.1.0+0x336d80) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #16 _PyEval_Vector /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/ceval.c:2083:12 (libpython3.14t.so.1.0+0x336d80)
        #17 _PyFunction_Vectorcall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c (libpython3.14t.so.1.0+0x12c691) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #18 _PyObject_VectorcallTstate /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Include/internal/pycore_call.h:169:11 (libpython3.14t.so.1.0+0x130fd1) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #19 method_vectorcall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/classobject.c:73:20 (libpython3.14t.so.1.0+0x130fd1)
        #20 _PyVectorcall_Call /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:273:16 (libpython3.14t.so.1.0+0x12c317) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #21 _PyObject_Call /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:348:16 (libpython3.14t.so.1.0+0x12c317)
        #22 PyObject_Call /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:373:12 (libpython3.14t.so.1.0+0x12c387) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #23 _PyEval_EvalFrameDefault /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/generated_cases.c.h:2657:32 (libpython3.14t.so.1.0+0x33fc93) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #24 _PyEval_EvalFrame /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Include/internal/pycore_ceval.h:120:16 (libpython3.14t.so.1.0+0x336d80) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #25 _PyEval_Vector /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/ceval.c:2083:12 (libpython3.14t.so.1.0+0x336d80)
        #26 _PyFunction_Vectorcall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c (libpython3.14t.so.1.0+0x12c691) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #27 _PyObject_VectorcallTstate /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Include/internal/pycore_call.h:169:11 (libpython3.14t.so.1.0+0x130fd1) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #28 method_vectorcall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/classobject.c:73:20 (libpython3.14t.so.1.0+0x130fd1)
        #29 _PyObject_VectorcallTstate /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Include/internal/pycore_call.h:169:11 (libpython3.14t.so.1.0+0x3908c9) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #30 context_run /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/context.c:722:29 (libpython3.14t.so.1.0+0x3908c9)
        #31 _PyEval_EvalFrameDefault /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/generated_cases.c.h:3747:35 (libpython3.14t.so.1.0+0x344028) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #32 _PyEval_EvalFrame /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Include/internal/pycore_ceval.h:120:16 (libpython3.14t.so.1.0+0x336d80) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #33 _PyEval_Vector /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/ceval.c:2083:12 (libpython3.14t.so.1.0+0x336d80)
        #34 _PyFunction_Vectorcall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c (libpython3.14t.so.1.0+0x12c691) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #35 _PyObject_VectorcallTstate /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Include/internal/pycore_call.h:169:11 (libpython3.14t.so.1.0+0x130fd1) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #36 method_vectorcall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/classobject.c:73:20 (libpython3.14t.so.1.0+0x130fd1)
        #37 _PyVectorcall_Call /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:273:16 (libpython3.14t.so.1.0+0x12c317) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #38 _PyObject_Call /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:348:16 (libpython3.14t.so.1.0+0x12c317)
        #39 PyObject_Call /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:373:12 (libpython3.14t.so.1.0+0x12c387) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #40 thread_run /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Modules/_threadmodule.c:359:21 (libpython3.14t.so.1.0+0x501e42) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #41 pythread_wrapper /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/thread_pthread.h:242:5 (libpython3.14t.so.1.0+0x440877) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
    
      Thread T1137 'Thread-1137 (cl' (tid=1652, running) created by main thread at:
        #0 pthread_create <null> (python3.14+0x64bde) (BuildId: de7a72a55f9634d4b8bebf4d6ad6ace6e892d873)
        #1 do_start_joinable_thread /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/thread_pthread.h:289:14 (libpython3.14t.so.1.0+0x43f6fa) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #2 PyThread_start_joinable_thread /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/thread_pthread.h:331:9 (libpython3.14t.so.1.0+0x43f51a) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #3 ThreadHandle_start /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Modules/_threadmodule.c:445:9 (libpython3.14t.so.1.0+0x5019d6) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #4 do_start_new_thread /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Modules/_threadmodule.c:1868:9 (libpython3.14t.so.1.0+0x5019d6)
        #5 thread_PyThread_start_joinable_thread /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Modules/_threadmodule.c:1991:14 (libpython3.14t.so.1.0+0x5007d1) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #6 cfunction_call /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/methodobject.c:564:18 (libpython3.14t.so.1.0+0x1db2f9) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #7 _PyObject_MakeTpCall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:242:18 (libpython3.14t.so.1.0+0x12b49e) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #8 _PyObject_VectorcallTstate /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Include/internal/pycore_call.h:167:16 (libpython3.14t.so.1.0+0x12c0ba) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #9 PyObject_Vectorcall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:327:12 (libpython3.14t.so.1.0+0x12c0ba)
        #10 _PyEval_EvalFrameDefault /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/generated_cases.c.h:3230:35 (libpython3.14t.so.1.0+0x3421f7) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #11 _PyEval_EvalFrame /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Include/internal/pycore_ceval.h:120:16 (libpython3.14t.so.1.0+0x336d80) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #12 _PyEval_Vector /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/ceval.c:2083:12 (libpython3.14t.so.1.0+0x336d80)
        #13 _PyFunction_Vectorcall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c (libpython3.14t.so.1.0+0x12c691) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #14 _PyObject_VectorcallDictTstate /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:146:15 (libpython3.14t.so.1.0+0x12b1e0) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #15 _PyObject_Call_Prepend /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:504:24 (libpython3.14t.so.1.0+0x12ccd6) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #16 call_method /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/typeobject.c:2937:19 (libpython3.14t.so.1.0+0x24d608) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #17 slot_tp_call /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/typeobject.c:10254:12 (libpython3.14t.so.1.0+0x24d441) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #18 _PyObject_MakeTpCall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:242:18 (libpython3.14t.so.1.0+0x12b49e) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #19 _PyObject_VectorcallTstate /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Include/internal/pycore_call.h:167:16 (libpython3.14t.so.1.0+0x12c0ba) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #20 PyObject_Vectorcall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:327:12 (libpython3.14t.so.1.0+0x12c0ba)
        #21 _PyEval_EvalFrameDefault /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/generated_cases.c.h:3230:35 (libpython3.14t.so.1.0+0x3421f7) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #22 _PyEval_EvalFrame /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Include/internal/pycore_ceval.h:120:16 (libpython3.14t.so.1.0+0x336d80) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #23 _PyEval_Vector /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/ceval.c:2083:12 (libpython3.14t.so.1.0+0x336d80)
        #24 _PyFunction_Vectorcall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c (libpython3.14t.so.1.0+0x12c691) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #25 _PyObject_VectorcallDictTstate /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:146:15 (libpython3.14t.so.1.0+0x12b1e0) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #26 _PyObject_Call_Prepend /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:504:24 (libpython3.14t.so.1.0+0x12ccd6) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #27 call_method /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/typeobject.c:2937:19 (libpython3.14t.so.1.0+0x24d608) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #28 slot_tp_call /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/typeobject.c:10254:12 (libpython3.14t.so.1.0+0x24d441) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #29 _PyObject_Call /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:361:18 (libpython3.14t.so.1.0+0x12c2e4) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #30 PyObject_Call /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:373:12 (libpython3.14t.so.1.0+0x12c387) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #31 _PyEval_EvalFrameDefault /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/generated_cases.c.h:2657:32 (libpython3.14t.so.1.0+0x33fc93) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #32 _PyEval_EvalFrame /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Include/internal/pycore_ceval.h:120:16 (libpython3.14t.so.1.0+0x336d80) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #33 _PyEval_Vector /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/ceval.c:2083:12 (libpython3.14t.so.1.0+0x336d80)
        #34 _PyFunction_Vectorcall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c (libpython3.14t.so.1.0+0x12c691) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #35 _PyObject_VectorcallDictTstate /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:146:15 (libpython3.14t.so.1.0+0x12b1e0) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #36 _PyObject_Call_Prepend /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:504:24 (libpython3.14t.so.1.0+0x12ccd6) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #37 call_method /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/typeobject.c:2937:19 (libpython3.14t.so.1.0+0x24d608) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #38 slot_tp_call /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/typeobject.c:10254:12 (libpython3.14t.so.1.0+0x24d441) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #39 _PyObject_MakeTpCall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:242:18 (libpython3.14t.so.1.0+0x12b49e) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #40 _PyObject_VectorcallTstate /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Include/internal/pycore_call.h:167:16 (libpython3.14t.so.1.0+0x12c0ba) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #41 PyObject_Vectorcall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:327:12 (libpython3.14t.so.1.0+0x12c0ba)
        #42 _PyEval_EvalFrameDefault /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/generated_cases.c.h:3230:35 (libpython3.14t.so.1.0+0x3421f7) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #43 _PyEval_EvalFrame /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Include/internal/pycore_ceval.h:120:16 (libpython3.14t.so.1.0+0x336d80) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #44 _PyEval_Vector /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/ceval.c:2083:12 (libpython3.14t.so.1.0+0x336d80)
        #45 _PyFunction_Vectorcall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c (libpython3.14t.so.1.0+0x12c691) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #46 _PyObject_VectorcallDictTstate /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:146:15 (libpython3.14t.so.1.0+0x12b1e0) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #47 _PyObject_Call_Prepend /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:504:24 (libpython3.14t.so.1.0+0x12ccd6) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #48 call_method /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/typeobject.c:2937:19 (libpython3.14t.so.1.0+0x24d608) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #49 slot_tp_call /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/typeobject.c:10254:12 (libpython3.14t.so.1.0+0x24d441) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #50 _PyObject_MakeTpCall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:242:18 (libpython3.14t.so.1.0+0x12b49e) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #51 _PyObject_VectorcallTstate /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Include/internal/pycore_call.h:167:16 (libpython3.14t.so.1.0+0x12c0ba) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #52 PyObject_Vectorcall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:327:12 (libpython3.14t.so.1.0+0x12c0ba)
        #53 _PyEval_EvalFrameDefault /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/generated_cases.c.h:2962:35 (libpython3.14t.so.1.0+0x341035) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #54 _PyEval_EvalFrame /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Include/internal/pycore_ceval.h:120:16 (libpython3.14t.so.1.0+0x336d80) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #55 _PyEval_Vector /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/ceval.c:2083:12 (libpython3.14t.so.1.0+0x336d80)
        #56 _PyFunction_Vectorcall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c (libpython3.14t.so.1.0+0x12c691) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #57 _PyObject_VectorcallDictTstate /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:146:15 (libpython3.14t.so.1.0+0x12b1e0) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #58 _PyObject_Call_Prepend /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:504:24 (libpython3.14t.so.1.0+0x12ccd6) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #59 call_method /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/typeobject.c:2937:19 (libpython3.14t.so.1.0+0x24d608) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #60 slot_tp_call /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/typeobject.c:10254:12 (libpython3.14t.so.1.0+0x24d441) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #61 _PyObject_MakeTpCall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:242:18 (libpython3.14t.so.1.0+0x12b49e) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #62 _PyObject_VectorcallTstate /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Include/internal/pycore_call.h:167:16 (libpython3.14t.so.1.0+0x12c0ba) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #63 PyObject_Vectorcall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:327:12 (libpython3.14t.so.1.0+0x12c0ba)
        #64 _PyEval_EvalFrameDefault /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/generated_cases.c.h:2962:35 (libpython3.14t.so.1.0+0x341035) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #65 _PyEval_EvalFrame /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Include/internal/pycore_ceval.h:120:16 (libpython3.14t.so.1.0+0x3368bf) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #66 _PyEval_Vector /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/ceval.c:2083:12 (libpython3.14t.so.1.0+0x3368bf)
        #67 PyEval_EvalCode /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/ceval.c:975:21 (libpython3.14t.so.1.0+0x3368bf)
        #68 builtin_exec_impl /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/bltinmodule.c:1180:17 (libpython3.14t.so.1.0+0x32fc23) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #69 builtin_exec /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/clinic/bltinmodule.c.h:571:20 (libpython3.14t.so.1.0+0x32fc23)
        #70 cfunction_vectorcall_FASTCALL_KEYWORDS /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/methodobject.c:465:24 (libpython3.14t.so.1.0+0x1da645) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #71 _PyObject_VectorcallTstate /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Include/internal/pycore_call.h:169:11 (libpython3.14t.so.1.0+0x12bffc) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #72 PyObject_Vectorcall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:327:12 (libpython3.14t.so.1.0+0x12bffc)
        #73 _PyEval_EvalFrameDefault /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/generated_cases.c.h:1622:35 (libpython3.14t.so.1.0+0x33be8f) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #74 _PyEval_EvalFrame /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Include/internal/pycore_ceval.h:120:16 (libpython3.14t.so.1.0+0x336d80) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #75 _PyEval_Vector /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/ceval.c:2083:12 (libpython3.14t.so.1.0+0x336d80)
        #76 _PyFunction_Vectorcall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c (libpython3.14t.so.1.0+0x12c691) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #77 _PyVectorcall_Call /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:273:16 (libpython3.14t.so.1.0+0x12c317) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #78 _PyObject_Call /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:348:16 (libpython3.14t.so.1.0+0x12c317)
        #79 PyObject_Call /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:373:12 (libpython3.14t.so.1.0+0x12c387) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #80 pymain_run_module /work/.pyenv/sources/3.14.3t/Python-3.14.3/Modules/main.c:353:14 (libpython3.14t.so.1.0+0x45ea1e) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #81 pymain_run_python /work/.pyenv/sources/3.14.3t/Python-3.14.3/Modules/main.c:688:21 (libpython3.14t.so.1.0+0x45e0b0) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #82 Py_RunMain /work/.pyenv/sources/3.14.3t/Python-3.14.3/Modules/main.c:775:5 (libpython3.14t.so.1.0+0x45e0b0)
        #83 pymain_main /work/.pyenv/sources/3.14.3t/Python-3.14.3/Modules/main.c:805:12 (libpython3.14t.so.1.0+0x45e838) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #84 Py_BytesMain /work/.pyenv/sources/3.14.3t/Python-3.14.3/Modules/main.c:829:12 (libpython3.14t.so.1.0+0x45e8bc) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #85 main /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Programs/python.c:15:12 (python3.14+0xe8c9b) (BuildId: de7a72a55f9634d4b8bebf4d6ad6ace6e892d873)
    
      Thread T1138 'Thread-1138 (cl' (tid=1653, running) created by main thread at:
        #0 pthread_create <null> (python3.14+0x64bde) (BuildId: de7a72a55f9634d4b8bebf4d6ad6ace6e892d873)
        #1 do_start_joinable_thread /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/thread_pthread.h:289:14 (libpython3.14t.so.1.0+0x43f6fa) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #2 PyThread_start_joinable_thread /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/thread_pthread.h:331:9 (libpython3.14t.so.1.0+0x43f51a) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #3 ThreadHandle_start /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Modules/_threadmodule.c:445:9 (libpython3.14t.so.1.0+0x5019d6) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #4 do_start_new_thread /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Modules/_threadmodule.c:1868:9 (libpython3.14t.so.1.0+0x5019d6)
        #5 thread_PyThread_start_joinable_thread /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Modules/_threadmodule.c:1991:14 (libpython3.14t.so.1.0+0x5007d1) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #6 cfunction_call /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/methodobject.c:564:18 (libpython3.14t.so.1.0+0x1db2f9) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #7 _PyObject_MakeTpCall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:242:18 (libpython3.14t.so.1.0+0x12b49e) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #8 _PyObject_VectorcallTstate /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Include/internal/pycore_call.h:167:16 (libpython3.14t.so.1.0+0x12c0ba) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #9 PyObject_Vectorcall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:327:12 (libpython3.14t.so.1.0+0x12c0ba)
        #10 _PyEval_EvalFrameDefault /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/generated_cases.c.h:3230:35 (libpython3.14t.so.1.0+0x3421f7) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #11 _PyEval_EvalFrame /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Include/internal/pycore_ceval.h:120:16 (libpython3.14t.so.1.0+0x336d80) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #12 _PyEval_Vector /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/ceval.c:2083:12 (libpython3.14t.so.1.0+0x336d80)
        #13 _PyFunction_Vectorcall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c (libpython3.14t.so.1.0+0x12c691) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #14 _PyObject_VectorcallDictTstate /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:146:15 (libpython3.14t.so.1.0+0x12b1e0) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #15 _PyObject_Call_Prepend /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:504:24 (libpython3.14t.so.1.0+0x12ccd6) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #16 call_method /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/typeobject.c:2937:19 (libpython3.14t.so.1.0+0x24d608) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #17 slot_tp_call /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/typeobject.c:10254:12 (libpython3.14t.so.1.0+0x24d441) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #18 _PyObject_MakeTpCall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:242:18 (libpython3.14t.so.1.0+0x12b49e) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #19 _PyObject_VectorcallTstate /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Include/internal/pycore_call.h:167:16 (libpython3.14t.so.1.0+0x12c0ba) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #20 PyObject_Vectorcall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:327:12 (libpython3.14t.so.1.0+0x12c0ba)
        #21 _PyEval_EvalFrameDefault /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/generated_cases.c.h:3230:35 (libpython3.14t.so.1.0+0x3421f7) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #22 _PyEval_EvalFrame /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Include/internal/pycore_ceval.h:120:16 (libpython3.14t.so.1.0+0x336d80) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #23 _PyEval_Vector /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/ceval.c:2083:12 (libpython3.14t.so.1.0+0x336d80)
        #24 _PyFunction_Vectorcall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c (libpython3.14t.so.1.0+0x12c691) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #25 _PyObject_VectorcallDictTstate /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:146:15 (libpython3.14t.so.1.0+0x12b1e0) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #26 _PyObject_Call_Prepend /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:504:24 (libpython3.14t.so.1.0+0x12ccd6) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #27 call_method /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/typeobject.c:2937:19 (libpython3.14t.so.1.0+0x24d608) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #28 slot_tp_call /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/typeobject.c:10254:12 (libpython3.14t.so.1.0+0x24d441) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #29 _PyObject_Call /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:361:18 (libpython3.14t.so.1.0+0x12c2e4) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #30 PyObject_Call /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:373:12 (libpython3.14t.so.1.0+0x12c387) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #31 _PyEval_EvalFrameDefault /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/generated_cases.c.h:2657:32 (libpython3.14t.so.1.0+0x33fc93) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #32 _PyEval_EvalFrame /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Include/internal/pycore_ceval.h:120:16 (libpython3.14t.so.1.0+0x336d80) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #33 _PyEval_Vector /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/ceval.c:2083:12 (libpython3.14t.so.1.0+0x336d80)
        #34 _PyFunction_Vectorcall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c (libpython3.14t.so.1.0+0x12c691) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #35 _PyObject_VectorcallDictTstate /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:146:15 (libpython3.14t.so.1.0+0x12b1e0) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #36 _PyObject_Call_Prepend /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:504:24 (libpython3.14t.so.1.0+0x12ccd6) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #37 call_method /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/typeobject.c:2937:19 (libpython3.14t.so.1.0+0x24d608) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #38 slot_tp_call /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/typeobject.c:10254:12 (libpython3.14t.so.1.0+0x24d441) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #39 _PyObject_MakeTpCall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:242:18 (libpython3.14t.so.1.0+0x12b49e) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #40 _PyObject_VectorcallTstate /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Include/internal/pycore_call.h:167:16 (libpython3.14t.so.1.0+0x12c0ba) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #41 PyObject_Vectorcall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:327:12 (libpython3.14t.so.1.0+0x12c0ba)
        #42 _PyEval_EvalFrameDefault /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/generated_cases.c.h:3230:35 (libpython3.14t.so.1.0+0x3421f7) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #43 _PyEval_EvalFrame /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Include/internal/pycore_ceval.h:120:16 (libpython3.14t.so.1.0+0x336d80) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #44 _PyEval_Vector /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/ceval.c:2083:12 (libpython3.14t.so.1.0+0x336d80)
        #45 _PyFunction_Vectorcall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c (libpython3.14t.so.1.0+0x12c691) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #46 _PyObject_VectorcallDictTstate /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:146:15 (libpython3.14t.so.1.0+0x12b1e0) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #47 _PyObject_Call_Prepend /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:504:24 (libpython3.14t.so.1.0+0x12ccd6) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #48 call_method /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/typeobject.c:2937:19 (libpython3.14t.so.1.0+0x24d608) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #49 slot_tp_call /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/typeobject.c:10254:12 (libpython3.14t.so.1.0+0x24d441) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #50 _PyObject_MakeTpCall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:242:18 (libpython3.14t.so.1.0+0x12b49e) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #51 _PyObject_VectorcallTstate /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Include/internal/pycore_call.h:167:16 (libpython3.14t.so.1.0+0x12c0ba) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #52 PyObject_Vectorcall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:327:12 (libpython3.14t.so.1.0+0x12c0ba)
        #53 _PyEval_EvalFrameDefault /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/generated_cases.c.h:2962:35 (libpython3.14t.so.1.0+0x341035) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #54 _PyEval_EvalFrame /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Include/internal/pycore_ceval.h:120:16 (libpython3.14t.so.1.0+0x336d80) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #55 _PyEval_Vector /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/ceval.c:2083:12 (libpython3.14t.so.1.0+0x336d80)
        #56 _PyFunction_Vectorcall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c (libpython3.14t.so.1.0+0x12c691) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #57 _PyObject_VectorcallDictTstate /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:146:15 (libpython3.14t.so.1.0+0x12b1e0) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #58 _PyObject_Call_Prepend /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:504:24 (libpython3.14t.so.1.0+0x12ccd6) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #59 call_method /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/typeobject.c:2937:19 (libpython3.14t.so.1.0+0x24d608) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #60 slot_tp_call /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/typeobject.c:10254:12 (libpython3.14t.so.1.0+0x24d441) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #61 _PyObject_MakeTpCall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:242:18 (libpython3.14t.so.1.0+0x12b49e) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #62 _PyObject_VectorcallTstate /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Include/internal/pycore_call.h:167:16 (libpython3.14t.so.1.0+0x12c0ba) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #63 PyObject_Vectorcall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:327:12 (libpython3.14t.so.1.0+0x12c0ba)
        #64 _PyEval_EvalFrameDefault /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/generated_cases.c.h:2962:35 (libpython3.14t.so.1.0+0x341035) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #65 _PyEval_EvalFrame /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Include/internal/pycore_ceval.h:120:16 (libpython3.14t.so.1.0+0x3368bf) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #66 _PyEval_Vector /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/ceval.c:2083:12 (libpython3.14t.so.1.0+0x3368bf)
        #67 PyEval_EvalCode /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/ceval.c:975:21 (libpython3.14t.so.1.0+0x3368bf)
        #68 builtin_exec_impl /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/bltinmodule.c:1180:17 (libpython3.14t.so.1.0+0x32fc23) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #69 builtin_exec /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/clinic/bltinmodule.c.h:571:20 (libpython3.14t.so.1.0+0x32fc23)
        #70 cfunction_vectorcall_FASTCALL_KEYWORDS /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/methodobject.c:465:24 (libpython3.14t.so.1.0+0x1da645) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #71 _PyObject_VectorcallTstate /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Include/internal/pycore_call.h:169:11 (libpython3.14t.so.1.0+0x12bffc) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #72 PyObject_Vectorcall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:327:12 (libpython3.14t.so.1.0+0x12bffc)
        #73 _PyEval_EvalFrameDefault /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/generated_cases.c.h:1622:35 (libpython3.14t.so.1.0+0x33be8f) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #74 _PyEval_EvalFrame /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Include/internal/pycore_ceval.h:120:16 (libpython3.14t.so.1.0+0x336d80) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #75 _PyEval_Vector /work/.pyenv/sources/3.14.3t/Python-3.14.3/Python/ceval.c:2083:12 (libpython3.14t.so.1.0+0x336d80)
        #76 _PyFunction_Vectorcall /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c (libpython3.14t.so.1.0+0x12c691) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #77 _PyVectorcall_Call /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:273:16 (libpython3.14t.so.1.0+0x12c317) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #78 _PyObject_Call /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:348:16 (libpython3.14t.so.1.0+0x12c317)
        #79 PyObject_Call /work/.pyenv/sources/3.14.3t/Python-3.14.3/Objects/call.c:373:12 (libpython3.14t.so.1.0+0x12c387) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #80 pymain_run_module /work/.pyenv/sources/3.14.3t/Python-3.14.3/Modules/main.c:353:14 (libpython3.14t.so.1.0+0x45ea1e) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #81 pymain_run_python /work/.pyenv/sources/3.14.3t/Python-3.14.3/Modules/main.c:688:21 (libpython3.14t.so.1.0+0x45e0b0) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #82 Py_RunMain /work/.pyenv/sources/3.14.3t/Python-3.14.3/Modules/main.c:775:5 (libpython3.14t.so.1.0+0x45e0b0)
        #83 pymain_main /work/.pyenv/sources/3.14.3t/Python-3.14.3/Modules/main.c:805:12 (libpython3.14t.so.1.0+0x45e838) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #84 Py_BytesMain /work/.pyenv/sources/3.14.3t/Python-3.14.3/Modules/main.c:829:12 (libpython3.14t.so.1.0+0x45e8bc) (BuildId: cb8f90e4c5e317580b5b21cb4ef066a699b7c085)
        #85 main /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Programs/python.c:15:12 (python3.14+0xe8c9b) (BuildId: de7a72a55f9634d4b8bebf4d6ad6ace6e892d873)
    
    SUMMARY: ThreadSanitizer: data race /work/.pyenv/sources/3.14.3t/Python-3.14.3/./Modules/_ctypes/_ctypes.c:592:15 in ctype_get_pointer_type
    

    I'm trying to reduce this a little bit. I'm not sure if it only triggers on 3.14 or if it's possible on 3.15 as well. The CFFI CI was using free-threaded 3.14.3.

  15. gostak-dd
    added a commit that references this issue on Jun 2, 2026

    pythongh-133866: remove deprecated and undocumented function `ctypes.…

    3b2f3ad
  16. ZeroIntensity commented on Jul 17, 2026

    @ZeroIntensity
    ZeroIntensity
    on Jul 17, 2026
    Member
    More actions

    All done here?

  17. sergey-miryanov commented on Jul 17, 2026

    @sergey-miryanov
    sergey-miryanov
    on Jul 17, 2026
    Contributor
    More actions

    set_type wasn't deprecated.

  18. ZeroIntensity commented on Jul 17, 2026

    @ZeroIntensity
    ZeroIntensity
    on Jul 17, 2026
    Member
    More actions

    Is that related to this issue? This issue seems to be about SetPointerType, not set_type.

  19. sergey-miryanov commented on Jul 18, 2026

    @sergey-miryanov
    sergey-miryanov
    on Jul 18, 2026
    Contributor
    More actions

    SetPointerType was implemented using set_type, and we discussed above that it would be good to deprecate set_type. But you're right that it's a different matter.

    I think this can be closed.

    Reacted by Peter Bierma
  20. ZeroIntensity
    closed this as completedon Jul 18, 2026
  21. vstinner commented on Jul 18, 2026

    @vstinner
    vstinner
    on Jul 18, 2026
    Member
    More actions

    @encukou: What do you think of deprecating the _ctypes.PyCPointerType.set_type() method? The SetPointerType() function just called the method:

    def SetPointerType(pointer, cls):
        pointer.set_type(cls)
  22. encukou commented on Jul 19, 2026

    @encukou
    encukou
    on Jul 19, 2026
    Member
    More actions

    It makes sense, for the thread safety reasons. I left the issue open for that (my workflow would be to close this after opening the new one).
    But I'm deferring to @ZeroIntensity now :)

  23. ZeroIntensity commented on Jul 21, 2026

    @ZeroIntensity
    ZeroIntensity
    on Jul 21, 2026
    Member
    More actions

    What thread safety issues come with set_type? Looking at the implementation, nothing jumps out at me as super wrong.

  24. encukou commented on Jul 22, 2026

    @encukou
    encukou
    on Jul 22, 2026
    Member
    More actions

    AFAIK it's this line in PyCPointerType_SetProto:

        Py_XSETREF(stginfo->proto, Py_NewRef(proto));

    Other code borrows stginfo->proto, assuming that it's set only once for a given object.
    We could add a lock around this, but since set_type is unneeded*, undocumented, and as far as I can see essentially unused, it's probably better to get rid of set_type & stick to single assignment for stginfo->proto.


    * for background on the use case: the need for SetPointerType/set_type -- "filling in" a pointer's type after creation -- is mentioned in ctypes 0.6.3+ docs (and earlier with a note that it “doesn't seem to work completely”). In 0.9.9.6 -- just before merging ctypes to stdlib -- the tutorial was updated: this use case is served by struct/union _fields_ being “lazy“.

  25. ZeroIntensity commented on Jul 23, 2026

    @ZeroIntensity
    ZeroIntensity
    on Jul 23, 2026
    Member
    More actions

    Deprecating seems reasonable to me then, as long as there's a clear migration path.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    stdlibStandard Library Python modules in the Lib/ directoryStandard Library Python modules in the Lib/ directorytopic-ctypestype-featureA feature request or enhancementA feature request or enhancement

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      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.