Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: febus982/sdk-python
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: main
Choose a base ref
...
head repository: cloudevents/sdk-python
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: main
Choose a head ref
Checking mergeability… Don’t worry, you can still create the pull request.
  • 9 commits
  • 30 files changed
  • 6 contributors

Commits on May 26, 2024

  1. Update CI and tooling (cloudevents#236)

    * Update pre-commit hooks
    
    Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
    
    * Add Python 3.12
    
    Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
    
    * Drop python 3.7 and add 3.12 to TOX
    
    Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
    
    * Migrate to latest action versions. Drop v3.7 from CI and add 3.12
    
    Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
    
    * Migrate to Python 3.8
    
    Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
    
    * Fix changelog message.
    
    Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
    
    ---------
    
    Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
    xSAVIKx authored May 26, 2024
    Configuration menu
    Copy the full SHA
    eedc61e View commit details
    Browse the repository at this point in the history
  2. Pydantic v2 (cloudevents#235)

    * Fixes examples when using Pydantic V2
    
    Signed-off-by: Fabio Batista <fabio@atelie.dev.br>
    
    * When type checking, uses the latest (V2) version of Pydantic
    
    Signed-off-by: Fabio Batista <fabio@atelie.dev.br>
    
    ---------
    
    Signed-off-by: Fabio Batista <fabio@atelie.dev.br>
    Co-authored-by: Yurii Serhiichuk <xSAVIKx@users.noreply.github.com>
    fabiob and xSAVIKx authored May 26, 2024
    Configuration menu
    Copy the full SHA
    11520e3 View commit details
    Browse the repository at this point in the history
  3. Modified content-type to abide by attribute naming conventions for cl…

    …oudevents (cloudevents#232)
    
    * fix: changed content-type to a valid attribute
    
    Signed-off-by: vivjd <vivjdeng@hotmail.com>
    
    * fix: changed headers back to content-type
    
    Signed-off-by: Vivian <118199397+vivjd@users.noreply.github.com>
    Signed-off-by: vivjd <vivjdeng@hotmail.com>
    
    * modified kafka test cases to match datacontenttype
    
    Signed-off-by: vivjd <vivjdeng@hotmail.com>
    
    * fix: updated kafka/conversion.py and test cases to check for valid attributes
    
    Signed-off-by: vivjd <vivjdeng@hotmail.com>
    
    ---------
    
    Signed-off-by: vivjd <vivjdeng@hotmail.com>
    Signed-off-by: Vivian <118199397+vivjd@users.noreply.github.com>
    Co-authored-by: Yurii Serhiichuk <xSAVIKx@users.noreply.github.com>
    vivjd and xSAVIKx authored May 26, 2024
    Configuration menu
    Copy the full SHA
    16441d7 View commit details
    Browse the repository at this point in the history

Commits on Jun 20, 2024

  1. Release/v1.11.0 (cloudevents#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>
    xSAVIKx authored Jun 20, 2024
    Configuration menu
    Copy the full SHA
    c6c7e8c View commit details
    Browse the repository at this point in the history

Commits on Oct 30, 2024

  1. fix kafka unmarshaller args typing and defaults (cloudevents#240)

    * fix kafka unmarshaller args typing and defaults
    
    Signed-off-by: Christoph Hösler <christoph.hoesler@inovex.de>
    
    * [pre-commit.ci] auto fixes from pre-commit.com hooks
    
    for more information, see https://pre-commit.ci
    
    ---------
    
    Signed-off-by: Christoph Hösler <christoph.hoesler@inovex.de>
    Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
    hoesler and pre-commit-ci[bot] authored Oct 30, 2024
    Configuration menu
    Copy the full SHA
    efca352 View commit details
    Browse the repository at this point in the history
  2. chore: release 1.11.1 (cloudevents#241)

    Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
    xSAVIKx authored Oct 30, 2024
    Configuration menu
    Copy the full SHA
    96cfaa6 View commit details
    Browse the repository at this point in the history

Commits on Nov 9, 2024

  1. chpre: disable attestations while we're not using trusted publishing (c…

    …loudevents#243)
    
    Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
    xSAVIKx authored Nov 9, 2024
    Configuration menu
    Copy the full SHA
    c5645d8 View commit details
    Browse the repository at this point in the history

Commits on May 23, 2025

  1. Improve public API type annotations & fix unit test type errors (clou…

    …devents#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>
    h4l authored May 23, 2025
    Configuration menu
    Copy the full SHA
    37ae369 View commit details
    Browse the repository at this point in the history

Commits on Jun 2, 2025

  1. Drop EOL Python 3.8 support (cloudevents#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>
    xSAVIKx and pre-commit-ci[bot] authored Jun 2, 2025
    Configuration menu
    Copy the full SHA
    a38933d View commit details
    Browse the repository at this point in the history
Loading