Commit 8b36e6d
committed
Expose operational mode through individual properties
Using the operational mode protobuf enum as a component attribute is not
very convenient. Users would need to check for multiple combinations to
find out whether telemetry or control is available, plus handle the
unspecified value, which should be rare but is possible.
Instead, keep the operational mode representation entirely in the
protobuf conversion layer and expose it through two Component accessors
that are much safer to use:
- `provides_telemetry()`: whether the component provides telemetry data
- `accepts_control()`: whether the component accepts control commands
Both raise `ValueError` when the operational mode is unspecified or
unrecognized, so callers get an explicit failure instead of a silently
wrong boolean. The mode is stored internally as two private
`bool | None` fields that default to `None` (unspecified), so existing
component construction sites remain unaffected.
This is a port of commit [5c729ba][] from `frequenz-client-common`, so
we upgrade to it the migration should be smooth.
[5c729ba]: frequenz-floss/frequenz-client-common-python@5c729ba
Signed-off-by: Leandro Lucarella <luca-frequenz@llucax.com>1 parent 73d008b commit 8b36e6d
5 files changed
Lines changed: 203 additions & 0 deletions
File tree
- src/frequenz/client/microgrid/component
- tests/component
- component_proto
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
52 | 52 | | |
53 | 53 | | |
54 | 54 | | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
55 | 61 | | |
56 | 62 | | |
57 | 63 | | |
| |||
85 | 91 | | |
86 | 92 | | |
87 | 93 | | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
88 | 128 | | |
89 | 129 | | |
90 | 130 | | |
| |||
Lines changed: 59 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
71 | 71 | | |
72 | 72 | | |
73 | 73 | | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
74 | 108 | | |
75 | 109 | | |
76 | 110 | | |
| |||
117 | 151 | | |
118 | 152 | | |
119 | 153 | | |
| 154 | + | |
| 155 | + | |
120 | 156 | | |
121 | 157 | | |
122 | 158 | | |
| |||
197 | 233 | | |
198 | 234 | | |
199 | 235 | | |
| 236 | + | |
200 | 237 | | |
201 | 238 | | |
202 | 239 | | |
| |||
231 | 268 | | |
232 | 269 | | |
233 | 270 | | |
| 271 | + | |
| 272 | + | |
234 | 273 | | |
235 | 274 | | |
236 | 275 | | |
| |||
245 | 284 | | |
246 | 285 | | |
247 | 286 | | |
| 287 | + | |
| 288 | + | |
248 | 289 | | |
249 | 290 | | |
250 | 291 | | |
| |||
267 | 308 | | |
268 | 309 | | |
269 | 310 | | |
| 311 | + | |
| 312 | + | |
270 | 313 | | |
271 | 314 | | |
272 | 315 | | |
| |||
291 | 334 | | |
292 | 335 | | |
293 | 336 | | |
| 337 | + | |
| 338 | + | |
294 | 339 | | |
295 | 340 | | |
296 | 341 | | |
| |||
302 | 347 | | |
303 | 348 | | |
304 | 349 | | |
| 350 | + | |
| 351 | + | |
305 | 352 | | |
306 | 353 | | |
307 | 354 | | |
| |||
338 | 385 | | |
339 | 386 | | |
340 | 387 | | |
| 388 | + | |
| 389 | + | |
341 | 390 | | |
342 | 391 | | |
343 | 392 | | |
| |||
351 | 400 | | |
352 | 401 | | |
353 | 402 | | |
| 403 | + | |
| 404 | + | |
354 | 405 | | |
355 | 406 | | |
356 | 407 | | |
| |||
368 | 419 | | |
369 | 420 | | |
370 | 421 | | |
| 422 | + | |
| 423 | + | |
371 | 424 | | |
372 | 425 | | |
373 | 426 | | |
| |||
405 | 458 | | |
406 | 459 | | |
407 | 460 | | |
| 461 | + | |
| 462 | + | |
408 | 463 | | |
409 | 464 | | |
410 | 465 | | |
| |||
418 | 473 | | |
419 | 474 | | |
420 | 475 | | |
| 476 | + | |
| 477 | + | |
421 | 478 | | |
422 | 479 | | |
423 | 480 | | |
| |||
433 | 490 | | |
434 | 491 | | |
435 | 492 | | |
| 493 | + | |
| 494 | + | |
436 | 495 | | |
437 | 496 | | |
438 | 497 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
59 | 59 | | |
60 | 60 | | |
61 | 61 | | |
| 62 | + | |
| 63 | + | |
62 | 64 | | |
63 | 65 | | |
64 | 66 | | |
| |||
74 | 76 | | |
75 | 77 | | |
76 | 78 | | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
77 | 105 | | |
78 | 106 | | |
79 | 107 | | |
| |||
91 | 119 | | |
92 | 120 | | |
93 | 121 | | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
94 | 125 | | |
95 | 126 | | |
96 | 127 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| 6 | + | |
6 | 7 | | |
7 | 8 | | |
8 | 9 | | |
| |||
12 | 13 | | |
13 | 14 | | |
14 | 15 | | |
| 16 | + | |
15 | 17 | | |
16 | 18 | | |
17 | 19 | | |
18 | 20 | | |
19 | 21 | | |
20 | 22 | | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
21 | 64 | | |
22 | 65 | | |
23 | 66 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
74 | 74 | | |
75 | 75 | | |
76 | 76 | | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
77 | 107 | | |
78 | 108 | | |
79 | 109 | | |
| |||
0 commit comments