Ensure bulk_upsert accepts any iterable for rows #83
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 updates the
bulk_insert
andbulk_update
methods to allowsrows
to be any object that's an iterable (i.e. implements__getitem__
and/or__iter__
).Currently, the two methods require rows to be a list (or specifically, an object that supports indexing). I ran into this when I was using a dict to generate the rows to submit. Here's a contrived example:
Since
rows.values()
returns a dictionary view object, it doesn't support indexing (e.g.rows[0]
). The existing logic that assumes therows
argument supports indexing causes an exception. This PR removes that requirement, allowing any iterable to be passed without first being converted to alist
.I've also included tests 🎉