diff options
author | Matti Picus <matti.picus@gmail.com> | 2021-11-18 20:25:46 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-18 10:25:46 -0800 |
commit | ee6a23b1186343394d4e927b786c0c53e9446034 (patch) | |
tree | 236607980023a95e1f6371cf8aad3d5547232c91 /tools/allocation_tracking/alloc_hook.pyx | |
parent | 258ce2523ffad99be69afbd421d540086cb6bf61 (diff) | |
download | numpy-ee6a23b1186343394d4e927b786c0c53e9446034.tar.gz |
DEP: remove allocation_tracking, deprecate PyDataMem_SetEventHook (#20394)
* DEP: remove allocation_tracking
* DOC: add release note
* DEP: deprecate PyDataMem_SetEventHook
* DOC: fix name of release note
* fixes from review
* DOC: document deprecation of PyDataMem_EventHookFunc
Diffstat (limited to 'tools/allocation_tracking/alloc_hook.pyx')
-rw-r--r-- | tools/allocation_tracking/alloc_hook.pyx | 42 |
1 files changed, 0 insertions, 42 deletions
diff --git a/tools/allocation_tracking/alloc_hook.pyx b/tools/allocation_tracking/alloc_hook.pyx deleted file mode 100644 index eeefe1704..000000000 --- a/tools/allocation_tracking/alloc_hook.pyx +++ /dev/null @@ -1,42 +0,0 @@ -# A cython wrapper for using python functions as callbacks for -# PyDataMem_SetEventHook. - -cimport numpy as np - -cdef extern from "Python.h": - object PyLong_FromVoidPtr(void *) - void *PyLong_AsVoidPtr(object) - -ctypedef void PyDataMem_EventHookFunc(void *inp, void *outp, size_t size, - void *user_data) -cdef extern from "numpy/arrayobject.h": - PyDataMem_EventHookFunc * \ - PyDataMem_SetEventHook(PyDataMem_EventHookFunc *newhook, - void *user_data, void **old_data) - -np.import_array() - -cdef void pyhook(void *old, void *new, size_t size, void *user_data): - cdef object pyfunc = <object> user_data - pyfunc(PyLong_FromVoidPtr(old), - PyLong_FromVoidPtr(new), - size) - -class NumpyAllocHook: - def __init__(self, callback): - self.callback = callback - - def __enter__(self): - cdef void *old_hook, *old_data - old_hook = <void *> \ - PyDataMem_SetEventHook(<PyDataMem_EventHookFunc *> pyhook, - <void *> self.callback, - <void **> &old_data) - self.old_hook = PyLong_FromVoidPtr(old_hook) - self.old_data = PyLong_FromVoidPtr(old_data) - - def __exit__(self): - PyDataMem_SetEventHook(<PyDataMem_EventHookFunc *> \ - PyLong_AsVoidPtr(self.old_hook), - <void *> PyLong_AsVoidPtr(self.old_data), - <void **> 0) |