Remove dependency on itertools
#605
Closed
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.
This PR removes the dependency on
itertoolsin favor of slightly more verbose implementations. The two usages of itertools were forizip!()Which was just swapped for chaining
.zip()followed by a final.map()to pack the elements into a single tupleAnd
.group_by()Which was replaced with grouping everything into a
BTreeMapfirst, then iterating over thekey -> grouppairs.This implementation is slightly different since
.group_by()will chunk the groups which means that the same key can appear multiple times if it is separated by another key. The implementation in this PR groups all values with the same key regardless of if they are separated by another key, so I'd like for someone else to double check that this still follows intended behavior