This repository has been archived by the owner on Feb 17, 2023. It is now read-only.
Replace vectorize with list comprehension in ArrayStack.__deepcopy__ #195
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When a function created with
numpy.vectorize
is called on a nested sequence or numpy array, it calls its underlying function for each element in each nested sequence. So when given a sequence of biggus arrays, the underlying function is called for each element in those arrays, not on the arrays themselves.This causes a bug in
ArrayStack.__deepcopy__
; when the_stack
attribute is deepcopied, rather than creating a new biggus array for each element, a numpy array is created. Not only does this load the data prematurely, it causes errors in other parts of the code which assume_stack
contains biggus arrays.This change fixes this bug by replacing the vectorization with a list comprehension.