Releases: frequenz-floss/frequenz-sdk-python
v1.0.0-rc1400
Frequenz Python SDK Release Notes
Summary
This is a minor release with just a few bug fixes but also one breaking change in the ConfigManagingActor
.
Upgrading
- The
ConfigManagingActor
now only reacts toCREATE
andMODIFY
events.DELETE
is not supported anymore and are ignored. - Remove the
event_types
argument from theConfigManagingActor
constructor.
Bug Fixes
- Fix bugs with
ConfigManagingActor
:- Raising unhandled exceptions when any file in config directory was deleted.
- Raising unhandled exception if not all config files exist.
- Eliminate recursive actor crashes when all config files were missing.
What's Changed
- Fix
ConfigManagingActor
raising unhandled exceptions when file doesn't exist by @ela-kotulska-frequenz in #1116 - Prepare release notes for v1.0.0-rc1400 by @llucax in #1121
Full Changelog: v1.0.0-rc1302...v1.0.0-rc1400
v1.0.0-rc1302
Frequenz Python SDK Release Notes
Improvements
- Many tasks, senders and receivers now have proper names for easier debugging.
- The resample log was improved to show more details.
- The
Sample
class now has a nice__str__
representation.
Bug Fixes
- Fix a bug in the resampler that could end up with an IndexError: list index out of range exception when a new resampler was added while awaiting the existing resampler to finish resampling.
What's Changed
- Fix IndexError: list index out of range in resampler by @llucax in #1117
- Small debugging enhancements by @Marenz in #1119
Full Changelog: v1.0.0-rc1301...v1.0.0-rc1302
v1.0.0-rc1301
Frequenz Python SDK Release Notes
Bug Fixes
- Fix bug with
LoggingConfigUpdater
not updating root logger level. - The
frequenz-quantities
dependency requirement was widened to allow any v1.x version (it was pinned to1.0.0rc3
before).
What's Changed
- Widen the quantities version requirement by @llucax in #1110
- Update to repo-config v0.11.0 by @llucax in #1111
- Bump types-setuptools from 74.0.0.20240831 to 75.5.0.20241122 by @dependabot in #1114
- Fix ConfigLoggingUpdater not changing root logging level by @ela-kotulska-frequenz in #1112
- Bump the required group with 3 updates by @dependabot in #1113
- Update release notes for release 1.0.0-rc1301 by @llucax in #1115
Full Changelog: v1.0.0-rc1300...v1.0.0-rc1301
v1.0.0-rc1300
Frequenz Python SDK Release Notes
Summary
Upgrading
New Features
- The
MicrogridApiClient
was updated to the latest version.
Bug Fixes
What's Changed
- Reset release notes by @ela-kotulska-frequenz in #1108
- Update microgrid client to latest version by @Marenz in #1109
Full Changelog: v1.0.0-rc1200...v1.0.0-rc1300
v1.0.0-rc1200
Frequenz Python SDK Release Notes
Upgrading
New Features
frequenz.sdk.config.load_config()
can now use a base schema to customize even further how data is loaded.
What's Changed
- Clear release notes by @llucax in #1100
- Check that load_config raises ValidationError if config is None by @ela-kotulska-frequenz in #1102
- Allow passing a
base_schema
toload_config()
by @llucax in #1103 - Restore support for marshmallow_dataclass by @ela-kotulska-frequenz in #1106
- Prepare release notes for next release by @ela-kotulska-frequenz in #1107
Full Changelog: v1.0.0-rc1100...v1.0.0-rc1200
v1.0.0-rc1100
Frequenz Python SDK Release Notes
Summary
This release focus on improving the config management, but also introduces other minor improvements and fixes an important bug.
Upgrading
-
The
ConfigManagingActor
now takes multiple configuration files as input, and the argument was renamed fromconfig_file
toconfig_files
. If you are using this actor, please update your code. For example:# Old actor = ConfigManagingActor(config_file="config.toml") # New actor = ConfigManagingActor(config_files=["config.toml"])
-
The
MovingWindow
now take all arguments as keyword-only to avoid mistakes. -
The
frequenz-quantities
dependency was bumped to1.0.0rc3
. -
The
ComponentMetricsRequest
now produces a channel name without thestart_date
if thestart_date
isNone
. If you are somehow relying on the old behavior, please update your code.
New Features
- The
ConfigManagingActor
can now take multiple configuration files as input, allowing to override default configurations with custom configurations. - A new
frequenz.sdk.config.load_config()
function is available to load configurations usingmarshmallow_dataclass
es with correct type hints. - Implement and standardize logging configuration with the following changes:
- Add
LoggerConfig
andLoggingConfig
to standardize logging configuration. - Create
LoggingConfigUpdater
to handle runtime config updates. - Support individual log level settings for each module.
- Add
Bug Fixes
- Fixes an issue where PV and EV system bounds were not available to the Power Manager sometimes when requested after startup.
What's Changed
- Clear release notes by @shsms in #1090
- config: Allow reading from multiple files by @llucax in #1091
- Store the original
Component
andConnection
in the component graph by @llucax in #1093 - Bump the required group across 1 directory with 12 updates by @dependabot in #1094
- Implement and standardize logging configuration via config file by @ela-kotulska-frequenz in #1095
- Bump dependency to 1.0.0rc3 by @ela-kotulska-frequenz in #1096
- Add a function to load configurations with correct type hints by @llucax in #1097
- Improve
ComponentMetricsRequest
documentation by @llucax in #1092 - Update bound-streaming channels to resend latest to new receivers by @shsms in #1098
- Prepare release notes for rc1100 by @llucax in #1099
Full Changelog: v1.0.0-rc1000...v1.0.0-rc1100
v1.0.0-rc1000
Frequenz Python SDK Release Notes
Summary
The SDK starts using the frequenz-quantities
package with this release.
A new method for streaming reactive power at the grid connection point has been added, and the ConfigManagingActor
has been improved.
Upgrading
- Replace
Quantity
and its sub-classes (Power
,Current
, etc.) in thefrequenz.sdk.timeseries
module with the externalfrequenz-quantities
package. Please add the new library as a dependency and adapt your imports if you are using these types. - The
QuantityT
has been moved to thefrequenz.sdk.timeseries._base_types
module. - The
QuantityT
doesn't include itself (QuantityT
) anymore.
New Features
-
ConfigManagingActor
: The file polling mechanism is now forced by default. Two new parameters have been added:force_polling
: Whether to force file polling to check for changes. Default isTrue
.polling_interval
: The interval to check for changes. Only relevant if polling is enabled. Default is 1 second.
-
Add a new method
microgrid.grid().reactive_power
to stream reactive power at the grid connection point.
Bug Fixes
- Many long running async tasks including metric streamers in the BatteryPool now have automatic recovery in case of exceptions.
What's Changed
- Prepare release notes for rc901 by @llucax in #1076
- Clear release notes by @llucax in #1077
- Add polling parameters to ConfigManagingActor by @daniel-zullo-frequenz in #1082
- Remove redundant check in BatteryPool tests by @ela-kotulska-frequenz in #1085
- Improve resiliency of long-running async tasks by @shsms in #1081
- Clean some duplicated and unused code by @llucax in #1088
- Use frequenz-quantities library by @ela-kotulska-frequenz in #1087
- Implement GridReactivePowerFormula by @ela-kotulska-frequenz in #1086
- Prepare for v1.0.0-rc1000 by @shsms in #1089
Full Changelog: v1.0.0-rc901...v1.0.0-rc1000
v1.0.0-rc901
Frequenz Python SDK Release Notes
Bug Fixes
ConfigManagingActor
: Fixed an issue where the actor was unable to process events after being restarted.
What's Changed
- Clear release notes by @llucax in #1069
- Create FileWatcher when ConfigManagingActor runs by @daniel-zullo-frequenz in #1074
Full Changelog: v1.0.0-rc900...v1.0.0-rc901
v1.0.0-rc900
Frequenz Python SDK Release Notes
Summary
This release mainly introduces a new feature that allows fallback components to be used in generated formulas, but it also fixes a few bugs and gets rid of betterproto
/grpclib
and goes back to Google's implementation.
Upgrading
- The
frequenz-client-microgrid
dependency was bumped to0.5.0
. This can cause dependency issues if you are using other API clients and thefrequenz-client-base
dependencies don't match.
New Features
- Fallback components are used in generated formulas. If primary components is unavailable, formula will generate metric from fallback components. Fallback formulas are implemented for:
- PVPowerFormula
- ProducerPowerFormula
- BatteryPowerFormula
- ConsumerPowerFormula
- GridPowerFormula
Bug Fixes
-
Allow setting
api_power_request_timeout
inmicrogrid.initialize()
. -
Fix an issue where in grid meters could be identified as {pv/ev/battery/chp} meters in some component graph configurations.
What's Changed
- Force
grpclib
to be at least 0.4.8rc2 by @llucax in #1012 - Clear release notes by @shsms in #1047
- Merge v1.0.0-rc7xx into v1.x.x by @shsms in #1049
- Allow setting
api_power_request_timeout
inmicrogrid.initialize()
by @shsms in #1050 - Distinguish between grid meters and other meters by @shsms in #1052
- Fallback components in generated formulas by @ela-kotulska-frequenz in #1037
- Bump frequenz-repo-config to 0.10.0 by @llucax in #1059
- Make dependabot do minor updates for the microgrid client separately by @llucax in #1060
- Revert "Change receiver limit in mock_resampler" by @ela-kotulska-frequenz in #1061
- Bump the
frequenz-client-microgrid
dependency to0.5.0
by @llucax in #1057 - Remove the redundant
--platform=${TARGETPLATFORM}
inDockerfile
by @llucax in #1062 - Bump the required group across 1 directory with 14 updates by @dependabot in #1064
- Bump the required group with 3 updates by @dependabot in #1065
- Unpin mkdocs-autorefs and fix multple URLs for warnings by @llucax in #1051
- Bump
frequenz-client-microgrid
to 0.5.1 by @llucax in #1068 - Bump types-setuptools from 71.1.0.20240726 to 74.0.0.20240831 by @dependabot in #1066
Full Changelog: v1.0.0-rc800...v1.0.0-rc900
v1.0.0-rc801
Frequenz Python SDK Release Notes
Bug Fixes
- Bump the
grpclib
dependency to pull a fix for using IPv6 addresses.
What's Changed
- Force
grpclib
to be at least 0.4.8rc2 by @llucax in #1012 - Merge v1.0.0-rc7xx into v1.0.0-rc8xx by @shsms in #1048
Full Changelog: v1.0.0-rc800...v1.0.0-rc801