* 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>