Skip to content

Commit 86e845f

Browse files
Cython 3.0 changes with noexcept
Changes per https://cython.readthedocs.io/en/latest/src/userguide/external_C_code.html Capsule deleter functions are marked noexcept except/noexcept must be specified before gil/no gil. cpdef functions should not have except qualifiers.
1 parent 8a28baa commit 86e845f

File tree

4 files changed

+8
-8
lines changed

4 files changed

+8
-8
lines changed

dpctl/_sycl_context.pyx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ cdef class SyclContextCreationError(Exception):
6868
pass
6969

7070

71-
cdef void _context_capsule_deleter(object o):
71+
cdef void _context_capsule_deleter(object o) noexcept:
7272
cdef DPCTLSyclContextRef CRef = NULL
7373
if pycapsule.PyCapsule_IsValid(o, "SyclContextRef"):
7474
CRef = <DPCTLSyclContextRef> pycapsule.PyCapsule_GetPointer(

dpctl/_sycl_event.pyx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ cdef api SyclEvent SyclEvent_Make(DPCTLSyclEventRef ERef):
7373
return SyclEvent._create(copied_ERef)
7474

7575

76-
cdef void _event_capsule_deleter(object o):
76+
cdef void _event_capsule_deleter(object o) noexcept:
7777
cdef DPCTLSyclEventRef ERef = NULL
7878
if pycapsule.PyCapsule_IsValid(o, "SyclEventRef"):
7979
ERef = <DPCTLSyclEventRef> pycapsule.PyCapsule_GetPointer(

dpctl/_sycl_queue.pyx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ cdef class SyclAsynchronousError(Exception):
121121
"""
122122

123123

124-
cdef void default_async_error_handler(int err) nogil except *:
124+
cdef void default_async_error_handler(int err) except * nogil:
125125
with gil:
126126
raise SyclAsynchronousError(err)
127127

@@ -159,7 +159,7 @@ cdef int _parse_queue_properties(object prop) except *:
159159
return res
160160

161161

162-
cdef void _queue_capsule_deleter(object o):
162+
cdef void _queue_capsule_deleter(object o) noexcept:
163163
cdef DPCTLSyclQueueRef QRef = NULL
164164
if pycapsule.PyCapsule_IsValid(o, "SyclQueueRef"):
165165
QRef = <DPCTLSyclQueueRef> pycapsule.PyCapsule_GetPointer(

dpctl/tensor/_dlpack.pyx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -106,23 +106,23 @@ def get_build_dlpack_version():
106106
return str(DLPACK_VERSION)
107107

108108

109-
cdef void _pycapsule_deleter(object dlt_capsule):
109+
cdef void _pycapsule_deleter(object dlt_capsule) noexcept:
110110
cdef DLManagedTensor *dlm_tensor = NULL
111111
if cpython.PyCapsule_IsValid(dlt_capsule, 'dltensor'):
112112
dlm_tensor = <DLManagedTensor*>cpython.PyCapsule_GetPointer(
113113
dlt_capsule, 'dltensor')
114114
dlm_tensor.deleter(dlm_tensor)
115115

116116

117-
cdef void _managed_tensor_deleter(DLManagedTensor *dlm_tensor) with gil:
117+
cdef void _managed_tensor_deleter(DLManagedTensor *dlm_tensor) noexcept with gil:
118118
if dlm_tensor is not NULL:
119119
stdlib.free(dlm_tensor.dl_tensor.shape)
120120
cpython.Py_DECREF(<usm_ndarray>dlm_tensor.manager_ctx)
121121
dlm_tensor.manager_ctx = NULL
122122
stdlib.free(dlm_tensor)
123123

124124

125-
cpdef to_dlpack_capsule(usm_ndarray usm_ary) except+:
125+
cpdef to_dlpack_capsule(usm_ndarray usm_ary):
126126
"""
127127
to_dlpack_capsule(usm_ary)
128128
@@ -288,7 +288,7 @@ cdef class _DLManagedTensorOwner:
288288
return res
289289

290290

291-
cpdef usm_ndarray from_dlpack_capsule(object py_caps) except +:
291+
cpdef usm_ndarray from_dlpack_capsule(object py_caps):
292292
"""
293293
from_dlpack_capsule(caps)
294294

0 commit comments

Comments
 (0)