Frequenz-sdk

Latest version: v0.25.2

Safety actively analyzes 666181 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 6 of 7

0.16.0

Release Notes

Summary

The Frequenz SDK now supports Python 3.11.

New Features

- Upgrade PowerDistributingActor to track if batteries are working
https://github.com/frequenz-floss/frequenz-sdk-python/pull/117

- Simplify `Resampler` by moving configuration to its own class `ResamplerConfig`
https://github.com/frequenz-floss/frequenz-sdk-python/pull/131

- Add `initial_buffer_len` to the ResamplerConfig. This means that `Resampler` will store at least this number of arguments. Other `Resampler` behaviour won't change
https://github.com/frequenz-floss/frequenz-sdk-python/pull/131

- Ability to compose formula outputs into higher-order formulas:
https://github.com/frequenz-floss/frequenz-sdk-python/pull/133

- Add a formula generator for SoC in the LogicalMeter
https://github.com/frequenz-floss/frequenz-sdk-python/pull/137

Bug Fixes

- Formulas with repeated operators like `1 - 2 - 3` were getting
calculated incorrectly as `1 - (2 - 3)`. This has been fixed in
https://github.com/frequenz-floss/frequenz-sdk-python/pull/141

- Remove `microgrid_api` and `component_graph` arguments from PowerDistributingActor constructor
https://github.com/frequenz-floss/frequenz-sdk-python/pull/156


What's Changed
* Clear release notes by ela-kotulska-frequenz in https://github.com/frequenz-floss/frequenz-sdk-python/pull/129
* Improve resampler buffer and config by leandro-lucarella-frequenz in https://github.com/frequenz-floss/frequenz-sdk-python/pull/131
* README: Fix build status badge by leandro-lucarella-frequenz in https://github.com/frequenz-floss/frequenz-sdk-python/pull/134
* Add a formula generator for SoC in the LogicalMeter by shsms in https://github.com/frequenz-floss/frequenz-sdk-python/pull/137
* Track status of the batteries by ela-kotulska-frequenz in https://github.com/frequenz-floss/frequenz-sdk-python/pull/117
* Fix formula precedence bug in the `FormulaEngine` by shsms in https://github.com/frequenz-floss/frequenz-sdk-python/pull/141
* Add `FormulaChannel`s for composing formula outputs by shsms in https://github.com/frequenz-floss/frequenz-sdk-python/pull/133
* Update release notes by ela-kotulska-frequenz in https://github.com/frequenz-floss/frequenz-sdk-python/pull/146
* Add a delay for the mock server to start, before creating a client by shsms in https://github.com/frequenz-floss/frequenz-sdk-python/pull/150
* Wait for a short time after starting the test actors by shsms in https://github.com/frequenz-floss/frequenz-sdk-python/pull/153
* Send 0 values from power formulas for non-existant component types by shsms in https://github.com/frequenz-floss/frequenz-sdk-python/pull/151
* Update power distributor to use frequenz.sdk.microgrid by ela-kotulska-frequenz in https://github.com/frequenz-floss/frequenz-sdk-python/pull/156
* Support python 3.11 by shsms in https://github.com/frequenz-floss/frequenz-sdk-python/pull/157


**Full Changelog**: https://github.com/frequenz-floss/frequenz-sdk-python/compare/v0.15.0...v0.16.0

0.15.0

Release Notes

Summary

Upgrading

- Add fine-grained Result types for the PowerDistributingActor. Previously Result was one class with many fields. Now each type of the result has its own class that derives from Result parent class.

New Features

- Add inverter type to the Component data. Inverter type tells what kind of inverter it is (Battery, Solar etc).
- Add `FormulaGenerator` class for generating formulas from the component graph.
- Add formulas for: `grid_power`, `battery_power`, `PV power`.

Bug Fixes

- Fix ComponentMetricResamplingActor, to not subscribe twice to the same source.


What's Changed
* Clear release notes by leandro-lucarella-frequenz in https://github.com/frequenz-floss/frequenz-sdk-python/pull/111
* Add missing dependencies in documentation by mathias-baumann-frequenz in https://github.com/frequenz-floss/frequenz-sdk-python/pull/114
* Add fine-grained `Result` types for the `PowerDistributingActor` by ela-kotulska-frequenz in https://github.com/frequenz-floss/frequenz-sdk-python/pull/104
* Generate formulas automatically from the component graph by shsms in https://github.com/frequenz-floss/frequenz-sdk-python/pull/103
* resampling: Don't subscribe twice to the same source by leandro-lucarella-frequenz in https://github.com/frequenz-floss/frequenz-sdk-python/pull/123
* Fix warnings in unit tests by ela-kotulska-frequenz in https://github.com/frequenz-floss/frequenz-sdk-python/pull/125
* Update release notes by ela-kotulska-frequenz in https://github.com/frequenz-floss/frequenz-sdk-python/pull/127

