Skip to content

Releases: frequenz-floss/frequenz-sdk-python

v0.13.0

30 Nov 09:20
v0.13.0
b3afe70
Compare
Choose a tag to compare

Release Notes

Summary

This release mainly introduces the LogicalMeter. There should be no breaking
changes.

New Features

  • A logical meter implementation that can apply formulas on resampled component
    data streams.

  • The ComponentGraph now supports dangling inverters, i.e. inverters
    without a successor. This is mainly to support PVs inverters. In the future
    dangling inverters will be forbidden again but only for batteries.

Bug Fixes

  • The component graph expected inverters to always have successors, and so
    wasn't able to support PV inverters, which don't have component successors.
    This is resolved by temporarily removing the requirement for inverters to have
    successors. This will be partially reverted later by expecting just battery
    inverters to have graph successors.

What's Changed

New Contributors

Full Changelog: v0.12.0...v0.13.0

v0.12.0

24 Nov 10:52
v0.12.0
5138200
Compare
Choose a tag to compare

Release Notes

Summary

The project has a new home!

https://frequenz-floss.github.io/frequenz-sdk-python/

For now the documentation is pretty scarce but we will be improving it with time.

The most prominent changes in this release is the cleanup of the public API, which is much more concise and clear now and the addition of classes implementing the new data flow design, in particular the DataSourcingActor and the ComponentMetricsResamplingActor.

Upgrading

  • EVChargerData's active_power_consumption has been renamed to active_power

  • PowerDistributor - type of Request's request_timeout_sec has been changed from int to float

  • ComponentCategory.LOAD has been added

  • The frequenz-channels was upgraded to v0.11.0 which includes a bunch of breaking changes you should be aware of.

  • The public API has been cleaned up, several symbols were moved or exposed in a single module, and some symbols were hidden because they are either schedule for deprecation or not yet stabilized.

    • frequenz.sdk.actor: The decorator sub-module was hidden and now the @actor decorator is exposed directly only in the main module.

    • frequenz.sdk.configs: was renamed to frequenz.sdk.config, Config is only exposed in the main module and the ConfigManager was moved to frequenz.sdk.actor.ConfigManagingActor.

    • The modules frequenz.sdk.data_handling and frequenz.sdk.data_ingestion were hidden from the public interface and will probably be removed in the future. They are still available as frequenz.sdk._data_handling and frequenz.sdk._data_ingestion for users still needing them.

    • The module frequenz.sdk.power_distribution was renamed to frequenz.sdk.power and the PowerDistributor was moved to
      frequenz.sdk.actor.power_distributing.PowerDistributingActor (with the utility classes Request and Result).

    • The module frequenz.sdk.microgrid was simplified.

      • All component-related symbols (.component, .component_data, .component_states) were moved to the sub-module
        frequenz.sdk.microgrid.component.

      • All API client-related symbols (.client, .connection, .retry) were moved to the sub-module frequenz.sdk.microgrid.client.

      • The ComponentGraph is exposed directly in the main module (and only there).

      • The microgrid_api module is now exposed via the main module directly (and thus indirectly renamed to microgrid, so instead of using from frequenz.sdk.microgrid import microgrid_api; microgrid_api.initialize() (for example) you should use from frequenz.sdk.microgrid import microgridi; microgrid.initialize().

      • The MicrogridApi class was renamed to Microgrid to make it clear it is not exclusively about the API.

      • The Microgrid.microgrid_api_client attribute was renamed to Microgrid.api_client to avoid the redundancy.

New Features

  • MeterData objects now expose the AC frequency measured by the meter.

  • BatteryData objects now expose the temperature of the hottest block in the battery as temperature_max

  • A new frequenz.sdk.actor.DataSourcingActor was added.

  • A new frequenz.sdk.actor.ComponentMetricsResamplingActor was added.

  • A new frequenz.sdk.actor.ChannelRegistry was added.

  • A new module frequenz.sdk.timeseries was added.

What's Changed

New Contributors

Full Changelog: v0.11.0...v0.12.0

v0.11.0

06 Oct 11:42
v0.11.0
f944a50
Compare
Choose a tag to compare

frequenz-sdk Release Notes

Summary

This is the first public open source release based on the internal SDK version v0.10.0. There are no breaking changes in this release, only changes to the project structure, metadata, and automation. Packages are also now uploaded to PyPI as frequenz-sdk, so this project now can be installed normally via pip:

python -m pip install frequenz-sdk

The GitHub issues were also improved, adding templates for reporting issues and requesting features. Users are also pointed to the Discussion forums when trying to open an issue if they have questions instead. Also many labels are assigned automatically on issue and pull request creation.

Upgrading

Even if there are no breaking changes, you might see this error in your local
environment when upgrading:

ERROR: Project file:///home/luca/devel/frequenz-sdk-python has
a 'pyproject.toml' and its build backend is missing the 'build_editable'
hook. Since it does not have a 'setup.py' nor a 'setup.cfg', it cannot be
installed in editable mode. Consider using a build backend that supports PEP
660.

If so, you should probably update the dependencies in you virtual environment
(for example python -m pip install -U -e .)

What's Changed

New Contributors

Full Changelog: https://github.com/frequenz-floss/frequenz-sdk-python/commits/v0.11.0

v0.11.0-rc1

06 Oct 10:18
v0.11.0-rc1
f944a50
Compare
Choose a tag to compare
v0.11.0-rc1 Pre-release
Pre-release

frequenz-sdk Release Notes

Summary

This is the first public open source release based on the internal SDK version v0.10.0. There are no breaking changes in this release, only changes to the project structure, metadata, and automation. Packages are also now uploaded to PyPI as frequenz-sdk, so this project now can be installed normally via pip:

python -m pip install frequenz-sdk

The GitHub issues were also improved, adding templates for reporting issues and requesting features. Users are also pointed to the Discussion forums when trying to open an issue if they have questions instead. Also many labels are assigned automatically on issue and pull request creation.

Upgrading

Even if there are no breaking changes, you might see this error in your local
environment when upgrading:

ERROR: Project file:///home/luca/devel/frequenz-sdk-python has
a 'pyproject.toml' and its build backend is missing the 'build_editable'
hook. Since it does not have a 'setup.py' nor a 'setup.cfg', it cannot be
installed in editable mode. Consider using a build backend that supports PEP
660.

If so, you should probably update the dependencies in you virtual environment
(for example python -m pip install -U -e .)

What's Changed

New Contributors

Full Changelog: https://github.com/frequenz-floss/frequenz-sdk-python/commits/v0.11.0-rc1