Improve sqlite Aggregration Protocols#15188
Draft
Uh oh!
There was an error while loading. Please reload this page.
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 resolves#12141 and improves the typing for
create_aggregateby:n_arg=1case that the protocol only accepts a single argument forstepandinverse, and a separate protocol accepting N arguments when given a positive integer value or -1. Properties withCallable[..., object]are used in order to allow the implementer to accept any number of named positional or key-word arguments._SingleParamWindowAggregateClassand_AnyParamWindowAggregateClass).This is primarily a re-open of #12192 addressing the issues called out in https://github.com/python/typeshed/pull/12192/changes#r1651411242. Looking back on this PR, the return-types were too strict as well, there's not necessarily a strict requirement that the return types match the input types so we avoid using generics for returns as well now.