-
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
Specversion toggling #57
Specversion toggling #57
Conversation
Signed-off-by: Curtis Mason <cumason@google.com>
Signed-off-by: Curtis Mason <cumason@google.com>
I couldn't think of a unit test for this change because the v1 and v03 event classes functionally unmarshall data equivalently given any set of data. Idea's are welcome! |
Signed-off-by: Curtis Mason <cumason@google.com>
Signed-off-by: Curtis Mason <cumason@google.com>
Signed-off-by: Curtis Mason <cumason@google.com>
Added fix for #63 such that converters now do a simple check of whether ce-specversion is inside headers. I made this headers field optional to not break existing code, but it gives structured events the ability to recognize structured events in the absence of the application/cloudevents+json content-type |
Signed-off-by: Curtis Mason <cumason@google.com>
Signed-off-by: Curtis Mason <cumason@google.com>
Signed-off-by: Curtis Mason <cumason@google.com>
Signed-off-by: Curtis Mason <cumason@google.com>
Signed-off-by: Curtis Mason <cumason@google.com>
* 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>
* 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>
Fixes #54
Changes
from_http now marshalls with correct base event class depending on specversion. Created a converter is_binary function to givee from_http a hint as to whether given http headers is binary or not.
One line description for the changelog
from_http now marshalls with correct base event class depending on specversion