|
6 | 6 | This package contains |
7 | 7 | [channel](https://en.wikipedia.org/wiki/Channel_(programming)) implementations. |
8 | 8 |
|
| 9 | +Base classes: |
| 10 | +
|
| 11 | +* [Receiver][frequenz.channels.Receiver]: An object that can wait for and |
| 12 | + consume messages from a channel. |
| 13 | +
|
| 14 | +* [Sender][frequenz.channels.Sender]: An object that can send messages to |
| 15 | + a channel. |
| 16 | +
|
9 | 17 | Channels: |
10 | 18 |
|
11 | 19 | * [Anycast][frequenz.channels.Anycast]: A channel that supports multiple |
12 | 20 | senders and multiple receivers. A message sent through a sender will be |
13 | 21 | received by exactly one receiver. |
14 | 22 |
|
15 | | -* [Bidirectional][frequenz.channels.Bidirectional]: A channel providing |
16 | | - a `client` and a `service` handle to send and receive bidirectionally. |
17 | | -
|
18 | 23 | * [Broadcast][frequenz.channels.Broadcast]: A channel to broadcast messages |
19 | 24 | from multiple senders to multiple receivers. Each message sent through any of |
20 | 25 | the senders is received by all of the receivers. |
21 | 26 |
|
22 | | -Other base classes: |
| 27 | +Utilities to work with channels: |
23 | 28 |
|
24 | | -* [Peekable][frequenz.channels.Peekable]: An object to allow users to get |
25 | | - a peek at the latest value in the channel, without consuming anything. |
| 29 | +* [Merge][frequenz.channels.Merge] and [MergeNamed][frequenz.channels.MergeNamed]: |
| 30 | + [Receivers][frequenz.channels.Receiver] that merge messages coming from multiple |
| 31 | + receivers into a single stream. |
26 | 32 |
|
27 | | -* [Receiver][frequenz.channels.Receiver]: An object that can wait for and |
28 | | - consume messages from a channel. |
29 | | -
|
30 | | -* [Sender][frequenz.channels.Sender]: An object that can send messages to |
31 | | - a channel. |
32 | | -
|
33 | | -Utilities: |
34 | | -
|
35 | | -* [util][frequenz.channels.util]: A module with utilities, like special |
36 | | - receivers that implement timers, file watchers, merge receivers, or wait for |
37 | | - messages in multiple channels. |
| 33 | +* [select][frequenz.channels.select]: Iterate over the values of all |
| 34 | + [receivers][frequenz.channels.Receiver] as new values become available. |
38 | 35 |
|
39 | 36 | Exception classes: |
40 | 37 |
|
|
56 | 53 | * [ReceiverStoppedError][frequenz.channels.ReceiverStoppedError]: A receiver |
57 | 54 | stopped producing messages. |
58 | 55 |
|
59 | | -* [ReceiverInvalidatedError][frequenz.channels.ReceiverInvalidatedError]: |
60 | | - A receiver is not longer valid (for example if it was converted into |
61 | | - a peekable. |
| 56 | +* [SelectError][frequenz.channels.SelectError]: Base class for all errors |
| 57 | + related to [select][frequenz.channels.select]. |
| 58 | +
|
| 59 | +* [SelectErrorGroup][frequenz.channels.SelectErrorGroup]: A group of errors |
| 60 | + raised by [select][frequenz.channels.select]. |
| 61 | +
|
| 62 | +* [UnhandledSelectedError][frequenz.channels.UnhandledSelectedError]: An error |
| 63 | + raised by [select][frequenz.channels.select] that was not handled by the |
| 64 | + user. |
| 65 | +
|
| 66 | +Extra utility receivers: |
| 67 | +
|
| 68 | +* [Event][frequenz.channels.event.Event]: A receiver that generates a message when |
| 69 | + an event is set. |
| 70 | +
|
| 71 | +* [FileWatcher][frequenz.channels.file_watcher.FileWatcher]: A receiver that |
| 72 | + generates a message when a file is added, modified or deleted. |
| 73 | +
|
| 74 | +* [Timer][frequenz.channels.timer.Timer]: A receiver that generates a message after a |
| 75 | + given amount of time. |
62 | 76 | """ |
63 | 77 |
|
64 | | -from . import util |
65 | 78 | from ._anycast import Anycast |
66 | | -from ._base_classes import Peekable, Receiver, Sender |
67 | | -from ._bidirectional import Bidirectional |
68 | 79 | from ._broadcast import Broadcast |
69 | | -from ._exceptions import ( |
70 | | - ChannelClosedError, |
71 | | - ChannelError, |
72 | | - Error, |
73 | | - ReceiverError, |
74 | | - ReceiverInvalidatedError, |
75 | | - ReceiverStoppedError, |
76 | | - SenderError, |
| 80 | +from ._exceptions import ChannelClosedError, ChannelError, Error |
| 81 | +from ._merge import Merge |
| 82 | +from ._merge_named import MergeNamed |
| 83 | +from ._receiver import Receiver, ReceiverError, ReceiverStoppedError |
| 84 | +from ._select import ( |
| 85 | + Selected, |
| 86 | + SelectError, |
| 87 | + SelectErrorGroup, |
| 88 | + UnhandledSelectedError, |
| 89 | + select, |
| 90 | + selected_from, |
77 | 91 | ) |
| 92 | +from ._sender import Sender, SenderError |
78 | 93 |
|
79 | 94 | __all__ = [ |
80 | 95 | "Anycast", |
81 | | - "Bidirectional", |
82 | 96 | "Broadcast", |
83 | 97 | "ChannelClosedError", |
84 | 98 | "ChannelError", |
85 | 99 | "Error", |
86 | | - "Peekable", |
| 100 | + "Merge", |
| 101 | + "MergeNamed", |
87 | 102 | "Receiver", |
88 | 103 | "ReceiverError", |
89 | | - "ReceiverInvalidatedError", |
90 | 104 | "ReceiverStoppedError", |
| 105 | + "SelectError", |
| 106 | + "SelectErrorGroup", |
| 107 | + "Selected", |
91 | 108 | "Sender", |
92 | 109 | "SenderError", |
93 | | - "util", |
| 110 | + "UnhandledSelectedError", |
| 111 | + "select", |
| 112 | + "selected_from", |
94 | 113 | ] |
0 commit comments