| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
We do not use these in NumPy anymore, and at this point the whole
`npy_interrupt.h` header only exists in case someone is using it
out there.
We may wish to just remove it at some point, vendoring the header is
simple enough after all (and no known downstream usage exists).
See also gh-7545, gh-12541
|
|
|
|
|
|
| |
[skip azp] [skip actions]
Closes gh-21431
|
|\
| |
| | |
DOC: Remove documentation specific to Python 2
|
| | |
|
| | |
|
|/ |
|
| |
|
| |
|
|
|
|
| |
Co-authored-by: Charles Harris <charlesr.harris@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This documents (and thus semi-establishes) that we try to make
sure that any array that may be *read* is fully initialized with
proper Python objects (not NULL).
However, try to write in a way that clearly says that users are not
allowed to rely on this. I somewhat suspect there are more code
paths where we may to fail fully initializing object arrays...
It does promise to regard such things as bugs, if we do not want
that, I am happy to just tell users to expect NULLs.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* ~ not ^
* = skipped for -
* swap - and = underline in files they are swapped
* * to = in header underline
* - to = and * to - for consitency
* A few more change * -> ~
* use ~ instead of +
* DOC: Fixup `c-api/array.rst` with further ^ with ~ replacement
There is still a fourth level here, which remains using "
Co-authored-by: Sebastian Berg <sebastian@sipsolutions.net>
|
|
|
|
|
| |
The PyArray_AsCArray API does not conform to the documentation and
document that the call steals a reference to the PyArray_Descr argument.
|
| |
|
|
|
| |
Followup to #20689 to include the correction made in the now-invalid #20686.
|
|
|
|
|
|
|
| |
* BUG: Added check for NULL data in ufuncs
* DOC: Made NULL refs more explicit
* DOC: Added ..versionchanged:: tag
|
|
|
|
|
|
|
| |
The text was copy-edited a bit, and the comments in the C file
were updated to match the documentation in the .rst file.
Closes gh-20623.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* DEP: remove NPY_ARRAY_UPDATEIFCOPY, deprecated in 1.14
* remove more UPDATEIFCOPY
* typo: add missing comma
* remove a few more UPDATEIFCOPY
* Add release note
* remove UPDATEIFCOPY from comment (from review)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
| |
|
|\
| |
| | |
DOC: Two small changes in array.rst:
|
| |
| |
| |
| |
| |
| | |
* Include the return values of `PyArray_RegisterCanCast`
in the description.
* Correct the documentation of `PyArray_Scalar`.
|
|/
|
|
|
|
|
|
|
|
|
|
|
| |
Builds on gh-20194. Fixes breakage of SciPy in https://github.com/scipy/scipy/issues/14917
At some point we could flip the default to "warn" instead of "no warning"
* make warning conditional on NUMPY_WARN_IF_NO_MEM_POLICY
* add test, fix example code
* fixes from review
* typo
|
|
|
|
|
|
|
| |
* DOC: add release note and move NEP 49 to Final
* fix link
* fix release note
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes gh-17467. Adds a public struct to hold memory manipulation routines PyDataMem_Handler and two new API functions PyDataMem_SetHandler to replace the current routines with the new ones, and PyDataMem_GetHandlerName to get the string name of the current routines (either globally or for a specific ndarray object). This also changes the size of the ndarray object to hold the PyDataMem_Handler active when it was created so subsequent actions on its data memory will remain consistent.
Tests and documentation are included. Along the way, I found some places in the code where the current policy is inconsistent (all data memory handling should have gone through npy_*_cache not PyDataMem_*) so even if this is rejected it might improve the cache handling.
The PyDataMem_Handler has fields to override memcpy, these are currently not implemented: memcpy in the code base is untouched. I think this PR is invasive enough as-is, if desired memcpy can be handled in a follow-up PR.
* ENH: add and use global configurable memory routines
* ENH: add tests and a way to compile c-extensions from tests
* fix allocation/free exposed by tests
* DOC: document the new APIs (and some old ones too)
* BUG: return void from FREE, also some cleanup
* MAINT: changes from review
* fixes from linter
* setting ndarray->descr on 0d or scalars mess with FREE
* make scalar allocation more consistent wrt np_alloc_cache
* change formatting for sphinx
* remove memcpy variants
* update to match NEP 49
* ENH: add a python-level get_handler_name
* ENH: add core.multiarray.get_handler_name
* Allow closure-like definition of the data mem routines
* Fix incompatible pointer warnings
* Note PyDataMemAllocator and PyMemAllocatorEx differentiation
Co-authored-by: Matti Picus <matti.picus@gmail.com>
* Redefine default allocator handling
* Always allocate new arrays using the current_handler
* Search for the mem_handler name of the data owner
* Sub-comparisons don't need a local mem_handler
* Make the default_handler a valid PyDataMem_Handler
* Fix PyDataMem_SetHandler description (NEP discussion)
* Pass the allocators by reference
* Implement allocator context-locality
* Fix documentation, make PyDataMem_GetHandler return const
* remove import of setuptools==49.1.3, doesn't work on python3.10
* Fix refcount leaks
* fix function signatures in test
* Return early on PyDataMem_GetHandler error (VOID_compare)
* Add context/thread-locality tests, allow testing custom policies
* ENH: add and use global configurable memory routines
* ENH: add tests and a way to compile c-extensions from tests
* fix allocation/free exposed by tests
* DOC: document the new APIs (and some old ones too)
* BUG: return void from FREE, also some cleanup
* MAINT: changes from review
* fixes from linter
* setting ndarray->descr on 0d or scalars mess with FREE
* make scalar allocation more consistent wrt np_alloc_cache
* change formatting for sphinx
* remove memcpy variants
* update to match NEP 49
* ENH: add a python-level get_handler_name
* ENH: add core.multiarray.get_handler_name
* Allow closure-like definition of the data mem routines
* Fix incompatible pointer warnings
* Note PyDataMemAllocator and PyMemAllocatorEx differentiation
Co-authored-by: Matti Picus <matti.picus@gmail.com>
* Redefine default allocator handling
* Always allocate new arrays using the current_handler
* Search for the mem_handler name of the data owner
* Sub-comparisons don't need a local mem_handler
* Make the default_handler a valid PyDataMem_Handler
* Fix PyDataMem_SetHandler description (NEP discussion)
* Pass the allocators by reference
* remove import of setuptools==49.1.3, doesn't work on python3.10
* fix function signatures in test
* try to fix cygwin extension building
* YAPF mem_policy test
* Less empty lines, more comments (tests)
* Apply suggestions from code review (set an exception and)
Co-authored-by: Matti Picus <matti.picus@gmail.com>
* skip test on cygwin
* update API hash for changed signature
* TST: add gc.collect to make sure cycles are broken
* Implement thread-locality for PyPy
Co-authored-by: Sebastian Berg <sebastian@sipsolutions.net>
* Update numpy/core/tests/test_mem_policy.py
Co-authored-by: Sebastian Berg <sebastian@sipsolutions.net>
* fixes from review
* update circleci config
* fix test
* make the connection between OWNDATA and having a allocator handle more explicit
* improve docstring, fix flake8 for tests
* update PyDataMem_GetHandler() from review
* Implement allocator lifetime management
* update NEP and add best-effort handling of error in PyDataMem_UserFREE
* ENH: fix and test for blindly taking ownership of data
* Update doc/neps/nep-0049.rst
Co-authored-by: Elias Koromilas <elias.koromilas@gmail.com>
|
|\
| |
| | |
DOC: Deindent some sphinx declarations to avoid warnings.
|
| | |
|
| | |
|
|/ |
|
| |
|
|
|
| |
Co-authored-by: Melissa Weber Mendonça <melissawm@gmail.com>
|
|
|
|
|
|
|
|
| |
1. PyArray_CopyObject
2. PyArray_MapIterArray
3. PyArray_MapIterSwapAxes
4. PyArray_MapIterNext
5. PyArray_MapIterArrayCopyIfOverlap
|
| |
|
| |
|
| |
|
|\
| |
| | |
MAINT: Refactor UFunc core to use NEP 43 style dispatching
|
| |
| |
| |
| | |
Co-authored-by: Matti Picus <matti.picus@gmail.com>
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The first (big) chunk of a multi-step process to update all ufuncs
to NEP 43 style ufuncs.
This limits itself to normal ufunc calls and sets ufunc.at and
all reduce-like operations to the side. These would add another
level of complexity.
|
| |
| |
| | |
Co-authored-by: Matti Picus <matti.picus@gmail.com>
|
| |
| |
| |
| | |
PyArray_FinalizeFunc.
|
| | |
|
|/ |
|
| |
|
|
|
|
|
| |
* MAINT: Move masked code 1:1 (does not work)
* MAINT: Fixup code move and small follow-up fixes
|
|
|
|
|
|
| |
Document that NeighborhoodIterator will point to the begining
of the data instead of the position pointed by iter on creation
in the special case where data is contiguous.
|
|
|
|
|
|
|
|
| |
Both functions have been deprecated in 1.19.x without complaints
(so far). The first function is largely identical to a Python ufunc
call. The second function had served internal NumPy purposes until
NumPy 1.6 (probably), and since then had a comment that it should
probably be removed (it was not documented).
|
|\
| |
| | |
DOC: Fix for building with sphinx 3
|
| | |
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* ENH,API: Store exported buffer info on the array
This speeds up array deallocation and buffer exports, since it
removes the need to global dictionary lookups. It also somewhat
simplifies the logic. The main advantage is prossibly less the
speedup itself (which is not large compared to most things that
happen in the livetime of an array), but rather that no unnecessary
work is done for shortlived arrays, which never export a buffer.
The downside of this approach is that the ABI changes for anyone
who would be subclassing ndarray in C.
* MAINT: Do not tag the NULL (no buffers exported)
The allocation is not the right place to initialize to anything but
NULL, so take the easy path and do not tag the NULL default.
* TST: Add test for best try RuntimeError on corrupt buffer-info
* Remove NPY_SIZEOF_PYARRAYOBJECT and add some documentation
* Use 3 to tag the pointer and object for a "bad" one in the test
* DEP: deprecate the NPY_SIZEOF_PYARRAYOBJECT macro
* Tune down matti's deprecation to write the error instead.
* Tweak macro, so that clang hopefully doesn't complain.
* Use None instead of NULL in PyErr_WriteUnraisable, pypy seems to have a bug with it
* Just comment it out...
* Apply suggestions from code review
Co-authored-by: Matti Picus <matti.picus@gmail.com>
Co-authored-by: mattip <matti.picus@gmail.com>
|