Skip to content

Commit d4bef53

Browse files
authored
Merge pull request #63 from LeakIX/feature/replace-serde-with-dataclasses
Replace serde with stdlib dataclasses (v2.0.0)
2 parents 0cf8ccd + 740ce1d commit d4bef53

7 files changed

Lines changed: 452 additions & 301 deletions

File tree

.github/workflows/action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ jobs:
66
strategy:
77
fail-fast: false
88
matrix:
9-
python-version: ["3.11", "3.12", "3.13"]
9+
python-version: ["3.11", "3.12", "3.13", "3.14"]
1010
os: ["ubuntu-latest", "macos-latest", "windows-latest"]
1111
runs-on: ${{ matrix.os }}
1212
steps:

CHANGELOG.md

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,24 @@ and this project adheres to
88

99
## [Unreleased]
1010

11+
## [2.0.0] - 2026-03-16
12+
13+
### Changed
14+
15+
- **BREAKING**: Replace `serde` dependency with Python stdlib `dataclasses`.
16+
The `serde` library is unmaintained. All models now use `@dataclass` with a
17+
custom `Model` base class that provides the same `from_dict()`/`to_dict()`
18+
API. `ValidationError` is now exported from `l9format` directly instead of
19+
`serde`.
20+
- Remove `Decimal` custom field class (was a `serde.fields.Instance` subclass).
21+
Decimal serialization/deserialization is now handled internally by the `Model`
22+
base class.
23+
24+
### Infrastructure
25+
26+
- CI: add Python 3.14 to test matrix
27+
- Remove serde-specific mypy overrides from `pyproject.toml`
28+
1129
## [1.4.1] - 2026-03-16
1230

1331
### Infrastructure
@@ -161,7 +179,8 @@ and this project adheres to
161179

162180
<!-- Version links -->
163181

164-
[Unreleased]: https://github.com/LeakIX/l9format-python/compare/1.4.1...HEAD
182+
[Unreleased]: https://github.com/LeakIX/l9format-python/compare/v2.0.0...HEAD
183+
[2.0.0]: https://github.com/LeakIX/l9format-python/compare/v1.4.1...v2.0.0
165184
[1.4.1]: https://github.com/LeakIX/l9format-python/compare/1.4.0...1.4.1
166185
[1.4.0]: https://github.com/LeakIX/l9format-python/compare/1.3.2...1.4.0
167186
[1.3.2]: https://github.com/LeakIX/l9format-python/compare/1.3.1-1...1.3.2

l9format/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
ServiceCredentials,
3434
Software,
3535
SoftwareModule,
36+
ValidationError,
3637
)
3738

3839
__all__ = [
@@ -66,4 +67,5 @@
6667
"ServiceCredentials",
6768
"Software",
6869
"SoftwareModule",
70+
"ValidationError",
6971
]

0 commit comments

Comments
 (0)