Python: Fix SKFunction.invoke_stream_async #3986
Merged
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.
Motivation and Context
The
invoke_stream_async
method on a nativeSKFunction
is not functional. The following sample code should work:And should output:
But now it only shows:
Description
Add four new
DelegateTypes
for native asynchronous generator functions for different types of parameters:yield
str
parameter, hasyield
SKContext
parameter, hasyield
str
andSKContext
parameters, hasyield
Along with these four new types, add four new
DelegateInference
functions to detect the types:And because the async generator functions needs to use
inspect.isasyncgenfunction
function to check instead ofinspect.iscoroutinefunction
, add another parameteris_asyncgenfunc
to all the infer functions.And finally, fix
SKFunction._invoke_native_stream_async
so that it can correctly iterating from an async generator function.Contribution Checklist