New Contributors
* mathias-baumann-frequenz made their first contribution in https://github.com/frequenz-floss/frequenz-sdk-python/pull/114

**Full Changelog**: https://github.com/frequenz-floss/frequenz-sdk-python/compare/v0.14.0...v0.15.0

0.14.0

Release Notes

Summary

This release improves the performance of the `ComponentMetricsResamplingActor`, and fixes a bug in the `LogicalMeter` that was causing it to crash.

Upgrading

- `frequenz.sdk.timseries`:
- The resample classes (`GroupResampler`, `Resampler`, `ResamplingFunction`) where removed and the replacement classes are hidden for now, as they are going through a rewrite.

Bug Fixes

- The Resampling actor sends None values out when there is no data from a component. The logical meter used to raise an exception if it saw a `None` value from any of its streams. The logical meter is now able to handle `None` values by propagating the `None` values, or treating them as `0`s.


What's Changed
* Support handling `None` values in LogicalMeter/FormulaEngine by shsms in https://github.com/frequenz-floss/frequenz-sdk-python/pull/95
* Clear release notes by leandro-lucarella-frequenz in https://github.com/frequenz-floss/frequenz-sdk-python/pull/98
* Fix the disable_actor_auto_restart fixture by leandro-lucarella-frequenz in https://github.com/frequenz-floss/frequenz-sdk-python/pull/97
* Split the formula execution logic from the formula building logic by shsms in https://github.com/frequenz-floss/frequenz-sdk-python/pull/96
* Prevent LogicalMeter from crashing on formula application failure by shsms in https://github.com/frequenz-floss/frequenz-sdk-python/pull/105
* Handle `asyncio.CancelledError` separately in the `LogicalMeter` by shsms in https://github.com/frequenz-floss/frequenz-sdk-python/pull/106
* Rewrite the resampler class to be more reusable by leandro-lucarella-frequenz in https://github.com/frequenz-floss/frequenz-sdk-python/pull/101
* Update release notes for v0.14.0 by leandro-lucarella-frequenz in https://github.com/frequenz-floss/frequenz-sdk-python/pull/109


**Full Changelog**: https://github.com/frequenz-floss/frequenz-sdk-python/compare/v0.13.0...v0.14.0

0.13.0

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
* Clean RELEASE_NOTES by leandro-lucarella-frequenz in https://github.com/frequenz-floss/frequenz-sdk-python/pull/79
* Add a logical meter implementation by shsms in https://github.com/frequenz-floss/frequenz-sdk-python/pull/66
* Improve examples by leandro-lucarella-frequenz in https://github.com/frequenz-floss/frequenz-sdk-python/pull/85
* ci: Label changes in examples with part:docs by leandro-lucarella-frequenz in https://github.com/frequenz-floss/frequenz-sdk-python/pull/87
* Remove requirement for inverters to have successors by shsms in https://github.com/frequenz-floss/frequenz-sdk-python/pull/88
* PowerDistributor should not block user command. by ela-kotulska-frequenz in https://github.com/frequenz-floss/frequenz-sdk-python/pull/92
* Update release notes for v0.13.0 by leandro-lucarella-frequenz in https://github.com/frequenz-floss/frequenz-sdk-python/pull/93

New Contributors
* ela-kotulska-frequenz made their first contribution in https://github.com/frequenz-floss/frequenz-sdk-python/pull/92

**Full Changelog**: https://github.com/frequenz-floss/frequenz-sdk-python/compare/v0.12.0...v0.13.0

