Skip to content

Tags: cloudevents/sdk-python

Tags

1.12.0

Toggle 1.12.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Drop EOL Python 3.8 support (#249)

* chore: add missing changelog items

Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>

* chore: drop Python 3.8 support

Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>

* chore: add a changelog item on Python 3.8 removal

Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>

* chore: remove mypy-constrains reference as we don't need it anymore

Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>

* chore: Update pre-commit check versions.

Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>

* chore: fix isort pre-commit

Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* chore: Use Python 3.12 as base version

Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>

---------

Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

1.11.1

Toggle 1.11.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Improve public API type annotations & fix unit test type errors (#248)

* chore: improve typing of functions returning AnyCloudEvent

kafka.conversion.from_binary() and from_structured() return
AnyCloudEvent type var according to their event_type argument, but when
event_type is None, type checkers cannot infer the return type. We now
use an overload to declare that the return type is http.CloudEvent when
event_type is None.

Previously users had to explicitly annotate this type when calling
without event_type. This happens quite a lot in this repo's
test_kafka_conversions.py — this fixes quite a few type errors like:

> error: Need type annotation for "result"  [var-annotated]

Signed-off-by: Hal Blackburn <hwtb2@cam.ac.uk>

* chore: type v1.Event chainable Set*() methods

The v1.Event self-returning Set*() methods like SetData() were returning
BaseEvent, which doesn't declare the same Set* methods. As a result,
chaining more than one Set* method would make the return type unknown.

This was causing type errors in test_event_pipeline.py.

The Set*() methods now return the Self type.

Signed-off-by: Hal Blackburn <hwtb2@cam.ac.uk>

* chore: fix type errors in tests

mypy was failing with lots of type errors in test modules. I've not
annotated all fixtures, mostly fixed existing type errors.

Signed-off-by: Hal Blackburn <hwtb2@cam.ac.uk>

* chore: allow non-dict headers types in from_http()

from_http() conversion function was requiring its headers argument to
be a typing.Dict, which makes it incompatible with headers types of http
libraries, which support features like multiple values per key.
typing.Mapping and even _typeshed.SupportsItems do not cover these
types. For example,
samples/http-image-cloudevents/image_sample_server.py was failing to
type check where it calls `from_http(request.headers, ...)`.

To support these kind of headers types in from_http(), we now define our
own SupportsDuplicateItems protocol, which is broader than
_typeshed.SupportsItems.

I've only applied this to from_http(), as typing.Mapping is OK for most
other methods that accept dict-like objects, and using this more lenient
interface everywhere would impose restrictions on our implementation,
even though it might be more flexible for users.

Signed-off-by: Hal Blackburn <hwtb2@cam.ac.uk>

* build: run mypy via tox

Tox now runs mypy on cloudevents itself, and the samples.

Signed-off-by: Hal Blackburn <hwtb2@cam.ac.uk>

* build(ci): run mypy in CI alongside linting

Signed-off-by: Hal Blackburn <hwtb2@cam.ac.uk>

* chore: fix minor mypy type complaint in samples

Signed-off-by: Hal Blackburn <hwtb2@cam.ac.uk>

* feat: use Mapping, not Dict for input arguments

Mapping imposes less restrictions on callers, because it's read-only and
allows non-dict types to be passed without copying them as dict(), or
passing dict-like values and ignoring the resulting type error.

Signed-off-by: Hal Blackburn <hwtb2@cam.ac.uk>

* chore: fix tests on py3.8

Tests were failing because the sanic dependency dropped support for
py3.8 in its current release. sanic is now pinned to the last compatible
version for py3.8 only.

Signed-off-by: Hal Blackburn <hwtb2@cam.ac.uk>

* feat: support new model_validate_json() kwargs

Pydantic added by_alias and by_name keyword arguments to
BaseModel.model_validate_json in 2.11.1:

pydantic/pydantic@acb0f10

This caused mypy to report that that the Pydantic v2 CloudEvent did not
override model_validate_json() correctly. Our override now accepts these
newly-added arguments. They have no effect, as the implementation does
not use Pydantic to validate the JSON, but we also don't use field
aliases, so the only effect they could have in the superclass would be
to raise an error if they're both False.

Signed-off-by: Hal Blackburn <hwtb2@cam.ac.uk>

* chore: accept Mapping as well as SupportsDuplicateItems

Although our types.SupportsDuplicateItems type is wider than Dict and
Mapping, it's not a familar type to users, so explicitly accepting
Mapping in the from_http() functions should make it more clear to users
that a dict-like object is required for the headers argument.

Signed-off-by: Hal Blackburn <hwtb2@cam.ac.uk>

* chore: constrain deps to maintain py 3.8 support

Python 3.8 is unsupported and dependencies (such as pydantic) are now
shipping releases that fail to type check with mypy running in 3.8
compatibility mode. We run mypy in py 3.8 compatibility mode, so the
mypy tox environments must only use deps that support 3.8. And unit
tests run by py 3.8 must only use deps that support 3.8.

To constrain the deps for 3.8 support, we use two constraint files, one
for general environments that only constrains the dependencies that
python 3.8 interpreters use, and another for mypy that constraints the
dependencies that all interpreters use.

Signed-off-by: Hal Blackburn <hwtb2@cam.ac.uk>

---------

Signed-off-by: Hal Blackburn <hwtb2@cam.ac.uk>

1.11.0

Toggle 1.11.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Release/v1.11.0 (#237)

* Add missing changelog items

Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>

* Bump version

Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>

---------

Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>

1.10.1

Toggle 1.10.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
Fix Pydantic custom attributes (#229)

* Add custom extension attribute to the test set.

Replicates bug test data from the #228

Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>

* use modern `super` syntax

Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>

* Fix `black` language version

Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>

* Fixes #228

Pydantic v2 .__dict__ has different behavior from what Pydantic v1 had and is not giving us `extra` fields anymore. On the other hand the iterator over the event gives us extras as well

Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>

* Add missing EOF

Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>

* Add Pydantic fix to the changelog

Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>

* Add links to the changelog

Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>

* Bump version

Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>

* Update Black and MyPy versions

Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>

---------

Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>

1.10.0

Toggle 1.10.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
Release/v1.10.0 (#223)

* Bump version

Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>

* Update changelog

Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>

---------

Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>

1.9.0

Toggle 1.9.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
Add Python 3.11 support (#209)

* docs: add missing release notes

Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>

* chore: add Python3.11 support

Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>

* chore: Bump version

Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>

* docs: create release section

Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>

Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>

1.8.0

Toggle 1.8.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
Drop python36 (#208)

* chore: drop Python 3.6 official support

Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>

* docs: update docs regarding Python 3.6 being unsupported anymore

Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>

* deps: drop Python3.6-only dependencies

Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>

* chore: drop extra `;`

Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>

* chore: try `setup.py` syntax

Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>

Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>

1.6.3

Toggle 1.6.3's commit message
hotfix: Hotfix Pydantic dependency constraints.

docs: Add mention of the constraints fix

Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>

chore: bump version

Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>

fix: PyPi constraints for Pydantic

Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>

ci: add ability to release from tag branches.

Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>

1.7.0

Toggle 1.7.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
Release/v1.7.0 (#201)

* chore: Fix typings errors and cleanup code a bit

Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>

* chore: Use `AnyStr` shortcut instead of `Union[bytes, str]`

Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>

* chore: Bump version.

Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>

* Update the changelog

Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

1.6.2

Toggle 1.6.2's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
Feat/expose event attributes (#195)

* feat: Add an API to read all event attributes

Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>

* deps: update black version

Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>

* chore: update version to v1.6.2

Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>

* docs: update changelog

Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>

* docs: fix the release number link

Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>

Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy