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.
I've been sitting on this work for too long. It's not polished, I haven't updated it in a while, but I need to get it out
for feedback. I hope that it doesn't prove too insulting, and I intend to edit it based on feedback. I think that I was
getting in my own head, afraid of producing something low-quality, but I don't want it to let it stop me from submitting at
all.
It did take a little bit to figure out what compromises I wanted to be able to make with it, and how to work through them.
I think for the most part this is all completely backward compatible. There was one place where I wished I could break
backward compatibility, the second argument to
Placeholder
. I would prefer that thevalue
be the 2nd positionalparameter, but that would be backward incompatible because
format
is currently allowed to be a positional argument. Alltold, I'd prefer it to be a keyword argument instead. I created a
Param
class that acts just likePlaceholder
, butsubstituting my preferred constructor API so that you can see what it looks like.
Dictionaries and Sequence parameter accumulation works differently from each other, but I think sanely in both cases. I
don't allow for conflicts, because its a guessing game what that should mean. I do allow for overrides when running the query.
I don't think I've attempted to write any docs just yet, and I do recognize that is important.
Fix #339