-
-
Notifications
You must be signed in to change notification settings - Fork 12k
MAINT: Make the refactor suggested in prepare_index #8278
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
Merged
seberg
merged 11 commits into
numpy:master
from
eric-wieser:refactor-prepare-index-only
Jul 18, 2017
Merged
Changes from 1 commit
Commits
Show all changes
11 commits
Select commit
Hold shift + click to select a range
87e1294
MAINT: Make the refactor suggested in prepare_index
eric-wieser bfd70c2
MAINT: Fix typo, remove unnecessary nesting
eric-wieser 37e6e1f
MAINT: use PyTuple_Pack, which is probably faster than Py_BuildValue
eric-wieser 3a0ad85
MAINT: Overhaul function to try and increase speed
eric-wieser 8c4e556
BUG: Fix reference counting
eric-wieser 5d9315c
STY: Fix comment capitalization and format
eric-wieser 966b2c7
fixup! BUG: Fix reference counting
eric-wieser 9832f05
fixup! MAINT: Overhaul function to try and increase speed
eric-wieser 68bad6a
MAINT: Improve comments, simplify handling of tuple subclasses
eric-wieser c587963
fixup! MAINT: Improve comments, simplify handling of tuple subclasses
eric-wieser 105e0b4
fixup! MAINT: Improve comments, simplify handling of tuple subclasses
eric-wieser File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev
Previous commit
fixup! MAINT: Improve comments, simplify handling of tuple subclasses
- Loading branch information
commit 105e0b4939a02ceda46ceb92f2978383cdc2b377
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The code here is subtly different to what we had before.
Calling
PySequence_Tuple(index)invokes__iter__, whereas this invokes__getitem__.So tuple subclasses that implement those methods inconsistently now behave differently. For instance:
gives:
a[PlusOneTuple([1, 2, 3])]→a[1, 2, 3](!)a[PlusOneTuple([1, 2, 3])]→a[2, 3, 4]There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can't you just remove this whole block and replace it with
commit_to_unpack=1?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK, plus a check for too many indices.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am fine with the changed behaviour I think, a tuple subclass should really be OK even with just using PyTuple_GET_ITEM to be honest, otherwise it should be considered badly broken.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Perhaps we should just bite the bullet here and call
tuple(tuplesubclass), since efficiency isn't important for this weird caseThere was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yea, I suppose we might just as well put whatever was there before, it won't make the code any uglier and speed really does not matter. But I no need to add a test or so (or if, put a comment that it is fine to break it). This is too strange to really worry about.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok, changed to call
tuple(tuplesubclass), which makes our life a lot easier