Skip to content

Releases: frequenz-floss/frequenz-channels-python

v1.10.0

10 Jul 08:41
v1.10.0
95a79d6
Compare
Choose a tag to compare

Frequenz channels Release Notes

Summary

This release introduces the experimental GroupingLatestValueCache and includes a couple of bug fixes.

New Features

  • This release introduces the experimental GroupingLatestValueCache. It is similar to the LatestValueCache, but accepts an additional key-function as an argument, which takes each incoming message and returns a key for that message. The latest value received for each unique key gets cached and is available to look up on-demand through a collections.abc.Mapping interface.

Bug Fixes

  • Any open calls to NopReceiver.ready() now return as soon as the receiver is closed.

  • The __str__ representation of broadcast receivers now include the receiver's name.

What's Changed

Full Changelog: v1.9.0...v1.10.0

v1.9.0

15 May 11:55
v1.9.0
b5ae33c
Compare
Choose a tag to compare

Frequenz channels Release Notes

New Features

  • An experimental NopReceiver implementation has been added, which can be used as a place-holder receiver that never receives a message.

  • The experimental OptionalReceiver has been deprecated. It will be removed with the next major release. It can be replaced with a NopReceiver as follows:

    opt_recv: Receiver[T] | None
    recv: Receiver[T] = NopReceiver[T]() if opt_recv is None else opt_recv

What's Changed

Full Changelog: v1.8.0...v1.9.0

v1.8.0

23 Apr 08:10
v1.8.0
f9ecb68
Compare
Choose a tag to compare

Frequenz channels Release Notes

Summary

This release focuses on improving async patterns and flexibility in the channel's library.

Upgrading

  • Some minimal dependencies have been bumped, so you might need to adjust your dependencies accordingly.

  • Broadcast and Anycast channels method close() was renamed to aclose() to follow Python's convention. With this change now channels can be used with the aclosing() context manager for example.

    The name close() is still available for backwards compatibility, but it will be removed in the next major release, so it is recommended to switch to aclose().

New Features

  • Add a new OptionalReceiver class that wraps an optional underlying receiver, allowing for indefinite waiting when no receiver is set.
  • Improve documentation of the frequenz.channels.experimental.Pipe

What's Changed

Full Changelog: v1.7.0...v1.8.0

v1.7.0

02 Apr 15:21
v1.7.0
92116fe
Compare
Choose a tag to compare

Frequenz channels Release Notes

New Features

  • An optional tick_at_start parameter has been added to Timer. When True, the timer will trigger immediately after starting, and then wait for the interval before triggering again.

Bug Fixes

  • Fix unterminated code block in a documentation example for WithPrevious.

What's Changed

Full Changelog: v1.6.1...v1.7.0

v1.6.1

28 Jan 08:53
v1.6.1
ccef0ab
Compare
Choose a tag to compare

Frequenz channels Release Notes

Summary

Upgrading

New Features

Bug Fixes

What's Changed

  • Clear release notes by @shsms in #367
  • Explain the Receiver.close() method in the user guide by @shsms in #368

Full Changelog: v1.6.0...v1.6.1

v1.6.0

21 Jan 10:32
v1.6.0
7354269
Compare
Choose a tag to compare

Frequenz channels Release Notes

New Features

  • Added a Receiver.close() method for closing just a receiver. Also implemented it for all the Receiver implementations in this library.

What's Changed

Full Changelog: v1.5.0...v1.6.0

v1.5.0

08 Jan 09:53
v1.5.0
aceb7c5
Compare
Choose a tag to compare

Frequenz channels Release Notes

New Features

  • Added support for disabling the overflow-warning log messagess in broadcast receivers, through the warn_on_overflow parameter on Broadcast.new_receiver() calls.

What's Changed

  • Clear release notes by @llucax in #360
  • Support for disabling overflow-warning logs in broadcast receivers by @shsms in #329
  • Bump the required group with 7 updates by @dependabot in #362
  • Prepare for release v1.5.0 by @shsms in #363

Full Changelog: v1.4.0...v1.5.0

v1.4.0

05 Dec 14:12
v1.4.0
f4a6642
Compare
Choose a tag to compare

Frequenz channels Release Notes

New Features

Experimental

  • A new composable predicate, WithPrevious, to filter messages based on the previous message.

What's Changed

  • Clear release notes by @llucax in #338
  • Bump the required group across 1 directory with 9 updates by @dependabot in #337
  • Add useful predicates to filter based on the previous value by @llucax in #341
  • Prepare release notes for v1.4.0 by @llucax in #346
  • Use a float for the tolerance in the timer tests by @llucax in #347
  • Update watchfiles requirement from <0.25.0,>=0.15.0 to >=0.15.0,<1.1.0 by @dependabot in #352
  • Bump setuptools from 68.1.0 to 75.6.0 by @dependabot in #351
  • Bump the required group with 7 updates by @dependabot in #349
  • Bump setuptools-scm[toml] from 7.1.0 to 8.1.0 by @dependabot in #350
  • Fix documentation Broadcast -> Anycast by @Marenz in #358
  • Rename OnlyIfPrevious to WithPrevious by @llucax in #357
  • Update files using repo-config-0.11 by @llucax in #353
  • Bump types-markdown from 3.7.0.20240822 to 3.7.0.20241204 by @dependabot in #359

Full Changelog: v1.3.0...v1.4.0

v1.3.0

19 Nov 13:36
v1.3.0
b3c98e5
Compare
Choose a tag to compare

Frequenz channels Release Notes

New Features

  • There is a new Receiver.triggered method that can be used instead of selected_from:

    async for selected in select(recv1, recv2):
        if recv1.triggered(selected):
            print('Received from recv1:', selected.message)
        if recv2.triggered(selected):
            print('Received from recv2:', selected.message)
  • Receiver.filter() can now properly handle TypeGuards. The resulting receiver will now have the narrowed type when a TypeGuard is used.

Bug Fixes

  • Fixed a memory leak in the timer.

What's Changed

Full Changelog: v1.2.0...v1.3.0

v1.2.1

18 Nov 09:57
v1.2.1
391fe11
Compare
Choose a tag to compare

Frequenz channels Release Notes

Bug Fixes

  • Fixed a memory leak in the timer.

What's Changed

Full Changelog: v1.2.0...v1.2.1