-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: partial @streaming blob support for Python #747
Open
robin-aws
wants to merge
715
commits into
main-1.x
Choose a base branch
from
robin-aws/streaming-test-models-python
base: main-1.x
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…-aws/smithy-dafny into robin-aws/generate-everything-mode # Conflicts: # codegen/smithy-dafny-codegen/src/main/resources/templates/src/Index.dfy
…aming-test-models
…aming-test-models
robin-aws
changed the title
Robin aws/streaming test models python
feat: @streaming support for Python (WIP)
Jan 16, 2025
…obin-aws/streaming-test-models-python # Conflicts: # .github/workflows/smithy-polymorph.yml
robin-aws
changed the title
feat: @streaming support for Python (WIP)
feat: @streaming blob support for Python (WIP)
Jan 21, 2025
robin-aws
changed the title
feat: @streaming blob support for Python (WIP)
feat: partial @streaming blob support for Python
Jan 21, 2025
…obin-aws/streaming-test-models-python
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Adds partial support for the
@streaming
Smithy trait on blobs, depending on aactions-and-streaming-stdlibs
branch of Dafny that adds an Actions standard library, and only implemented when targeting Python so far. Event streaming is not technically supported yet because more codegen changes are necessary, but this will be a relatively small delta, as the Dafny types involved are already handled.The motivation behind merging this incomplete work is largely to get the test model coverage into CI, so that it doesn't regress as the feature is completed, especially when Dafny verification is perturbed in future versions. The next priority will be to complete the Dafny branch and merge it to Dafny mainline.
Note that
smithy-dafny
will still emit aDANGER
validation event saying that@streaming
is not supported, which is intentional in order to guard against using the feature in production before it is fully completed: the test models exercising it explicitly suppress this event.dafny
submodule underTestModels/dafny-dependencies/dafny
tracking theactions-and-streaming-stdlibs
branch, just to access the contents ofSource/DafnyStandardLibraries/src/Std/Actions
etc. This copy of Dafny is never built or used for any other building tasks.StandardLibrary
to build a .doo file from a subset of the Dafny standard library files above (usingDafnyStandardLibraries-smithy-dafny-subset.toml
). This is then used as a--library
argument when verifying/translating polymorph libraries. This approach allows the standard library source to be built with different but compatible options such as--reads-clauses-on-methods
.USE_DAFNY_STANDARD_LIBRARIES
Makefile variable, since a newer Dafny is required for this to work.@
-attributes.ByteStream
andRewindableByteStream
types, and removed the previous workaround to first.read()
all data in Python.modifies
clauses. I haven't yet implemented this, instead using a patch file to add the missing specification to theStreaming
test model code.aws-sdk/s3
test model and fleshed theStreaming
test model out to actually test the feature.dafny
submodule. See License header scanning is broken #763.Reviewer note: it is worth reading the contents of the pending Actions and Streams Dafny libraries, but they are still under construction and I'm not claiming they will not change before being merged. Interface feedback is welcome but is not intended to be a hard requirement in scope for this review.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.