Skip to content
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

gh-117142: Port _ctypes to multi-phase init #117181

Merged
merged 47 commits into from
Apr 10, 2024
Merged
Show file tree
Hide file tree
Changes from 41 commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
9f64b8d
add test
neonene Mar 23, 2024
22d291c
multi phase init
neonene Mar 23, 2024
c63737e
_PyType_GetModuleState() for CField,CThunk
neonene Mar 23, 2024
6a775bc
PyType_GetModuleByDef() for cast()
neonene Mar 23, 2024
622e09d
get_module_state()
neonene Mar 23, 2024
5dae271
get_module_state_by_def(Py_TYPE(Py_TYPE(obj)))
neonene Mar 23, 2024
2263f82
get_module_state_by_def(Py_TYPE(type))
neonene Mar 23, 2024
1877767
split GenericPyCData_new()
neonene Mar 23, 2024
6d97625
move global vars to module state
neonene Mar 23, 2024
6a09cad
prepend module state to func args
neonene Mar 23, 2024
c24df4d
fix typos
neonene Mar 23, 2024
678ffa0
ignored.tsv
neonene Mar 23, 2024
83ec018
_PyType_GetModuleState() with assert
neonene Mar 23, 2024
012f8b8
get_module_state_by_cls -> _by_class
neonene Mar 23, 2024
28696c2
assert(module) in create_pointer_type()
neonene Mar 28, 2024
a228d35
sync styles with #117189
neonene Mar 29, 2024
03c1f79
Merge branch 'main' into ctypes_multi2
neonene Mar 29, 2024
de5110f
📜🤖 Added by blurb_it.
blurb-it[bot] Mar 29, 2024
4d69bdc
PyType_GetModuleByDef() for fini
neonene Mar 30, 2024
f2655eb
fix warning
neonene Mar 30, 2024
afb0308
Merge branch 'main' into ctypes_multi2
neonene Apr 2, 2024
b5932ca
correct merge confict resolution
neonene Apr 2, 2024
737f29e
Use Argument Clinic and the defining_class for __sizeof__
encukou Apr 2, 2024
96bebd0
edit blank
neonene Apr 3, 2024
5d7ac4b
AC1: module, class, special cases
neonene Apr 4, 2024
0bf6ad9
AC2: the others
neonene Apr 4, 2024
149d3a0
apply suggested AC conv (CType_Type)
neonene Apr 4, 2024
3b89673
Merge branch 'main' into ctypes_multi2
neonene Apr 4, 2024
ef428a7
Merge branch 'ctypes_multi2' into ctypes_multi2
neonene Apr 4, 2024
2755d92
Merge pull request #1 from encukou/ctypes_multi2
neonene Apr 4, 2024
1042696
add missing test.support.script_helper
neonene Apr 4, 2024
8107885
AC: split class imputs
neonene Apr 4, 2024
bcdf867
periods
neonene Apr 4, 2024
cd97939
Merge branch 'main' into ctypes_multi2
neonene Apr 4, 2024
39c91b4
update AC checksums
neonene Apr 4, 2024
5db3c42
fill type names
neonene Apr 5, 2024
5d09e4e
Merge branch 'main' into ctypes_multi2
neonene Apr 5, 2024
8da8b43
Merge branch 'main' into ctypes_multi2
neonene Apr 5, 2024
40cec34
AC: class default module state getters
neonene Apr 5, 2024
893a981
typo
neonene Apr 5, 2024
807c6c0
move define up
neonene Apr 5, 2024
f58ed21
Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED
neonene Apr 9, 2024
cb88db3
Move PyGILState_Ensure/Release
neonene Apr 9, 2024
4237557
fix a comment
neonene Apr 9, 2024
4802eb0
Merge branch 'main' into ctypes_multi2
neonene Apr 10, 2024
03cffa9
change NEWS (PEP 687 -> 489)
neonene Apr 10, 2024
76a2b8c
typo
neonene Apr 10, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions Lib/test/test_ctypes/test_refcounts.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import unittest
from test import support
from test.support import import_helper
from test.support import script_helper
_ctypes_test = import_helper.import_module("_ctypes_test")


Expand Down Expand Up @@ -110,5 +111,18 @@ def func():
func()


class ModuleIsolationTest(unittest.TestCase):
def test_finalize(self):
# check if gc_decref() succeeds
script = (
"import ctypes;"
"import sys;"
"del sys.modules['_ctypes'];"
"import _ctypes;"
"exit()"
)
script_helper.assert_python_ok("-c", script)


if __name__ == '__main__':
unittest.main()
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Isolate :mod:`!_ctypes` (apply :pep:`687`).
Loading
Loading