diff options
author | CoprDistGit <infra@openeuler.org> | 2023-04-10 11:31:51 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-04-10 11:31:51 +0000 |
commit | d7222955cb246723bd986840390bdf57a53bc954 (patch) | |
tree | eb79c9e42dfea47e6749fa7667e0b0636be1c9b9 | |
parent | 4a6cca941b4e48f284c1eeefd65765f5cc7a3977 (diff) |
automatic import of python-cloudevents
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-cloudevents.spec | 578 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 580 insertions, 0 deletions
@@ -0,0 +1 @@ +/cloudevents-1.9.0.tar.gz diff --git a/python-cloudevents.spec b/python-cloudevents.spec new file mode 100644 index 0000000..daa042e --- /dev/null +++ b/python-cloudevents.spec @@ -0,0 +1,578 @@ +%global _empty_manifest_terminate_build 0 +Name: python-cloudevents +Version: 1.9.0 +Release: 1 +Summary: CloudEvents Python SDK +License: https://www.apache.org/licenses/LICENSE-2.0 +URL: https://github.com/cloudevents/sdk-python +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/35/51/e4beea7af2e9a6f50b2a13e57444aa879d5366fb177b9d7bcf613de29696/cloudevents-1.9.0.tar.gz +BuildArch: noarch + +Requires: python3-deprecation +Requires: python3-pydantic + +%description +# Python SDK for [CloudEvents](https://github.com/cloudevents/spec) + +[](https://badge.fury.io/py/cloudevents) + +## Status + +This SDK is still considered a work in progress, therefore things might (and +will) break with every update. + +This SDK current supports the following versions of CloudEvents: + +- v1.0 +- v0.3 + +## Python SDK + +Package **cloudevents** provides primitives to work with CloudEvents specification: +https://github.com/cloudevents/spec. + +### Installing + +The CloudEvents SDK can be installed with pip: + +``` +pip install cloudevents +``` + +## Sending CloudEvents + +Below we will provide samples on how to send cloudevents using the popular +[`requests`](http://docs.python-requests.org) library. + +### Binary HTTP CloudEvent + +```python +from cloudevents.http import CloudEvent +from cloudevents.conversion import to_binary +import requests + +# Create a CloudEvent +# - The CloudEvent "id" is generated if omitted. "specversion" defaults to "1.0". +attributes = { + "type": "com.example.sampletype1", + "source": "https://example.com/event-producer", +} +data = {"message": "Hello World!"} +event = CloudEvent(attributes, data) + +# Creates the HTTP request representation of the CloudEvent in binary content mode +headers, body = to_binary(event) + +# POST +requests.post("<some-url>", data=body, headers=headers) +``` + +### Structured HTTP CloudEvent + +```python +from cloudevents.conversion import to_structured +from cloudevents.http import CloudEvent +import requests + +# Create a CloudEvent +# - The CloudEvent "id" is generated if omitted. "specversion" defaults to "1.0". +attributes = { + "type": "com.example.sampletype2", + "source": "https://example.com/event-producer", +} +data = {"message": "Hello World!"} +event = CloudEvent(attributes, data) + +# Creates the HTTP request representation of the CloudEvent in structured content mode +headers, body = to_structured(event) + +# POST +requests.post("<some-url>", data=body, headers=headers) +``` + +You can find a complete example of turning a CloudEvent into a HTTP request +[in the samples' directory](samples/http-json-cloudevents/client.py). + +## Receiving CloudEvents + +The code below shows how to consume a cloudevent using the popular python web framework +[flask](https://flask.palletsprojects.com/en/2.2.x/quickstart/): + +```python +from flask import Flask, request + +from cloudevents.http import from_http + +app = Flask(__name__) + + +# create an endpoint at http://localhost:/3000/ +@app.route("/", methods=["POST"]) +def home(): + # create a CloudEvent + event = from_http(request.headers, request.get_data()) + + # you can access cloudevent fields as seen below + print( + f"Found {event['id']} from {event['source']} with type " + f"{event['type']} and specversion {event['specversion']}" + ) + + return "", 204 + + +if __name__ == "__main__": + app.run(port=3000) +``` + +You can find a complete example of turning a CloudEvent into a HTTP request +[in the samples' directory](samples/http-json-cloudevents/json_sample_server.py). + +## SDK versioning + +The goal of this package is to provide support for all released versions of CloudEvents, +ideally while maintaining the same API. It will use semantic versioning +with following rules: + +- MAJOR version increments when backwards incompatible changes is introduced. +- MINOR version increments when backwards compatible feature is introduced + INCLUDING support for new CloudEvents version. +- PATCH version increments when a backwards compatible bug fix is introduced. + +## Community + +- There are bi-weekly calls immediately following the [Serverless/CloudEvents + call](https://github.com/cloudevents/spec#meeting-time) at + 9am PT (US Pacific). Which means they will typically start at 10am PT, but + if the other call ends early then the SDK call will start early as well. + See the [CloudEvents meeting minutes](https://docs.google.com/document/d/1OVF68rpuPK5shIHILK9JOqlZBbfe91RNzQ7u_P7YCDE/edit#) + to determine which week will have the call. +- Slack: #cloudeventssdk channel under + [CNCF's Slack workspace](https://slack.cncf.io/). +- Email: https://lists.cncf.io/g/cncf-cloudevents-sdk +- Contact for additional information: Denis Makogon (`@denysmakogon` on slack). + +Each SDK may have its own unique processes, tooling and guidelines, common +governance related material can be found in the +[CloudEvents `docs`](https://github.com/cloudevents/spec/tree/main/docs) +directory. In particular, in there you will find information concerning +how SDK projects are +[managed](https://github.com/cloudevents/spec/blob/main/docs/GOVERNANCE.md), +[guidelines](https://github.com/cloudevents/spec/blob/main/docs/SDK-maintainer-guidelines.md) +for how PR reviews and approval, and our +[Code of Conduct](https://github.com/cloudevents/spec/blob/main/docs/GOVERNANCE.md#additional-information) +information. + +## Maintenance + +We use [black][black] and [isort][isort] for autoformatting. We set up a [tox][tox] +environment to reformat the codebase. + +e.g. + +```bash +pip install tox +tox -e reformat +``` + +For information on releasing version bumps see [RELEASING.md](RELEASING.md) + +[black]: https://black.readthedocs.io/ +[isort]: https://pycqa.github.io/isort/ +[tox]: https://tox.wiki/ + + +%package -n python3-cloudevents +Summary: CloudEvents Python SDK +Provides: python-cloudevents +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-cloudevents +# Python SDK for [CloudEvents](https://github.com/cloudevents/spec) + +[](https://badge.fury.io/py/cloudevents) + +## Status + +This SDK is still considered a work in progress, therefore things might (and +will) break with every update. + +This SDK current supports the following versions of CloudEvents: + +- v1.0 +- v0.3 + +## Python SDK + +Package **cloudevents** provides primitives to work with CloudEvents specification: +https://github.com/cloudevents/spec. + +### Installing + +The CloudEvents SDK can be installed with pip: + +``` +pip install cloudevents +``` + +## Sending CloudEvents + +Below we will provide samples on how to send cloudevents using the popular +[`requests`](http://docs.python-requests.org) library. + +### Binary HTTP CloudEvent + +```python +from cloudevents.http import CloudEvent +from cloudevents.conversion import to_binary +import requests + +# Create a CloudEvent +# - The CloudEvent "id" is generated if omitted. "specversion" defaults to "1.0". +attributes = { + "type": "com.example.sampletype1", + "source": "https://example.com/event-producer", +} +data = {"message": "Hello World!"} +event = CloudEvent(attributes, data) + +# Creates the HTTP request representation of the CloudEvent in binary content mode +headers, body = to_binary(event) + +# POST +requests.post("<some-url>", data=body, headers=headers) +``` + +### Structured HTTP CloudEvent + +```python +from cloudevents.conversion import to_structured +from cloudevents.http import CloudEvent +import requests + +# Create a CloudEvent +# - The CloudEvent "id" is generated if omitted. "specversion" defaults to "1.0". +attributes = { + "type": "com.example.sampletype2", + "source": "https://example.com/event-producer", +} +data = {"message": "Hello World!"} +event = CloudEvent(attributes, data) + +# Creates the HTTP request representation of the CloudEvent in structured content mode +headers, body = to_structured(event) + +# POST +requests.post("<some-url>", data=body, headers=headers) +``` + +You can find a complete example of turning a CloudEvent into a HTTP request +[in the samples' directory](samples/http-json-cloudevents/client.py). + +## Receiving CloudEvents + +The code below shows how to consume a cloudevent using the popular python web framework +[flask](https://flask.palletsprojects.com/en/2.2.x/quickstart/): + +```python +from flask import Flask, request + +from cloudevents.http import from_http + +app = Flask(__name__) + + +# create an endpoint at http://localhost:/3000/ +@app.route("/", methods=["POST"]) +def home(): + # create a CloudEvent + event = from_http(request.headers, request.get_data()) + + # you can access cloudevent fields as seen below + print( + f"Found {event['id']} from {event['source']} with type " + f"{event['type']} and specversion {event['specversion']}" + ) + + return "", 204 + + +if __name__ == "__main__": + app.run(port=3000) +``` + +You can find a complete example of turning a CloudEvent into a HTTP request +[in the samples' directory](samples/http-json-cloudevents/json_sample_server.py). + +## SDK versioning + +The goal of this package is to provide support for all released versions of CloudEvents, +ideally while maintaining the same API. It will use semantic versioning +with following rules: + +- MAJOR version increments when backwards incompatible changes is introduced. +- MINOR version increments when backwards compatible feature is introduced + INCLUDING support for new CloudEvents version. +- PATCH version increments when a backwards compatible bug fix is introduced. + +## Community + +- There are bi-weekly calls immediately following the [Serverless/CloudEvents + call](https://github.com/cloudevents/spec#meeting-time) at + 9am PT (US Pacific). Which means they will typically start at 10am PT, but + if the other call ends early then the SDK call will start early as well. + See the [CloudEvents meeting minutes](https://docs.google.com/document/d/1OVF68rpuPK5shIHILK9JOqlZBbfe91RNzQ7u_P7YCDE/edit#) + to determine which week will have the call. +- Slack: #cloudeventssdk channel under + [CNCF's Slack workspace](https://slack.cncf.io/). +- Email: https://lists.cncf.io/g/cncf-cloudevents-sdk +- Contact for additional information: Denis Makogon (`@denysmakogon` on slack). + +Each SDK may have its own unique processes, tooling and guidelines, common +governance related material can be found in the +[CloudEvents `docs`](https://github.com/cloudevents/spec/tree/main/docs) +directory. In particular, in there you will find information concerning +how SDK projects are +[managed](https://github.com/cloudevents/spec/blob/main/docs/GOVERNANCE.md), +[guidelines](https://github.com/cloudevents/spec/blob/main/docs/SDK-maintainer-guidelines.md) +for how PR reviews and approval, and our +[Code of Conduct](https://github.com/cloudevents/spec/blob/main/docs/GOVERNANCE.md#additional-information) +information. + +## Maintenance + +We use [black][black] and [isort][isort] for autoformatting. We set up a [tox][tox] +environment to reformat the codebase. + +e.g. + +```bash +pip install tox +tox -e reformat +``` + +For information on releasing version bumps see [RELEASING.md](RELEASING.md) + +[black]: https://black.readthedocs.io/ +[isort]: https://pycqa.github.io/isort/ +[tox]: https://tox.wiki/ + + +%package help +Summary: Development documents and examples for cloudevents +Provides: python3-cloudevents-doc +%description help +# Python SDK for [CloudEvents](https://github.com/cloudevents/spec) + +[](https://badge.fury.io/py/cloudevents) + +## Status + +This SDK is still considered a work in progress, therefore things might (and +will) break with every update. + +This SDK current supports the following versions of CloudEvents: + +- v1.0 +- v0.3 + +## Python SDK + +Package **cloudevents** provides primitives to work with CloudEvents specification: +https://github.com/cloudevents/spec. + +### Installing + +The CloudEvents SDK can be installed with pip: + +``` +pip install cloudevents +``` + +## Sending CloudEvents + +Below we will provide samples on how to send cloudevents using the popular +[`requests`](http://docs.python-requests.org) library. + +### Binary HTTP CloudEvent + +```python +from cloudevents.http import CloudEvent +from cloudevents.conversion import to_binary +import requests + +# Create a CloudEvent +# - The CloudEvent "id" is generated if omitted. "specversion" defaults to "1.0". +attributes = { + "type": "com.example.sampletype1", + "source": "https://example.com/event-producer", +} +data = {"message": "Hello World!"} +event = CloudEvent(attributes, data) + +# Creates the HTTP request representation of the CloudEvent in binary content mode +headers, body = to_binary(event) + +# POST +requests.post("<some-url>", data=body, headers=headers) +``` + +### Structured HTTP CloudEvent + +```python +from cloudevents.conversion import to_structured +from cloudevents.http import CloudEvent +import requests + +# Create a CloudEvent +# - The CloudEvent "id" is generated if omitted. "specversion" defaults to "1.0". +attributes = { + "type": "com.example.sampletype2", + "source": "https://example.com/event-producer", +} +data = {"message": "Hello World!"} +event = CloudEvent(attributes, data) + +# Creates the HTTP request representation of the CloudEvent in structured content mode +headers, body = to_structured(event) + +# POST +requests.post("<some-url>", data=body, headers=headers) +``` + +You can find a complete example of turning a CloudEvent into a HTTP request +[in the samples' directory](samples/http-json-cloudevents/client.py). + +## Receiving CloudEvents + +The code below shows how to consume a cloudevent using the popular python web framework +[flask](https://flask.palletsprojects.com/en/2.2.x/quickstart/): + +```python +from flask import Flask, request + +from cloudevents.http import from_http + +app = Flask(__name__) + + +# create an endpoint at http://localhost:/3000/ +@app.route("/", methods=["POST"]) +def home(): + # create a CloudEvent + event = from_http(request.headers, request.get_data()) + + # you can access cloudevent fields as seen below + print( + f"Found {event['id']} from {event['source']} with type " + f"{event['type']} and specversion {event['specversion']}" + ) + + return "", 204 + + +if __name__ == "__main__": + app.run(port=3000) +``` + +You can find a complete example of turning a CloudEvent into a HTTP request +[in the samples' directory](samples/http-json-cloudevents/json_sample_server.py). + +## SDK versioning + +The goal of this package is to provide support for all released versions of CloudEvents, +ideally while maintaining the same API. It will use semantic versioning +with following rules: + +- MAJOR version increments when backwards incompatible changes is introduced. +- MINOR version increments when backwards compatible feature is introduced + INCLUDING support for new CloudEvents version. +- PATCH version increments when a backwards compatible bug fix is introduced. + +## Community + +- There are bi-weekly calls immediately following the [Serverless/CloudEvents + call](https://github.com/cloudevents/spec#meeting-time) at + 9am PT (US Pacific). Which means they will typically start at 10am PT, but + if the other call ends early then the SDK call will start early as well. + See the [CloudEvents meeting minutes](https://docs.google.com/document/d/1OVF68rpuPK5shIHILK9JOqlZBbfe91RNzQ7u_P7YCDE/edit#) + to determine which week will have the call. +- Slack: #cloudeventssdk channel under + [CNCF's Slack workspace](https://slack.cncf.io/). +- Email: https://lists.cncf.io/g/cncf-cloudevents-sdk +- Contact for additional information: Denis Makogon (`@denysmakogon` on slack). + +Each SDK may have its own unique processes, tooling and guidelines, common +governance related material can be found in the +[CloudEvents `docs`](https://github.com/cloudevents/spec/tree/main/docs) +directory. In particular, in there you will find information concerning +how SDK projects are +[managed](https://github.com/cloudevents/spec/blob/main/docs/GOVERNANCE.md), +[guidelines](https://github.com/cloudevents/spec/blob/main/docs/SDK-maintainer-guidelines.md) +for how PR reviews and approval, and our +[Code of Conduct](https://github.com/cloudevents/spec/blob/main/docs/GOVERNANCE.md#additional-information) +information. + +## Maintenance + +We use [black][black] and [isort][isort] for autoformatting. We set up a [tox][tox] +environment to reformat the codebase. + +e.g. + +```bash +pip install tox +tox -e reformat +``` + +For information on releasing version bumps see [RELEASING.md](RELEASING.md) + +[black]: https://black.readthedocs.io/ +[isort]: https://pycqa.github.io/isort/ +[tox]: https://tox.wiki/ + + +%prep +%autosetup -n cloudevents-1.9.0 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-cloudevents -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Mon Apr 10 2023 Python_Bot <Python_Bot@openeuler.org> - 1.9.0-1 +- Package Spec generated @@ -0,0 +1 @@ +c843c996898abd7d40e7d9d5311d2e98 cloudevents-1.9.0.tar.gz |