Frequenz Core Library Release Notes
Upgrading
-
Interval's type parameter no longer includesNone. The exported type variableLessThanComparableOrNoneT(bound toLessThanComparable | None) was deprecated and replaced withLessThanComparableT(bound toLessThanComparable).Noneis still accepted as a value forstart/endto indicate an unbounded side, but it is treated purely as bound metadata rather than a value in the interval's comparable space.Migration:
Interval[int | None]→Interval[int]Interval[LessThanComparable | None]→Interval[LessThanComparable]LessThanComparableOrNoneT(importable name) →LessThanComparableT
Note that explicitly using
Interval[int | None]still works, as(int | None) | Noneis equivalent toint | None, even when it is no longer needed nor recommended. Old code will mostly work, but there is one soft breaking change:None in some_intervalandNone in some_interval_setis now a type-check error at call sites, matching the design intent thatNoneis a bound marker and never a member value.
New Features
-
Added
FloatInt, a type alias forfloat | int.PEP 484's numeric tower makes
intassignable whereverfloatis annotated, while at runtimeisinstance(1, float)isFalse. A plainfloatannotation therefore silently admits values that breakmatch … case float():arms andfloat-only methods likehex().Annotate with
FloatIntinstead of a plainfloat: the alias docstring documents the trap in detail, including the inherentbool ⊂ intleak. -
is_close_to_zero()now annotates itsvalueandabs_tolparameters asFloatInt. This is a pure widening,intarguments were always accepted by type checkers, the annotation just didn't admit it.
What's Changed
- Clear release notes by @llucax in #101
- Bump pytest-asyncio from 1.1.0 to 1.2.0 by @dependabot[bot] in #105
- Bump actions/labeler from 5.0.0 to 6.0.1 by @dependabot[bot] in #102
- Bump the patch group with 3 updates by @dependabot[bot] in #103
- Bump the minor group across 1 directory with 8 updates by @dependabot[bot] in #107
- Bump pydoclint from 0.6.11 to 0.7.3 by @dependabot[bot] in #106
- Bump actions/upload-artifact from 4 to 5 by @dependabot[bot] in #109
- Add auto-depenabot workflow by @llucax in #122
- Use pull_request_target trigger instead of pull_request by @llucax in #124
- Bump the auto-approve action to support pull_request_target by @llucax in #125
- Bump pydoclint from 0.7.3 to 0.8.3 by @dependabot[bot] in #117
- Bump the patch group across 1 directory with 2 updates by @dependabot[bot] in #120
- Bump frequenz-floss/gh-action-nox from 1.0.1 to 1.1.0 in the compatible group by @dependabot[bot] in #115
- Bump actions/download-artifact from 5 to 6 by @dependabot[bot] in #108
- Bump the minor group across 1 directory with 6 updates by @dependabot[bot] in #123
- Bump actions/checkout from 5 to 6 by @dependabot[bot] in #116
- Bump nox from 2025.5.1 to 2026.2.9 by @dependabot[bot] in #128
- Bump setuptools from 80.9.0 to 82.0.0 by @dependabot[bot] in #129
- Bump async-solipsism from 0.8 to 0.9 by @dependabot[bot] in #132
- Bump mkdocstrings[python] from 0.30.1 to 1.0.3 by @dependabot[bot] in #133
- Bump pytest-asyncio from 1.2.0 to 1.3.0 by @dependabot[bot] in #131
- Update dependabot-auto-approve to v1.4.0 by @llucax in #135
- Bump frequenz-repo-config[lib] from 0.13.5 to 0.14.0 by @dependabot[bot] in #126
- Bump pytest from 8.4.2 to 9.0.2 by @dependabot[bot] in #130
- Bump mkdocstrings-python from 1.18.2 to 2.0.2 by @dependabot[bot] in #127
- Bump pylint from 3.3.8 to 4.0.4 by @dependabot[bot] in #134
- Bump isort from 6.1.0 to 7.0.0 by @dependabot[bot] in #112
- Bump the compatible group with 2 updates by @dependabot[bot] in #136
- Bump actions/download-artifact from 7 to 8 by @dependabot[bot] in #138
- Bump actions/upload-artifact from 5 to 7 by @dependabot[bot] in #137
- Bump the patch group with 3 updates by @dependabot[bot] in #139
- Bump mkdocs-gen-files from 0.5.0 to 0.6.0 by @dependabot[bot] in #142
- Add repo-config auto-migration workflow by @llucax in #144
- Bump the compatible group with 2 updates by @dependabot[bot] in #145
- Bump actions/create-github-app-token from 2.2.1 to 3.0.0 by @dependabot[bot] in #146
- Bump setuptools-scm from 9.2.2 to 10.0.3 by @dependabot[bot] in #149
- Bump the patch group across 1 directory with 5 updates by @dependabot[bot] in #147
- Bump isort from 7.0.0 to 8.0.1 by @dependabot[bot] in #140
- Bump the patch group with 2 updates by @dependabot[bot] in #151
- Bump frequenz-repo-config from 0.14.0 to 0.17.0 in the repo-config group across 1 directory by @dependabot[bot] in #152
- Bump the compatible group with 2 updates by @dependabot[bot] in #154
- Bump actions/create-github-app-token from 2.2.1 to 3.0.0 by @dependabot[bot] in #155
- Bump frequenz-floss/gh-action-setup-python-with-deps from 0d0d77eac3b54799f31f25a1060ef2c6ebdf9299 to e4d0b2ef8f5a1612d7827f3abaef17c931d2b946 by @dependabot[bot] in #156
- Bump frequenz-floss/gh-action-setup-git from 16952aac3ccc01d27412fe0dea3ea946530dcace to f9d86a01228ee1cadaac5224d4d7626f1eb23f90 by @dependabot[bot] in #157
- Bump black from 25.9.0 to 26.3.1 by @dependabot[bot] in #150
- Bump frequenz-floss/gh-action-setup-python-with-deps from 1.0.2 to 1.0.4 in the compatible group by @dependabot[bot] in #158
- Bump mypy from 1.19.1 to 1.20.0 in the minor group by @dependabot[bot] in #159
- Bump the compatible group with 4 updates by @dependabot[bot] in #160
- Bump the patch group with 3 updates by @dependabot[bot] in #161
- Bump the minor group with 3 updates by @dependabot[bot] in #162
- Bump types-markdown from 3.10.2.20260211 to 3.10.2.20260408 by @dependabot[bot] in #163
- Bump the compatible group with 3 updates by @dependabot[bot] in #164
- Bump the minor group with 2 updates by @dependabot[bot] in #165
- Bump mypy from 1.20.2 to 2.1.0 by @dependabot[bot] in #166
- Bump pydoclint from 0.8.3 to 0.8.4 by @dependabot[bot] in #168
- Bump pytest-asyncio from 1.3.0 to 1.4.0 by @dependabot[bot] in #169
- Bump types-markdown from 3.10.2.20260408 to 3.10.2.20260518 by @dependabot[bot] in #167
- Bump frequenz-floss/gh-action-setup-python-with-deps from 1.0.4 to 1.0.5 in the compatible group by @dependabot[bot] in #171
- Bump actions/checkout from 6.0.2 to 7.0.0 by @dependabot[bot] in #172
- Bump pydoclint from 0.8.4 to 0.9.0 by @dependabot[bot] in #176
- Bump frequenz-repo-config from 0.17.0 to 0.18.0 in the repo-config group by @dependabot[bot] in #175
- Bump the minor group across 1 directory with 2 updates by @dependabot[bot] in #174
- Bump the compatible group with 2 updates by @dependabot[bot] in #177
- Bump the patch group across 1 directory with 3 updates by @dependabot[bot] in #173
- Fix and improve project docstrings by @llucax with @Copilot in #170
- Remove
NonefromIntervaltype parameter by @llucax in #178 - Bump the patch group with 3 updates by @dependabot[bot] in #182
- Bump the compatible group with 6 updates by @dependabot[bot] in #183
- Bump actions/labeler from 6.1.0 to 7.0.0 by @dependabot[bot] in #184
- Bump the minor group with 3 updates by @dependabot[bot] in #185
- Bump pydoclint from 0.9.0 to 0.9.1 by @dependabot[bot] in #187
- build(deps-dev): bump setuptools from 82.0.1 to 83.0.0 by @dependabot[bot] in #188
- build(deps-dev): bump types-markdown from 3.10.2.20260518 to 3.10.2.20260712 by @dependabot[bot] in #186
- Add a
FloatInt(float | int) type alias by @llucax in #189
Full Changelog: v1.3.0...v1.4.0