Repository navigation
Conversation
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Positional operations reject valid objects implementing
__index__, while the endpoint fast paths accept invalid indices such as0.0and-1.0. For example,SortedList([10, 20]).pop(0.0)removes an item instead of raisingTypeError.Normalize scalar indices with
operator.index()before lookup, deletion, and pop. This supports integer-like index objects without accepting values that only implement__int__. Use a single list pop for scalarSortedSetdeletion so an index object's conversion is evaluated once and the membership set stays synchronized.SortedKeyListand the positionalSortedDictAPIs inherit the corrected behavior.Related to #192, which reported the float-index behavior and was closed as low priority; this also covers valid index-protocol objects.
Validation on Windows / CPython 3.14:
git diff --checkpasses.Tests cover both list implementations, positive/negative indices across internal blocks, empty and out-of-range access, invalid inputs without mutation, booleans, conversion count, and delegated set/dictionary operations.