-
Notifications
You must be signed in to change notification settings - Fork 56
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
Fixed top level extensions bug #71
Merged
cumason123
merged 4 commits into
cloudevents:v1.0.0-dev
from
cumason123:top-level-extensions
Jul 24, 2020
Merged
Fixed top level extensions bug #71
cumason123
merged 4 commits into
cloudevents:v1.0.0-dev
from
cumason123:top-level-extensions
Jul 24, 2020
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
Signed-off-by: Curtis Mason <cumason@google.com>
Signed-off-by: Curtis Mason <cumason@google.com>
I have not read into the spec sufficiently to evaluate this requirement. |
grant
approved these changes
Jul 24, 2020
cumason123
added a commit
that referenced
this pull request
Aug 11, 2020
* Created CloudEvent class (#36) CloudEvents is a more pythonic interface for using cloud events. It is powered by internal marshallers and cloud event base classes. It performs basic validation on fields, and cloud event type checking. Signed-off-by: Curtis Mason <cumason@google.com> Signed-off-by: Dustin Ingram <di@users.noreply.github.com> * Implemented python properties in base.py (#41) * Added SetCloudEventVersion Signed-off-by: Curtis Mason <cumason@google.com> Signed-off-by: Dustin Ingram <di@users.noreply.github.com> * began adding python properties Signed-off-by: Curtis Mason <cumason@google.com> Signed-off-by: Dustin Ingram <di@users.noreply.github.com> * added pythonic properties to base class Signed-off-by: Curtis Mason <cumason@google.com> Signed-off-by: Dustin Ingram <di@users.noreply.github.com> * began testing for getters/setters Signed-off-by: Curtis Mason <cumason@google.com> Signed-off-by: Dustin Ingram <di@users.noreply.github.com> * added general setter tests Signed-off-by: Curtis Mason <cumason@google.com> Signed-off-by: Dustin Ingram <di@users.noreply.github.com> * fixed spacing in base.py Signed-off-by: Curtis Mason <cumason@google.com> Signed-off-by: Dustin Ingram <di@users.noreply.github.com> * added __eq__ to option and datacontentencoding property to v03 Signed-off-by: Curtis Mason <cumason@google.com> Signed-off-by: Dustin Ingram <di@users.noreply.github.com> * lint fixes Signed-off-by: Curtis Mason <cumason@google.com> Signed-off-by: Dustin Ingram <di@users.noreply.github.com> * testing extensions and old getters Signed-off-by: Curtis Mason <cumason@google.com> Signed-off-by: Dustin Ingram <di@users.noreply.github.com> * removed versions v01 and v02 from test_data_encaps_refs.py Signed-off-by: Curtis Mason <cumason@google.com> Signed-off-by: Dustin Ingram <di@users.noreply.github.com> * fixed inheritance issue in CloudEvent Signed-off-by: Curtis Mason <cumason@google.com> * added prefixed_headers dict to test Signed-off-by: Curtis Mason <cumason@google.com> * Http structured cloudevents (#47) * Moved fields out of base & structured support base._ce_required_fields and base._ce_optional_fields were moved into event classes v03 and v1. http_events.CloudEvent class now looks for fieldnames in either headers or data, and can automatically determine whether this is a binary or structured event. Signed-off-by: Curtis Mason <cumason@google.com> * testing structured Signed-off-by: Curtis Mason <cumason@google.com> * added tests for structured events Signed-off-by: Curtis Mason <cumason@google.com> * Added test valid structured cloudevents Signed-off-by: Curtis Mason <cumason@google.com> * Created default headers arg in CloudEvent Signed-off-by: Curtis Mason <cumason@google.com> * Added http_events.py sample code Signed-off-by: Curtis Mason <cumason@google.com> * removed ../python-event-requests Signed-off-by: Curtis Mason <cumason@google.com> * README.md nit Signed-off-by: Curtis Mason <cumason@google.com> * client.py nit Signed-off-by: Curtis Mason <cumason@google.com> * comment nits Signed-off-by: Curtis Mason <cumason@google.com> * created __getitem__ in CloudEvent Signed-off-by: Curtis Mason <cumason@google.com> * sample nits Signed-off-by: Curtis Mason <cumason@google.com> * fixed structured empty data issue Signed-off-by: Curtis Mason <cumason@google.com> * Added CloudEvent to README Signed-off-by: Curtis Mason <cumason@google.com> * added http_msg to CloudEvent Signed-off-by: Curtis Mason <cumason@google.com> * implemented ToRequest in CloudEvent Signed-off-by: Curtis Mason <cumason@google.com> * testing more specversions Signed-off-by: Curtis Mason <cumason@google.com> * Added sample code to README.md Signed-off-by: Curtis Mason <cumason@google.com> * modified sample code Signed-off-by: Curtis Mason <cumason@google.com> * added datavalidation to changelog Signed-off-by: Curtis Mason <cumason@google.com> * updated README Signed-off-by: Curtis Mason <cumason@google.com> * README adjustment Signed-off-by: Curtis Mason <cumason@google.com> * ruler 80 adjustment on http_events Signed-off-by: Curtis Mason <cumason@google.com> * style and renamed ToRequest to to_request Signed-off-by: Curtis Mason <cumason@google.com> * lint fix Signed-off-by: Curtis Mason <cumason@google.com> * fixed self.binary typo Signed-off-by: Curtis Mason <cumason@google.com> * CHANGELOG adjustment Signed-off-by: Curtis Mason <cumason@google.com> * rollback CHANGELOG Signed-off-by: Curtis Mason <cumason@google.com> * Added documentation to to_request Signed-off-by: Curtis Mason <cumason@google.com> * README.md adjustment Signed-off-by: Curtis Mason <cumason@google.com> * renamed event_handler to event_version Signed-off-by: Curtis Mason <cumason@google.com> * inlined field_name_modifier Signed-off-by: Curtis Mason <cumason@google.com> * renamed test body data Signed-off-by: Curtis Mason <cumason@google.com> * removed unnecessary headers from test Signed-off-by: Curtis Mason <cumason@google.com> * removed field_name_modifier and fixed e.g. in client.py Signed-off-by: Curtis Mason <cumason@google.com> * pylint fix Signed-off-by: Curtis Mason <cumason@google.com> * Update types and handle data_base64 structured. (#34) * Update types and handle data_base64 structured. - Add sane defaults for encoding - Unfortunately, defaults for structured and binary need to be *different* - Push types through interfaces - Make it easy to call 'ToRequest' using Marshaller defaults - Add tests for above Signed-off-by: Evan Anderson <evan.k.anderson@gmail.com> * Fix lint warnings due to changes to W503/W504 See https://gitlab.com/pycqa/flake8/-/issues/466 for details. Signed-off-by: Evan Anderson <evan.k.anderson@gmail.com> * Adopt di's suggestions. Signed-off-by: Evan Anderson <evan.k.anderson@gmail.com> * Fix lint. Signed-off-by: Evan Anderson <evan.k.anderson@gmail.com> * Move types to another package. Signed-off-by: Evan Anderson <evan.k.anderson@gmail.com> * Adjust CloudEvent class in http_events.py to support binary data as well as JSON. Signed-off-by: Evan Anderson <evan.k.anderson@gmail.com> * Apply suggested changes by MacrBoissonneault Signed-off-by: Evan Anderson <evan.k.anderson@gmail.com> * Fix samples as well. Signed-off-by: Evan Anderson <evan.k.anderson@gmail.com> * Fix lint. Apparently, we can complain about formating issues, but a human has to fix them. Signed-off-by: Evan Anderson <evan.k.anderson@gmail.com> * Add test for binary encoding of messages. Fix usability of binary detection in MarshalJSON to support memoryview. Signed-off-by: Evan Anderson <evan.k.anderson@gmail.com> * Fix errors noticed by cumason123 Signed-off-by: Evan Anderson <evan.k.anderson@gmail.com> * Changelog version deprecation (#48) * added changelog Signed-off-by: Curtis Mason <cumason@google.com> * Created CloudEvent class (#36) CloudEvents is a more pythonic interface for using cloud events. It is powered by internal marshallers and cloud event base classes. It performs basic validation on fields, and cloud event type checking. Signed-off-by: Curtis Mason <cumason@google.com> Signed-off-by: Dustin Ingram <di@users.noreply.github.com> Signed-off-by: Curtis Mason <cumason@google.com> * Fix tox configuration for CI (#46) Signed-off-by: Dustin Ingram <di@users.noreply.github.com> Signed-off-by: Curtis Mason <cumason@google.com> * Implemented python properties in base.py (#41) * Added SetCloudEventVersion Signed-off-by: Curtis Mason <cumason@google.com> Signed-off-by: Dustin Ingram <di@users.noreply.github.com> * began adding python properties Signed-off-by: Curtis Mason <cumason@google.com> Signed-off-by: Dustin Ingram <di@users.noreply.github.com> * added pythonic properties to base class Signed-off-by: Curtis Mason <cumason@google.com> Signed-off-by: Dustin Ingram <di@users.noreply.github.com> * began testing for getters/setters Signed-off-by: Curtis Mason <cumason@google.com> Signed-off-by: Dustin Ingram <di@users.noreply.github.com> * added general setter tests Signed-off-by: Curtis Mason <cumason@google.com> Signed-off-by: Dustin Ingram <di@users.noreply.github.com> * fixed spacing in base.py Signed-off-by: Curtis Mason <cumason@google.com> Signed-off-by: Dustin Ingram <di@users.noreply.github.com> * added __eq__ to option and datacontentencoding property to v03 Signed-off-by: Curtis Mason <cumason@google.com> Signed-off-by: Dustin Ingram <di@users.noreply.github.com> * lint fixes Signed-off-by: Curtis Mason <cumason@google.com> Signed-off-by: Dustin Ingram <di@users.noreply.github.com> * testing extensions and old getters Signed-off-by: Curtis Mason <cumason@google.com> Signed-off-by: Dustin Ingram <di@users.noreply.github.com> * removed versions v01 and v02 from test_data_encaps_refs.py Signed-off-by: Curtis Mason <cumason@google.com> Signed-off-by: Dustin Ingram <di@users.noreply.github.com> * fixed inheritance issue in CloudEvent Signed-off-by: Curtis Mason <cumason@google.com> * added prefixed_headers dict to test Signed-off-by: Curtis Mason <cumason@google.com> * CHANGELOG adjustment Signed-off-by: Curtis Mason <cumason@google.com> * Update CHANGELOG.md Co-authored-by: Dustin Ingram <di@users.noreply.github.com> Signed-off-by: Curtis Mason <cumason@google.com> * Update CHANGELOG.md Co-authored-by: Dustin Ingram <di@users.noreply.github.com> Signed-off-by: Curtis Mason <cumason@google.com> * Update CHANGELOG.md Co-authored-by: Dustin Ingram <di@users.noreply.github.com> Signed-off-by: Curtis Mason <cumason@google.com> * Update CHANGELOG.md Co-authored-by: Dustin Ingram <di@users.noreply.github.com> Signed-off-by: Curtis Mason <cumason@google.com> * Removed irrelevant files from commit diff Signed-off-by: Curtis Mason <cumason@google.com> Co-authored-by: Dustin Ingram <di@users.noreply.github.com> * Black formatter (#51) * black and isort added to precommit Signed-off-by: Curtis Mason <cumason@google.com> * main renaming Signed-off-by: Curtis Mason <cumason@google.com> * fixed tox Signed-off-by: Curtis Mason <cumason@google.com> * linting in tox rename Signed-off-by: Curtis Mason <cumason@google.com> * fixed tox trailing space Signed-off-by: Curtis Mason <cumason@google.com> * added reformat tox env Signed-off-by: Curtis Mason <cumason@google.com> * Reformatting files Signed-off-by: Curtis Mason <cumason@google.com> * reformatted more files Signed-off-by: Curtis Mason <cumason@google.com> * documented tox in README Signed-off-by: Curtis Mason <cumason@google.com> * removed -rc flag Signed-off-by: Curtis Mason <cumason@google.com> * README and http-cloudevents sample code adjustments to reflect new CloudEvent (#56) * README and http-cloudevents CloudEvent adjustments README no longer shows how to use base event classes to create events. Removed this because users shouldn't be forced to interact with the marshaller class. Additionally, CloudEvent is a simpler interface therefore we are encouraging the CloudEvent class usage. http-cloudevents now has more example usage for the getitem overload. Similarly README shows how to use getitem overload. Signed-off-by: Curtis Mason <cumason@google.com> * lint reformat Signed-off-by: Curtis Mason <cumason@google.com> * resolved nits Signed-off-by: Curtis Mason <cumason@google.com> * lint fix Signed-off-by: Curtis Mason <cumason@google.com> * renamed /mycontext to url Signed-off-by: Curtis Mason <cumason@google.com> * renamed here linlk to in the samples directory Signed-off-by: Curtis Mason <cumason@google.com> * Separated http methods (#60) * instantiated http path Signed-off-by: Curtis Mason <cumason@google.com> * moved from_http from CloudEvent to http Signed-off-by: Curtis Mason <cumason@google.com> * Moved to_http out of CloudEvent Signed-off-by: Curtis Mason <cumason@google.com> * moved http library into event.py Signed-off-by: Curtis Mason <cumason@google.com> * testing printable cloudevent Signed-off-by: Curtis Mason <cumason@google.com> * Adjusted README Signed-off-by: Curtis Mason <cumason@google.com> * Created EventClass Signed-off-by: Curtis Mason <cumason@google.com> * reformatted event.py Signed-off-by: Curtis Mason <cumason@google.com> * from_json definition Signed-off-by: Curtis Mason <cumason@google.com> * server print changes Signed-off-by: Curtis Mason <cumason@google.com> * Specversion toggling (#57) * cloudevent now switches specversion types Signed-off-by: Curtis Mason <cumason@google.com> * removed duplicate marshall instance Signed-off-by: Curtis Mason <cumason@google.com> * resolved grant requests Signed-off-by: Curtis Mason <cumason@google.com> * converters now can check headers for fields Signed-off-by: Curtis Mason <cumason@google.com> * removed print statement Signed-off-by: Curtis Mason <cumason@google.com> * Fixed marshallers looking at headers for specversion Signed-off-by: Curtis Mason <cumason@google.com> * lint fixes Signed-off-by: Curtis Mason <cumason@google.com> * is_binary static method and structured isinstance rework Signed-off-by: Curtis Mason <cumason@google.com> * testing for is_binary and is_structured Signed-off-by: Curtis Mason <cumason@google.com> * Image sample code (#65) * added image example Signed-off-by: Curtis Mason <cumason@google.com> * moved size into headers Signed-off-by: Curtis Mason <cumason@google.com> * lint fix Signed-off-by: Curtis Mason <cumason@google.com> * renamed sample code Signed-off-by: Curtis Mason <cumason@google.com> * added test to http-image-cloudevents sample Signed-off-by: Curtis Mason <cumason@google.com> * removed unnecessary function Signed-off-by: Curtis Mason <cumason@google.com> * Added testing for http-image-cloudevents Signed-off-by: Curtis Mason <cumason@google.com> * Data marshall arg fix and better image in sample Fixed bug where data_marshaller and data_unmarshaller wasn't being passed into positional arguments. Also used cloudevents logo for the image in http-image-cloudevents Signed-off-by: Curtis Mason <cumason@google.com> * adjusted http-image-cloudevents samples Signed-off-by: Curtis Mason <cumason@google.com> * reformat and README changes Signed-off-by: Curtis Mason <cumason@google.com> * io bytes casting in data_unmarshaller Signed-off-by: Curtis Mason <cumason@google.com> * lint fix Signed-off-by: Curtis Mason <cumason@google.com> * removed unusued imports in http-image samples Signed-off-by: Curtis Mason <cumason@google.com> * removed samples/http-cloudevents/tmp.png Signed-off-by: Curtis Mason <cumason@google.com> * Nits Signed-off-by: Curtis Mason <cumason@google.com> * Implemented to_json and from_json (#72) * added test_to_json test Signed-off-by: Curtis Mason <cumason@google.com> * implemented to_json with tests Signed-off-by: Curtis Mason <cumason@google.com> * from_json and to_json tests Signed-off-by: Curtis Mason <cumason@google.com> * Tests for to_json being able to talk to from_json Signed-off-by: Curtis Mason <cumason@google.com> * lint fix Signed-off-by: Curtis Mason <cumason@google.com> * added documentation for to_json and from_json Signed-off-by: Curtis Mason <cumason@google.com> * lint fix Signed-off-by: Curtis Mason <cumason@google.com> * lint fix Signed-off-by: Curtis Mason <cumason@google.com> * Fixed top level extensions bug (#71) * Fixed top level extensions bug Signed-off-by: Curtis Mason <cumason@google.com> * lint fix Signed-off-by: Curtis Mason <cumason@google.com> * fixed name bug in test_event_extensions Signed-off-by: Curtis Mason <cumason@google.com> * fixed broken links in README.md (#75) Signed-off-by: Curtis Mason <cumason@google.com> * Fixed marshaller documentation typo's in http (#76) * Fixed marshaller documentation in http directory Signed-off-by: Curtis Mason <cumason@google.com> * adjusted marshaller documentation Signed-off-by: Curtis Mason <cumason@google.com> * None data fix (#78) * fixed none data issue Signed-off-by: Curtis Mason <cumason@google.com> * added none data test for marshalling Signed-off-by: Curtis Mason <cumason@google.com> * lint fix Signed-off-by: Curtis Mason <cumason@google.com> * Samples image test server (#79) * fixed none data issue Signed-off-by: Curtis Mason <cumason@google.com> * added none data test for marshalling Signed-off-by: Curtis Mason <cumason@google.com> * lint fix Signed-off-by: Curtis Mason <cumason@google.com> * added http server test in image sample Signed-off-by: Curtis Mason <cumason@google.com> * Removed print statements from test Signed-off-by: Curtis Mason <cumason@google.com> * removed requests from test Signed-off-by: Curtis Mason <cumason@google.com> * Top level http (#83) * Modularized http and made http a top level module Modularized the http directory by separating related functions into different scripts. Also removed EventClass and kept a singular CloudEvent. Finally, CloudEvent.__repr__ was refactored such that it doesn't depend on external methods. Signed-off-by: Curtis Mason <cumason@google.com> * renamed requests.py to http_methods Signed-off-by: Curtis Mason <cumason@google.com> * lint fixes Signed-off-by: Curtis Mason <cumason@google.com> * http-json-cloudevents testing (#80) * Added tests to http-json-cloudevents Signed-off-by: Curtis Mason <cumason@google.com> * removed outdated python-requests sample code Signed-off-by: Curtis Mason <cumason@google.com> * lint fix Signed-off-by: Curtis Mason <cumason@google.com> * Added flask to requirements Signed-off-by: Curtis Mason <cumason@google.com> * lint fix Signed-off-by: Curtis Mason <cumason@google.com> * docs: add README badge (#85) Signed-off-by: Grant Timmerman <timmerman+devrel@google.com> * added pypi-release rule (#87) * added pypi-release rule Signed-off-by: Curtis Mason <cumason@google.com> * added RELEASING.md Signed-off-by: Curtis Mason <cumason@google.com> * Adjusted RELEASING.md Signed-off-by: Curtis Mason <cumason@google.com> * Update .github/workflows/pypi-release.yml Co-authored-by: Dustin Ingram <di@users.noreply.github.com> Signed-off-by: Curtis Mason <cumason@google.com> * workflow pypi name changed Signed-off-by: Curtis Mason <cumason@google.com> * Update RELEASING.md Co-authored-by: Dustin Ingram <di@users.noreply.github.com> Signed-off-by: Curtis Mason <cumason@google.com> * Update RELEASING.md Co-authored-by: Dustin Ingram <di@users.noreply.github.com> Signed-off-by: Curtis Mason <cumason@google.com> * Update RELEASING.md Co-authored-by: Dustin Ingram <di@users.noreply.github.com> Signed-off-by: Curtis Mason <cumason@google.com> * removed some pbr stuff Signed-off-by: Curtis Mason <cumason@google.com> * Removed all pbr stuff Signed-off-by: Curtis Mason <cumason@google.com> * README nits Signed-off-by: Curtis Mason <cumason@google.com> * RELEASING adjustment in README Signed-off-by: Curtis Mason <cumason@google.com> * author update in setup.cfg Signed-off-by: Curtis Mason <cumason@google.com> * removed setup.cfg Signed-off-by: Curtis Mason <cumason@bu.edu> * Update setup.py Co-authored-by: Dustin Ingram <di@users.noreply.github.com> Signed-off-by: Curtis Mason <cumason@bu.edu> * lint fix Signed-off-by: Curtis Mason <cumason@bu.edu> Co-authored-by: Dustin Ingram <di@users.noreply.github.com> * pypi-release git tags automation (#88) * added pypi_packaging Signed-off-by: Curtis Mason <cumason@bu.edu> * reverted pypi-release Signed-off-by: Curtis Mason <cumason@bu.edu> * added pypi_package workflow Signed-off-by: Curtis Mason <cumason@bu.edu> * added gitpython dependency Signed-off-by: Curtis Mason <cumason@bu.edu> * added git import in createTag function Signed-off-by: Curtis Mason <cumason@bu.edu> * Updated RELEASING.md and implemented pypi_config in pypi_packaging.pg Signed-off-by: Curtis Mason <cumason@bu.edu> Signed-off-by: Curtis Mason <cumason@google.com> * Fixed some docs Signed-off-by: Curtis Mason <cumason@bu.edu> Signed-off-by: Curtis Mason <cumason@google.com> * Update .github/workflows/pypi-release.yml Co-authored-by: Dustin Ingram <di@users.noreply.github.com> Signed-off-by: Curtis Mason <cumason@google.com> * added __version__ Signed-off-by: Curtis Mason <cumason@google.com> * lint change Signed-off-by: Curtis Mason <cumason@google.com> * reinstalling cloudevents in workflow Signed-off-by: Curtis Mason <cumason@google.com> * added cloudevents to publish.txt Signed-off-by: Curtis Mason <cumason@google.com> * removed old release_doc Signed-off-by: Curtis Mason <cumason@google.com> Co-authored-by: Dustin Ingram <di@users.noreply.github.com> Co-authored-by: Evan Anderson <evan.k.anderson@gmail.com> Co-authored-by: Dustin Ingram <di@users.noreply.github.com> Co-authored-by: Grant Timmerman <timmerman@google.com>
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.
Fixes #64, #62, #32
Changes
Will now print
Whereas before this change it would print non-top level extensions such as:
As you can see in the above, the attribute "extensions" should not be present in the marshalled json if I understand correctly. Furthermore, empty extensions dict's will no longer be marshalled as well.
One line description for the changelog
Top level extensions fix