Releases: frequenz-floss/frequenz-sdk-python
v1.0.0-rc2203
Frequenz Python SDK Release Notes
Bug fixes
FormulaEngineandFormulaEngine3Phaseare now type aliases toFormulaandFormula3Phase, fixing a typing issue introduced inv1.0.0-rc2202.
What's Changed
Full Changelog: v1.0.0-rc2202...v1.0.0-rc2203
v1.0.0-rc2202
Frequenz Python SDK Release Notes
Upgrading
-
The
FormulaEngineis now replaced by a newly implementedFormulatype. This doesn't affect the high level interfaces.FormulaEngineis now a deprecated wrapper toFormula. -
The
ComponentGraphhas been replaced by thefrequenz-microgrid-component-graphpackage, which provides python bindings for the rust implementation.
New Features
- The power manager algorithm for batteries can now be changed from the default ShiftingMatryoshka, by passing it as an argument to
microgrid.initialize()
What's Changed
- Clear release notes by @llucax in #1320
- Make battery power manager algorithm configurable by @shsms in #1323
- Switch to the rust component graph by @shsms in #1295
- Implement lazy subscription for Coalesce function by @shsms in #1322
- Revert unreleased interface changes by @shsms in #1330
Full Changelog: v1.0.0-rc2201...v1.0.0-rc2202
v1.0.0-rc2201
Frequenz Python SDK Release Notes
Note
This version is just a re-publishing of version v1.0.0-rc2200, because we had some issue with publishing that versin to PyPI.
Summary
This is a major upgrade, as the underlying version of the microgrid API was changed to use v0.18.x instead.
Upgrading
-
The SDK now depends on the
frequenz-client-microgridv0.18.x series.- Check the release notes for the client v0.18.
- There were a lot of changes, so it might be also worth having a quick look at the microgrid API v0.17 and v0.18 releases.
- Checking out the API common releases v0.6, v0.7, v0.8 might also be worthwhile, at least if you find any errors about renamed or missing types.
- Although many of the changes in lower layer are hidden by the SDK, there are some changes that can't be hidden away. For example the
Metricenum had some renames, andComponent.component_idwas renamed toComponent.id. Also, there is a new component class hierarchy.
-
ComponentGraphmethods arguments were renamed to better reflect what they expect.- The
components()method now usesmatching_idsandmatching_typesinstead ofcomponent_idsandcomponent_categoriesrespectively.matching_typestakes types inheriting fromComponentinstead of categories, for exampleBatteryorBatteryInverter. - The
connections()methods now takematching_sourcesandmatching_destinationsinstead ofstartandendrespectively. This is to match the new names inComponentConnection. - All arguments for both methods can now receiver arbitrary iterables instead of
sets, and can also accept a single value.
- The
New Features
Bug Fixes
What's Changed
- Clear release notes by @shsms in #1301
- Update to use the microgrid API v0.18 by @llucax in #1283
- Bump pytest-asyncio from 1.2.0 to 1.3.0 by @dependabot[bot] in #1310
- Bump pydoclint from 0.7.6 to 0.8.3 by @dependabot[bot] in #1309
- Bump the patch group with 3 updates by @dependabot[bot] in #1304
- Bump pytest from 8.4.2 to 9.0.1 by @dependabot[bot] in #1307
- Merge 'v1.0.0-rc21xx' to v1.x.x by @shsms in #1314
- Minor improvements and cleanups by @llucax in #1293
- Bump mkdocstrings[python] from 0.30.1 to 1.0.0 by @dependabot[bot] in #1311
- Bump frequenz-floss/gh-action-nox from 1.0.1 to 1.1.0 in the compatible group by @dependabot[bot] in #1302
- Bump actions/checkout from 5 to 6 by @dependabot[bot] in #1303
- Bump the minor group across 1 directory with 9 updates by @dependabot[bot] in #1316
- Bump types-protobuf from 6.32.1.20250918 to 6.32.1.20251105 by @dependabot[bot] in #1318
- Bump the patch group with 2 updates by @dependabot[bot] in #1319
- Bump pylint from 3.3.8 to 4.0.4 by @dependabot[bot] in #1312
- Bump isort from 6.1.0 to 7.0.0 by @dependabot[bot] in #1290
- Bump mkdocs-gen-files from 0.5.0 to 0.6.0 by @dependabot[bot] in #1306
Full Changelog: v1.0.0-rc2104...v1.0.0-rc2201
v1.0.0-rc2200
Frequenz Python SDK Release Notes
Important
This release as not PyPI release because there was a failed attempt to release the version 1.0.0-rc2200 in the past that we ended up deleting.
Fortunately PyPI is getting more strict about this, and doesn't allow re-publishing a deleted release using different artifacts, so we can't re-use the failed rc2200 for this release.
The release v1.0.0-rc2201 ships the exact same code as this release (it points to the same commit), and should be used instead.
Summary
This is a major upgrade, as the underlying version of the microgrid API was changed to use v0.18.x instead.
Upgrading
-
The SDK now depends on the
frequenz-client-microgridv0.18.x series.- Check the release notes for the client v0.18.
- There were a lot of changes, so it might be also worth having a quick look at the microgrid API v0.17 and v0.18 releases.
- Checking out the API common releases v0.6, v0.7, v0.8 might also be worthwhile, at least if you find any errors about renamed or missing types.
- Although many of the changes in lower layer are hidden by the SDK, there are some changes that can't be hidden away. For example the
Metricenum had some renames, andComponent.component_idwas renamed toComponent.id. Also, there is a new component class hierarchy.
-
ComponentGraphmethods arguments were renamed to better reflect what they expect.- The
components()method now usesmatching_idsandmatching_typesinstead ofcomponent_idsandcomponent_categoriesrespectively.matching_typestakes types inheriting fromComponentinstead of categories, for exampleBatteryorBatteryInverter. - The
connections()methods now takematching_sourcesandmatching_destinationsinstead ofstartandendrespectively. This is to match the new names inComponentConnection. - All arguments for both methods can now receiver arbitrary iterables instead of
sets, and can also accept a single value.
- The
What's Changed
- Clear release notes by @shsms in #1301
- Update to use the microgrid API v0.18 by @llucax in #1283
- Bump pytest-asyncio from 1.2.0 to 1.3.0 by @dependabot[bot] in #1310
- Bump pydoclint from 0.7.6 to 0.8.3 by @dependabot[bot] in #1309
- Bump the patch group with 3 updates by @dependabot[bot] in #1304
- Bump pytest from 8.4.2 to 9.0.1 by @dependabot[bot] in #1307
- Merge 'v1.0.0-rc21xx' to v1.x.x by @shsms in #1314
- Minor improvements and cleanups by @llucax in #1293
- Bump mkdocstrings[python] from 0.30.1 to 1.0.0 by @dependabot[bot] in #1311
- Bump frequenz-floss/gh-action-nox from 1.0.1 to 1.1.0 in the compatible group by @dependabot[bot] in #1302
- Bump actions/checkout from 5 to 6 by @dependabot[bot] in #1303
- Bump the minor group across 1 directory with 9 updates by @dependabot[bot] in #1316
- Bump types-protobuf from 6.32.1.20250918 to 6.32.1.20251105 by @dependabot[bot] in #1318
- Bump the patch group with 2 updates by @dependabot[bot] in #1319
- Bump pylint from 3.3.8 to 4.0.4 by @dependabot[bot] in #1312
- Bump isort from 6.1.0 to 7.0.0 by @dependabot[bot] in #1290
- Bump mkdocs-gen-files from 0.5.0 to 0.6.0 by @dependabot[bot] in #1306
Full Changelog: v1.0.0-rc2104...v1.0.0-rc2200
v1.0.0-rc2104
Frequenz Python SDK Release Notes
Summary
This release improves the documentation for the implementation details of the power manager algorithms.
What's Changed
Full Changelog: v1.0.0-rc2103...v1.0.0-rc2104
v1.0.0-rc2103
Frequenz Python SDK Release Notes
Bug Fixes
- Doesn't repeat zero commands to battery inverters anymore, to not interfere with lower level logic that might want to do things only when there are no actors trying to use the batteries.
What's Changed
- Clear release notes by @shsms in #1298
- Don't repeat zero commands to inverters by @shsms in #1299
- Prepare for release by @shsms in #1300
Full Changelog: v1.0.0-rc2102...v1.0.0-rc2103
v1.0.0-rc2102
Frequenz Python SDK Release Notes
Bug Fixes
-
The log level for when components are transitioning to a
WORKINGstate is lowered toINFO, and the log message has been improved. -
This fixes a bug in the power manager, that was causing proposals to be ignored when they were proposing bounds that were fully outside the available bounds, under some cases.
What's Changed
- Bump pydoclint from 0.7.1 to 0.7.3 by @dependabot[bot] in #1276
- Bump hypothesis from 6.138.13 to 6.138.14 in the patch group by @dependabot[bot] in #1275
- Bump actions/labeler from 5.0.0 to 6.0.1 by @dependabot[bot] in #1278
- Bump the patch group with 3 updates by @dependabot[bot] in #1279
- Bump the minor group with 9 updates by @dependabot[bot] in #1280
- Bump pytest-asyncio from 1.1.0 to 1.2.0 by @dependabot[bot] in #1281
- Write INFO logs for components transitioning to WORKING state by @shsms in #1277
- Bump pydoclint from 0.7.3 to 0.7.6 by @dependabot[bot] in #1291
- Bump actions/download-artifact from 5 to 6 by @dependabot[bot] in #1286
- Bump actions/upload-artifact from 4 to 5 by @dependabot[bot] in #1287
- Bump the patch group with 5 updates by @dependabot[bot] in #1288
- Bump the minor group with 2 updates by @dependabot[bot] in #1289
- Improve handling of out-of-bounds requests by @shsms in #1296
- Prepare for release v1.0.0-rc2102 by @shsms in #1297
Full Changelog: v1.0.0-rc2101...v1.0.0-rc2102
v1.0.0-rc2101
Frequenz Python SDK Release Notes
Summary
This release provides an experimental, opt-in, time-jumps resilient resampler, that can be enabled by using the new ResamplerConfig2 class.
Upgrading
- The resampling function now takes plain
floats as values instead ofQuantityobjects. frequenz.sdk.timeseries.UNIX_EPOCHwas removed, usefrequenz.core.datetime.UNIX_EPOCHinstead.
New Features
-
A new configuration mode was added to the resampler (and thus the resampling actor and microgrid high-level interface). When passing a new
ResamplerConfig2instance to the resampler, it will use a wall clock timer instead of a monotonic clock timer. This timer adjustes sleeps to account for drifts in the monotonic clock, and thus allows for more accurate resampling in cases where the monotonic clock drifts away from the wall clock. The monotonic clock timer option will be deprecated in the future, as it is not really suitable for resampling. The newResamplerConfig2class accepts aWallClockTimerConfigto fine-tune the wall clock timer behavior, if necessary.Example usage:
from frequenz.sdk import microgrid from frequenz.sdk.timeseries import ResamplerConfig2 await microgrid.initialize( MICROGRID_API_URL, # Just replace the old `ResamplerConfig` with the new `ResamplerConfig2` resampler_config=ResamplerConfig2(resampling_period=timedelta(seconds=1.0)), )
Bug Fixes
-
When using the new wall clock timer in the resampmler, it will now resync to the system time if it drifts away for more than a resample period, and do dynamic adjustments to the timer if the monotonic clock has a small drift compared to the wall clock.
-
A power distributor logging issue is fixed, that was causing the power for multiple batteries connected to the same inverter to be reported incorrectly.
What's Changed
- Bump the minor group across 1 directory with 6 updates by @dependabot[bot] in #1240
- Improve resampler structure and performance by @llucax in #1242
- Bump pytest-asyncio from 0.26.0 to 1.0.0 by @dependabot[bot] in #1244
- Bump the patch group with 6 updates by @dependabot[bot] in #1243
- Remove obsolete
hpacklogging adjustment from examples by @Copilot in #1247 - Bump async-solipsism from 0.7 to 0.8 by @dependabot[bot] in #1257
- Bump pytest-asyncio from 1.0.0 to 1.1.0 by @dependabot[bot] in #1256
- Bump types-setuptools from 80.9.0.20250529 to 80.9.0.20250801 by @dependabot[bot] in #1255
- Bump types-markdown from 3.8.0.20250415 to 3.8.0.20250708 by @dependabot[bot] in #1253
- Bump mkdocs-material from 9.6.15 to 9.6.16 in the patch group by @dependabot[bot] in #1250
- Bump the compatible group with 2 updates by @dependabot[bot] in #1258
- Bump types-protobuf from 6.30.2.20250516 to 6.30.2.20250703 by @dependabot[bot] in #1254
- Bump the minor group with 2 updates by @dependabot[bot] in #1251
- Remove unncessary use of
tzdatain tests by @denini08 in #1261 - Add a wall clock attached timer by @llucax in #1249
- Bump mkdocstrings[python] from 0.29.1 to 0.30.0 in the mkdocstrings group by @dependabot[bot] in #1252
- Fix log when multiple batteries are attached to an inverter by @shsms in #1262
- Bump types-protobuf from 6.30.2.20250703 to 6.30.2.20250822 by @dependabot[bot] in #1272
- Bump mkdocstrings-python from 1.16.12 to 1.18.2 in the mkdocstrings group by @dependabot[bot] in #1267
- Bump the patch group with 3 updates by @dependabot[bot] in #1265
- Bump hypothesis from 6.136.8 to 6.138.13 in the minor group by @dependabot[bot] in #1266
- Bump actions/checkout from 4 to 5 by @dependabot[bot] in #1264
- Bump pydoclint from 0.6.6 to 0.7.1 by @dependabot[bot] in #1268
- Bump setuptools-scm[toml] from 8.3.1 to 9.2.0 by @dependabot[bot] in #1271
- Bump actions/download-artifact from 4 to 5 in the artifacts group by @dependabot[bot] in #1263
- Bump types-markdown from 3.8.0.20250708 to 3.8.0.20250809 by @dependabot[bot] in #1270
- Bump types-setuptools from 80.9.0.20250801 to 80.9.0.20250822 by @dependabot[bot] in #1269
- Prepare release notes for the release by @llucax in #1273
New Contributors
Full Changelog: v1.0.0-rc2100...v1.0.0-rc2101
v1.0.0-rc2100
Frequenz Python SDK Release Notes
Summary
Upgrading
- The microgrid client dependency has been updated to version 0.9.0
New Features
Bug Fixes
What's Changed
- Update release notes by @ela-kotulska-frequenz in #1233
- Update microgrid client by @Marenz in #1230
- Attempt to fix ci-gets-stuck in shutdown loop by @Marenz in #1237
- Fix test typing by @florian-wagner-frequenz in #1235
- CI cleanup fixes by @Marenz in #1239
New Contributors
- @florian-wagner-frequenz made their first contribution in #1235
Full Changelog: v1.0.0-rc2001...v1.0.0-rc2100
v1.0.0-rc2002
Frequenz Python SDK Release Notes
Summary
Upgrading
- The microgrid client dependency has been updated to version 0.9.0
New Features
Bug Fixes
What's Changed
- Update release notes by @ela-kotulska-frequenz in #1233
- Update microgrid client by @Marenz in #1230
- Attempt to fix ci-gets-stuck in shutdown loop by @Marenz in #1237
- Fix test typing by @florian-wagner-frequenz in #1235
- CI cleanup fixes by @Marenz in #1239
New Contributors
- @florian-wagner-frequenz made their first contribution in #1235
Full Changelog: v1.0.0-rc2001...v1.0.0-rc2002