Skip to content

Releases: frequenz-floss/frequenz-sdk-python

v1.0.0-rc1301

22 Nov 11:22
v1.0.0-rc1301
dd7c65f
Compare
Choose a tag to compare
v1.0.0-rc1301 Pre-release
Pre-release

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 to 1.0.0rc3 before).

What's Changed

Full Changelog: v1.0.0-rc1300...v1.0.0-rc1301

v1.0.0-rc1300

19 Nov 14:08
v1.0.0-rc1300
53792f2
Compare
Choose a tag to compare

Frequenz Python SDK Release Notes

Summary

Upgrading

New Features

  • The MicrogridApiClient was updated to the latest version.

Bug Fixes

What's Changed

Full Changelog: v1.0.0-rc1200...v1.0.0-rc1300

v1.0.0-rc1200

18 Nov 10:21
v1.0.0-rc1200
cd289a1
Compare
Choose a tag to compare
v1.0.0-rc1200 Pre-release
Pre-release

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

Full Changelog: v1.0.0-rc1100...v1.0.0-rc1200

v1.0.0-rc1100

11 Nov 11:29
v1.0.0-rc1100
5b54cf4
Compare
Choose a tag to compare
v1.0.0-rc1100 Pre-release
Pre-release

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 from config_file to config_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 to 1.0.0rc3.

  • The ComponentMetricsRequest now produces a channel name without the start_date if the start_date is None. 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 using marshmallow_dataclasses with correct type hints.
  • Implement and standardize logging configuration with the following changes:
    • Add LoggerConfig and LoggingConfig to standardize logging configuration.
    • Create LoggingConfigUpdater to handle runtime config updates.
    • Support individual log level settings for each module.

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

Full Changelog: v1.0.0-rc1000...v1.0.0-rc1100

v1.0.0-rc1000

18 Oct 15:52
v1.0.0-rc1000
2f62b64
Compare
Choose a tag to compare
v1.0.0-rc1000 Pre-release
Pre-release

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 the frequenz.sdk.timeseries module with the external frequenz-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 the frequenz.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 is True.
    • 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

Full Changelog: v1.0.0-rc901...v1.0.0-rc1000

v1.0.0-rc901

16 Sep 09:41
v1.0.0-rc901
ec96e90
Compare
Choose a tag to compare
v1.0.0-rc901 Pre-release
Pre-release

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

Full Changelog: v1.0.0-rc900...v1.0.0-rc901

v1.0.0-rc900

02 Sep 10:06
v1.0.0-rc900
bba0b5b
Compare
Choose a tag to compare
v1.0.0-rc900 Pre-release
Pre-release

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 to 0.5.0. This can cause dependency issues if you are using other API clients and the frequenz-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 in microgrid.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

Full Changelog: v1.0.0-rc800...v1.0.0-rc900

v1.0.0-rc801

22 Aug 11:00
v1.0.0-rc801
7f0a3b7
Compare
Choose a tag to compare
v1.0.0-rc801 Pre-release
Pre-release

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

v1.0.0-rc800

22 Aug 08:54
v1.0.0-rc800
9b36f97
Compare
Choose a tag to compare
v1.0.0-rc800 Pre-release
Pre-release

Frequenz Python SDK Release Notes

Summary

This release makes some breaking changes to the SDK's public interface aimed at improving clarity and correctness. It also includes several bug fixes in core components like the resampler, the power distributor, and the moving window.

Upgrading

  • The frequenz.sdk.microgrid.*_pool methods have been renamed to new_*_pool, to make it explicit that they create new instances of the pool classes.

    • battery_pool -> new_battery_pool
    • ev_charger_pool -> new_ev_charger_pool
    • pv_pool -> new_pv_pool
  • The following component metric streams have been renamed to clarify that they stream per-phase values:

    • frequenz.sdk.microgrid.
      • voltage -> voltage_per_phase
      • grid.current -> grid.current_per_phase
      • ev_charger_pool.current -> ev_charger_pool.current_per_phase
  • Passing a request_timeout in calls to *_pool.propose_power is no longer supported. It may be specified at application startup, through the new optional api_power_request_timeout parameter in the microgrid.initialize() method.

  • Power distribution results are no longer available through the power_status streams in the *Pools. They can now be accessed as a stream from a separate property power_distribution_results, which is available from all the *Pools.

  • The ConfigManagingActor now uses collections.abc.Mapping as the output sender type. This change indicates that the broadcasted configuration is intended to be read-only.

  • The ConfigManagingActor has moved from frequenz.sdk.actor to frequenz.sdk.config.

  • The following core actors are no longer part of the public API:

    • PowerDistributingActor
    • ComponentMetricsResamplingActor
    • DataSourcingActor
  • The following two types which are used for communicating with the data sourcing and resampling actors are also no longer part of the public API:

    • ComponentMetricId
    • ComponentMetricRequest
  • The ChannelRegistry is no longer part of the public API.

  • The Result types for the power distribution results are now exposed through the frequenz.sdk.microgrid.battery_pool module.

New Features

  • Classes Bounds and SystemBounds now implement the __contains__ method, allowing the use of the in operator to check whether a value falls within the bounds or not.

Enhancements

  • The resampler now shows an error message where it is easier to identify the component and metric when it can't find relevant data for the current resampling window.

Bug Fixes

  • Fixed a typing issue that occurs in some cases when composing formulas with constants.
  • Fixed a bug where sending tasks in the data sourcing actor might not have been awaited.
  • Updated the logical meter documentation to reflect the latest changes.
  • Fixed a bug in the code examples in the getting-started tutorial.
  • Fixed a bug in ConfigManagingActor that was not properly comparing the event path to the config file path when the config file is a relative path.
  • Re-expose ComponentMetricId to the docs.
  • Fixed typing ambiguities when building composite formulas on streaming data.
  • Fixed a bug that was causing the PowerDistributor to exit if power requests to PV inverters or EV chargers timeout.
  • Fix the handling of canceled tasks in the data sourcing and resampling actor.
  • Fix a bug in PV power distribution by excluding inverters that haven't sent any data since startup.
  • Prevent stacking of power requests to avoid delays in processing when the power request frequency exceeds the processing time.
  • Fixes a bug in the ring buffer in case the updated value is missing and creates a gap in time.

What's Changed

Full Changelog: v1.0.0rc700...v1.0.0-rc800

v1.0.0-rc603

09 Aug 15:51
v1.0.0-rc603
956823f
Compare
Choose a tag to compare
v1.0.0-rc603 Pre-release
Pre-release

Frequenz Python SDK Release Notes

Bug Fixes

  • Fixes a bug in the ring buffer in case the updated value is missing and creates a gap in time.

  • Fixed a bug that was causing the PowerDistributor to exit if power requests to PV inverters or EV chargers timeout.

What's Changed

  • Fix gap in ring buffer when updating missing values by @cwasicki in #1034
  • Fix exit-on-timeout issue in PowerDistributor by @shsms in #1035

Full Changelog: v1.0.0-rc602...v1.0.0-rc603