0.12.0

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`](https://github.com/frequenz-floss/frequenz-channels-python/) was upgraded to [v0.11.0](https://github.com/frequenz-floss/frequenz-channels-python/releases/tag/v0.11.0) which includes a bunch of [breaking changes](https://github.com/frequenz-floss/frequenz-channels-python/blob/v0.11.0/RELEASE_NOTES.md#upgrading-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
* Clear RELEASE_NOTES.md by leandro-lucarella-frequenz in https://github.com/frequenz-floss/frequenz-sdk-python/pull/23
* Change the type of Request's request_timeout_sec to float by jkozlowicz in https://github.com/frequenz-floss/frequenz-sdk-python/pull/13
* Rename active_power_consumption to active_power in context of EVCharger by jkozlowicz in https://github.com/frequenz-floss/frequenz-sdk-python/pull/17
* Add LOAD component category by jkozlowicz in https://github.com/frequenz-floss/frequenz-sdk-python/pull/26
* Implement ChannelRegistry by sahas-subramanian-frequenz in https://github.com/frequenz-floss/frequenz-sdk-python/pull/25
* Change component data wrappers to be data classes by jkozlowicz in https://github.com/frequenz-floss/frequenz-sdk-python/pull/4
* Remove timeout for receiving from client handle to prevent flakiness by jkozlowicz in https://github.com/frequenz-floss/frequenz-sdk-python/pull/18
* ChannelRegistry improvements by shsms in https://github.com/frequenz-floss/frequenz-sdk-python/pull/29
* Fix EVChargerData's from_proto method by sahas-subramanian-frequenz in https://github.com/frequenz-floss/frequenz-sdk-python/pull/35
* Add new labels to the CI and issue templates by leandro-lucarella-frequenz in https://github.com/frequenz-floss/frequenz-sdk-python/pull/46
* Add timeout to all gRPC calls and set a default timeout by jkozlowicz in https://github.com/frequenz-floss/frequenz-sdk-python/pull/50
* Add DataSourcingActor by shsms in https://github.com/frequenz-floss/frequenz-sdk-python/pull/52
* Update noxfile.py to run darglint in verbose-mode by sahas-subramanian-frequenz in https://github.com/frequenz-floss/frequenz-sdk-python/pull/51
* Add a resampling actor by jkozlowicz in https://github.com/frequenz-floss/frequenz-sdk-python/pull/32
* Indent multi-line return value descriptions in docstrings by shsms in https://github.com/frequenz-floss/frequenz-sdk-python/pull/54
* Clean ups and improvements to the resampler (mostly) by leandro-lucarella-frequenz in https://github.com/frequenz-floss/frequenz-sdk-python/pull/68
* Generate and publish API docs by leandro-lucarella-frequenz in https://github.com/frequenz-floss/frequenz-sdk-python/pull/72
* Update the SDK codebase to work with the latest channel version by shsms in https://github.com/frequenz-floss/frequenz-sdk-python/pull/76
* Expose additional fields from `ComponentData` streams by shsms in https://github.com/frequenz-floss/frequenz-sdk-python/pull/75
* Upgrade dependency to frequenz-channels v0.11.0 by leandro-lucarella-frequenz in https://github.com/frequenz-floss/frequenz-sdk-python/pull/77
* Cleanup public interface by leandro-lucarella-frequenz in https://github.com/frequenz-floss/frequenz-sdk-python/pull/78

New Contributors
* jkozlowicz made their first contribution in https://github.com/frequenz-floss/frequenz-sdk-python/pull/13
* sahas-subramanian-frequenz made their first contribution in https://github.com/frequenz-floss/frequenz-sdk-python/pull/25
* shsms made their first contribution in https://github.com/frequenz-floss/frequenz-sdk-python/pull/29

**Full Changelog**: https://github.com/frequenz-floss/frequenz-sdk-python/compare/v0.11.0...v0.12.0

0.11.0

`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`](https://pypi.org/project/frequenz-sdk/), so this project now can be installed normally via `pip`:

sh
python -m pip install frequenz-sdk


The GitHub issues were also improved, adding templates for [reporting issues](https://github.com/frequenz-floss/frequenz-sdk-python/issues/new?assignees=&labels=priority%3A%E2%9D%93%2C+type%3Abug&template=bug.yml) and [requesting features](https://github.com/frequenz-floss/frequenz-sdk-python/issues/new?assignees=&labels=part%3A%E2%9D%93%2C+priority%3A%E2%9D%93%2C+type%3Aenhancement&template=feature.yml). Users are also pointed to the [Discussion forums](https://github.com/frequenz-floss/frequenz-sdk-python/issues/new/choose) 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
* Add KeywordLabeler app configuration by leandro-lucarella-frequenz in https://github.com/frequenz-floss/frequenz-sdk-python/pull/11
* Add GitHub issue templates by leandro-lucarella-frequenz in https://github.com/frequenz-floss/frequenz-sdk-python/pull/10
* Add CODEOWNERS file by leandro-lucarella-frequenz in https://github.com/frequenz-floss/frequenz-sdk-python/pull/9
* ci: Add automatic pull request labeler by leandro-lucarella-frequenz in https://github.com/frequenz-floss/frequenz-sdk-python/pull/12
* Upload Packages to PyPI by leandro-lucarella-frequenz in https://github.com/frequenz-floss/frequenz-sdk-python/pull/16

New Contributors
* leandro-lucarella-frequenz made their first contribution in https://github.com/frequenz-floss/frequenz-sdk-python/pull/11

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

Page 6 of 7

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.