Commit 435fa56
Release v2 (#280)
* chore: V2 migrate to uv (#239)
* Migrate project to rye and ruff for v2
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
* Just run ruff
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
* Add the core package stub
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
* Move cloudevents to v1
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
* Add extra rye configs. update locks to be OS-aware
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
* Migrate from rye to uv
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
* Use python 3.12 by default for linting
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
* Do not mention rye in docs
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
* Use stricter mypy rules. exclude v1
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
* Run isort, flake8
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
* fix isort
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
* Run ruff with isort
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
* Move mypy config to pyproject
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
* Exclude samples as well
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
* Exclude samples as well
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
* Fix mypy pre-commit setup
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>
* fix: remove last mentions of py38 (#244)
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
* feat: base `CloudEvent` class as per v1 specs, including attribute validation (#242)
* feat: base `CloudEvent` class as per v1 specs, including attribute validation
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
* chore: add typings and docstrings
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
* chore: Add support for custom extension names and validate them
Signed-off-by: Tudor <plugaru.tudor@protonmail.com>
* chore: Add copyright and fix missing type info
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
* chore: Add getters for attributes and test happy path
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
* fix: typing
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
* chore: Split validation logic into smaller methods
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
* chore: Add method to extract extension by name
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
* chore: configure ruff to sort imports also
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
* chore: Returns all the errors at ones instead of raising early. Improve tests
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
* fix missing type info
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
* chore: Improve exceptions handling. Have exceptions grouped by attribute name and typed exceptions
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
* chore: Skip type checing for getters of required attributes
We can't use TypedDict here becuase it does not allow for arbitrary keys which we need in order to support custom extension attributes.
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
* fix: missing type
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
* chore: Improve exceptions and introduce a new one for invalid values
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
* fix: str representation for validation error
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix: Fix missing type definitions
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
* small fix
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
* remove cast of defaultdict to dict
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
---------
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
Signed-off-by: Tudor <plugaru.tudor@protonmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* feat: implementation for JSON format. (#245)
* feat: draft implementation for JSON format. Only CloudEvent serialization included.
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
* Implement read method
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
* small fix to read method
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
* wrap up JSON format completely and make it compliant with the spec
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
* add type annotations
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
* chore(docs): move docstrings from implementation to protocol class
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
* chore(docs): document Format protocol
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
---------
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
* chore: drop support for PY3.19 and run tests for 3.13 and 3.14 (#252)
* chore: drop support for PY3.9 since it reached EOL
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
* chore: run tests for 3.13 and 3.14
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
* chore: update docs
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
* chore: update actions to latest version
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
---------
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
* feat: implement http bindings (#251)
* chore: fix uv lock warnings
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
* feat: implement http bindings
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
* chore: fix mypy in tests
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
* chore: more mypy fixes
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
* chore: another try
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
* chore: switch from using `Dict` to `dict` for type hints
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
* chore: switch type hints to use `|` rather than `Union`
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
* refactor: simplify header normalization in from_http function
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
* refactor: streamline header normalization in from_binary function
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
* refactor: remove redundant comment in from_binary function
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
---------
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
* feat(v2): full implementation for kafka bindings (#253)
* feat: full implementation of kafka bindings
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
* chore: no need to re-export functions from core module. let users explicitly import
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
---------
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
* feat(v2): Full AMQP spec implementation (#254)
* feat(v2): full AMQP 1.0 implementation
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
* feat(v2): Support both `_` and `:` when reading AMQP messages
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
* chore: define type alias for EventFactory and use it everywhere
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
---------
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
* chore: provide simplified interface to read/write CE for both binary and structured even formats (#255)
* chore: provide simplified interface to read/write CE for both binary and
structured even formats
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
* fix typing
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
---------
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
* chore: v2 upgrade tooling (#257)
* refactor(config): update dependencies and dev tools versions
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
* refactor(workflows): update GitHub Actions and OS versions in workflows
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
* docs(releasing): simplify and update releasing guidelines
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
* docs(github): enhance pull request template with detailed guidelines and checklist
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>
* feat(pypi): add support for `v2` branch in release workflow and streamline build/publish process using `uv` (#259)
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
* fix(workflow): update PyPI release commands for clarity and efficiency
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
* chore: simplified interface to read/write CE using AMQP bindings. (#262)
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
* feat(v2): add support for spec version 0.3 (#261)
* feat: add support for spec version 0.3
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
* chore: make ruff fail on unused imports
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
* chore: Move spec version constants to spec module
Moves SPECVERSION_V1_0 and SPECVERSION_V0_3 from the core __init__.py to
a new cloudevents.core.spec module.
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
---------
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
* chore: add migration.md file (#263)
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
* chore: add default values for `id`, `time` and `specversion` (#264)
* chore: add default values for `id`, `time` and `specversion`
Signed-off-by: PlugaruT <plugaru.tudor@protonmail.com>
* Update MIGRATION.md
Signed-off-by: PlugaruT <plugaru.tudor@protonmail.com>
* chore: update docstrings
Signed-off-by: PlugaruT <plugaru.tudor@protonmail.com>
---------
Signed-off-by: PlugaruT <plugaru.tudor@protonmail.com>
* fix(http): use spec-compliant percent-encoding for HTTP header values (#268)
Per CloudEvents HTTP binding spec (section 3.1.3.2), only these should
be percent-encoded: space (U+0020), double-quote (U+0022), percent
(U+0025), and characters outside printable ASCII (U+0021-U+007E).
Signed-off-by: PlugaruT <plugaru.tudor@protonmail.com>
* fix(kafka): fix header encoding and partitionkey handling in binary mode (#269)
* fix(kafka): headers don't need encoding as per kafka binding spec
Signed-off-by: PlugaruT <plugaru.tudor@protonmail.com>
* fix(kafka): partitionkey shall still be passed in kafka headers in
binary mode.
Signed-off-by: PlugaruT <plugaru.tudor@protonmail.com>
---------
Signed-off-by: PlugaruT <plugaru.tudor@protonmail.com>
* fix: correct isinstance check to include bytearray in kafka conversion (#267)
The isinstance check in to_structured had a duplicate `bytes` entry
instead of `bytearray`, meaning bytearray data would not be correctly
base64-encoded in the structured kafka message.
Signed-off-by: Artem Muterko <artem@sopho.tech>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* chore(cloudevents): bump version to 2.0.0-alpha2
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
* chore(CHANGELOG): add missing PR link
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
* Update samples (#272)
* refactor(samples): update to `cloudevents` 2.0.0a1 and modernize usage
- Migrated to `cloudevents` 2.0.0a1 including updated imports and APIs.
- Replaced deprecated `from_http`, `to_binary`, and `to_structured` with the new `from_http_event`, `to_binary_event`, and `to_structured_event`.
- Added required `id` and `specversion` attributes to Cloudevents examples.
- Updated README and client script for consistency and improved usability.
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
* refactor(samples): migrate to `cloudevents` 2.0.0a1 and enhance examples
- Updated server, client, and test code to use the updated `cloudevents` 2.0.0a1 API with `from_http_event`, `to_binary_event`, and `to_structured_event`.
- Included required `id` and `specversion` attributes in Cloudevent examples.
- Synchronized README and scripts for better clarity and usability.
- Pinned `cloudevents==2.0.0a1` in `requirements.txt`.
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
* chore(samples): bump `cloudevents` to 2.0.0a2 in requirements
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
* chore(cloudevents): bump version to 2.0.0-alpha3
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
* chore(samples): update `cloudevents` to 2.0.0a3 in requirements
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
---------
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
* chore(CHANGELOG): update for CloudEvents v2 readiness (PR #273)
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
chore(cloudevents): bump version to 2.0.0-alpha4
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
chore(tox): remove tox configuration file
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
* Ensure spec compatibility - fix 2 edge cases (#275)
* fix(event): validate attributes for null or empty values
Ensure required attributes ('id', 'source', and 'type') are neither null nor empty across v03 and v1 event versions. Includes stricter validation and new test cases.
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
* fix(event): remove max length restriction for extension attributes
Remove the 20-character maximum length restriction for extension attribute names in both v03 and v1 event versions. Update validation error messages and add tests to ensure compatibility with longer attribute names.
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
* chore(cloudevents): bump version to 2.0.0-alpha5
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
* chore(CHANGELOG): update for 2.0.0-alpha5 with PR #275
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
---------
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
* Fix v1 compatibility layer and update docs (#276)
* fix: standardize import paths from `cloudevents_v1` to `cloudevents.v1` to fix compatibility layer
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
* chore(dependencies): add `deprecation` package with version constraint `>=2.0,<3.0` for v1 compat layer
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
* chore(tests): relocate v1 test files to `test_v1_compat` directory for improved organization
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
* chore(dependencies): update `uv.lock` to add new dependencies and version constraints for libraries including `anyio`, `sanic`, `pydantic`, and others
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
* chore(dependencies): reorganize `deprecation` imports across deprecated `v1` modules for consistency
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
* chore(tests): standardize import formatting across `test_v1_compat` files for consistency
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
* docs(migration): add guidance for using `cloudevents.v1` compatibility layer
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
* docs(migration): update `MIGRATION.md` with clarified import mappings, format protocol, and v2 API changes
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
* chore(tests): add missing `pytest` import in `test_base_events`
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
* chore(tests): add `pytest_ignore_collect` to skip `pydantic` tests on Python 3.14+
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
---------
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
* Update tooling (#278)
* chore(pre-commit): bump ruff-pre-commit to v0.15.7
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
* chore(pyproject): include MIGRATION.md in build targets
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
* chore(dependencies): bump dev dependencies (ruff, isort, pytest-cov, types-python-dateutil)
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
* chore(workflows): bump GitHub Actions dependencies
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
* chore(dependencies): bump cloudevents to 2.0.0-alpha6
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
* chore(CHANGELOG): add entries for v2.0.0-alpha6 changes and fixes
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
---------
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
* Prepare v2 (#279)
* chore(pre-commit): update mypy exclude to ignore test_v1_compat
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
* chore(cloudevents): release stable v2.0.0
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
* chore(workflow): remove deprecated branch 'v2' from PyPI release triggers
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
---------
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
---------
Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com>
Signed-off-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
Signed-off-by: Tudor <plugaru.tudor@protonmail.com>
Signed-off-by: PlugaruT <plugaru.tudor@protonmail.com>
Signed-off-by: Artem Muterko <artem@sopho.tech>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Tudor Plugaru <plugaru.tudor@protonmail.com>
Co-authored-by: Archy <6429715+archy-rock3t-cloud@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>1 parent 088b46c commit 435fa56
File tree
124 files changed
+10369
-740
lines changed- .github
- workflows
- requirements
- samples
- http-image-cloudevents
- http-json-cloudevents
- src/cloudevents
- core
- bindings
- formats
- v03
- v1
- v1
- abstract
- http
- kafka
- pydantic
- v1
- v2
- sdk
- converters
- event
- tests
- test_cloudevents
- test_core
- test_bindings
- test_format
- test_v03
- test_v1
- test_v1_compat
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
124 files changed
+10369
-740
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
| 2 | + | |
2 | 3 | | |
3 | | - | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
4 | 7 | | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
5 | 11 | | |
6 | | - | |
| 12 | + | |
7 | 13 | | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
8 | 23 | | |
9 | | - | |
10 | | - | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
6 | | - | |
7 | 6 | | |
8 | 7 | | |
9 | 8 | | |
10 | | - | |
11 | | - | |
12 | | - | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
13 | 12 | | |
14 | | - | |
15 | | - | |
16 | | - | |
17 | | - | |
18 | | - | |
19 | | - | |
20 | | - | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
25 | | - | |
| 25 | + | |
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
29 | | - | |
30 | | - | |
31 | | - | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
32 | 32 | | |
33 | | - | |
34 | | - | |
35 | | - | |
36 | | - | |
37 | | - | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
38 | 39 | | |
39 | | - | |
| 40 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
13 | | - | |
| 13 | + | |
14 | 14 | | |
15 | | - | |
| 15 | + | |
16 | 16 | | |
17 | 17 | | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
18 | 24 | | |
19 | 25 | | |
20 | | - | |
| 26 | + | |
21 | 27 | | |
22 | | - | |
| 28 | + | |
23 | 29 | | |
24 | 30 | | |
25 | 31 | | |
26 | 32 | | |
27 | 33 | | |
28 | | - | |
| 34 | + | |
29 | 35 | | |
30 | | - | |
| 36 | + | |
31 | 37 | | |
32 | 38 | | |
33 | 39 | | |
34 | | - | |
| 40 | + | |
35 | 41 | | |
36 | 42 | | |
37 | | - | |
38 | | - | |
| 43 | + | |
39 | 44 | | |
40 | | - | |
41 | | - | |
42 | | - | |
43 | | - | |
44 | | - | |
45 | | - | |
46 | | - | |
47 | | - | |
48 | 45 | | |
49 | 46 | | |
50 | 47 | | |
51 | 48 | | |
52 | 49 | | |
53 | 50 | | |
54 | 51 | | |
55 | | - | |
56 | | - | |
57 | | - | |
58 | | - | |
59 | | - | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | | - | |
9 | | - | |
| 8 | + | |
| 9 | + | |
10 | 10 | | |
11 | | - | |
12 | | - | |
13 | | - | |
14 | | - | |
15 | | - | |
16 | | - | |
17 | | - | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
18 | 15 | | |
19 | | - | |
| 16 | + | |
20 | 17 | | |
21 | 18 | | |
22 | | - | |
23 | | - | |
24 | | - | |
25 | | - | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
26 | 23 | | |
27 | | - | |
| 24 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
9 | 38 | | |
10 | 39 | | |
11 | 40 | | |
12 | 41 | | |
13 | 42 | | |
14 | | - | |
| 43 | + | |
15 | 44 | | |
16 | 45 | | |
17 | 46 | | |
| |||
309 | 338 | | |
310 | 339 | | |
311 | 340 | | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
0 commit comments