frequenz-api-common 0.8.2__tar.gz → 0.8.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/PKG-INFO +18 -18
  2. frequenz_api_common-0.8.4/RELEASE_NOTES.md +9 -0
  3. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1alpha8/microgrid/electrical_components/electrical_components.proto +43 -2
  4. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1alpha8/microgrid/sensors/sensors.proto +16 -4
  5. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/py/frequenz_api_common.egg-info/PKG-INFO +18 -18
  6. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/py/frequenz_api_common.egg-info/requires.txt +16 -15
  7. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/pyproject.toml +22 -21
  8. frequenz_api_common-0.8.2/RELEASE_NOTES.md +0 -5
  9. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/LICENSE +0 -0
  10. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/MANIFEST.in +0 -0
  11. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/README.md +0 -0
  12. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/components.proto +0 -0
  13. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/location.proto +0 -0
  14. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/metrics/electrical.proto +0 -0
  15. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/metrics.proto +0 -0
  16. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1/grid/delivery_area.proto +0 -0
  17. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1/grid/delivery_duration.proto +0 -0
  18. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1/location.proto +0 -0
  19. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1/market/energy.proto +0 -0
  20. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1/market/power.proto +0 -0
  21. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1/market/price.proto +0 -0
  22. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1/metrics/bounds.proto +0 -0
  23. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1/metrics/metric_sample.proto +0 -0
  24. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1/microgrid/components/battery.proto +0 -0
  25. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1/microgrid/components/components.proto +0 -0
  26. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1/microgrid/components/ev_charger.proto +0 -0
  27. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1/microgrid/components/fuse.proto +0 -0
  28. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1/microgrid/components/grid.proto +0 -0
  29. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1/microgrid/components/inverter.proto +0 -0
  30. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1/microgrid/components/transformer.proto +0 -0
  31. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1/microgrid/lifetime.proto +0 -0
  32. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1/microgrid/microgrid.proto +0 -0
  33. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1/microgrid/sensors/sensors.proto +0 -0
  34. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1/pagination/pagination_info.proto +0 -0
  35. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1/pagination/pagination_params.proto +0 -0
  36. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1/types/decimal.proto +0 -0
  37. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1alpha7/grid/delivery_area.proto +0 -0
  38. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1alpha7/grid/delivery_duration.proto +0 -0
  39. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1alpha7/market/energy.proto +0 -0
  40. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1alpha7/market/power.proto +0 -0
  41. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1alpha7/market/price.proto +0 -0
  42. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1alpha7/metrics/bounds.proto +0 -0
  43. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1alpha7/metrics/metrics.proto +0 -0
  44. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1alpha7/microgrid/communication_components/communication_components.proto +0 -0
  45. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1alpha7/microgrid/electrical_components/electrical_components.proto +0 -0
  46. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1alpha7/microgrid/lifetime.proto +0 -0
  47. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1alpha7/microgrid/microgrid.proto +0 -0
  48. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1alpha7/microgrid/sensors/sensors.proto +0 -0
  49. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1alpha7/pagination/pagination_info.proto +0 -0
  50. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1alpha7/pagination/pagination_params.proto +0 -0
  51. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1alpha7/streaming/event.proto +0 -0
  52. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1alpha7/type/decimal.proto +0 -0
  53. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1alpha7/type/interval.proto +0 -0
  54. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1alpha7/type/location.proto +0 -0
  55. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1alpha8/grid/delivery_area.proto +0 -0
  56. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1alpha8/grid/delivery_duration.proto +0 -0
  57. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1alpha8/gridpool/gridpool.proto +0 -0
  58. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1alpha8/market/energy.proto +0 -0
  59. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1alpha8/market/power.proto +0 -0
  60. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1alpha8/market/price.proto +0 -0
  61. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1alpha8/metrics/bounds.proto +0 -0
  62. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1alpha8/metrics/metrics.proto +0 -0
  63. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1alpha8/microgrid/communication_components/communication_components.proto +0 -0
  64. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1alpha8/microgrid/lifetime.proto +0 -0
  65. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1alpha8/microgrid/microgrid.proto +0 -0
  66. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1alpha8/pagination/pagination_info.proto +0 -0
  67. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1alpha8/pagination/pagination_params.proto +0 -0
  68. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1alpha8/streaming/event.proto +0 -0
  69. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1alpha8/types/decimal.proto +0 -0
  70. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1alpha8/types/interval.proto +0 -0
  71. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/proto/frequenz/api/common/v1alpha8/types/location.proto +0 -0
  72. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/py/frequenz/api/common/__init__.py +0 -0
  73. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/py/frequenz/api/common/metrics/__init__.py +0 -0
  74. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/py/frequenz/api/common/py.typed +0 -0
  75. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/py/frequenz/api/common/v1/__init__.py +0 -0
  76. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/py/frequenz/api/common/v1/grid/__init__.py +0 -0
  77. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/py/frequenz/api/common/v1/market/__init__.py +0 -0
  78. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/py/frequenz/api/common/v1/metrics/__init__.py +0 -0
  79. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/py/frequenz/api/common/v1/microgrid/__init__.py +0 -0
  80. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/py/frequenz/api/common/v1/microgrid/components/__init__.py +0 -0
  81. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/py/frequenz/api/common/v1/microgrid/sensors/__init__.py +0 -0
  82. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/py/frequenz/api/common/v1/pagination/__init__.py +0 -0
  83. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/py/frequenz/api/common/v1/types/__init__.py +0 -0
  84. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/py/frequenz/api/common/v1alpha7/__init__.py +0 -0
  85. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/py/frequenz/api/common/v1alpha7/grid/__init__.py +0 -0
  86. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/py/frequenz/api/common/v1alpha7/market/__init__.py +0 -0
  87. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/py/frequenz/api/common/v1alpha7/metrics/__init__.py +0 -0
  88. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/py/frequenz/api/common/v1alpha7/microgrid/__init__.py +0 -0
  89. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/py/frequenz/api/common/v1alpha7/microgrid/communication_components/__init__.py +0 -0
  90. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/py/frequenz/api/common/v1alpha7/microgrid/electrical_components/__init__.py +0 -0
  91. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/py/frequenz/api/common/v1alpha7/microgrid/sensors/__init__.py +0 -0
  92. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/py/frequenz/api/common/v1alpha7/pagination/__init__.py +0 -0
  93. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/py/frequenz/api/common/v1alpha7/streaming/__init__.py +0 -0
  94. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/py/frequenz/api/common/v1alpha7/type/__init__.py +0 -0
  95. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/py/frequenz/api/common/v1alpha8/__init__.py +0 -0
  96. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/py/frequenz/api/common/v1alpha8/grid/__init__.py +0 -0
  97. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/py/frequenz/api/common/v1alpha8/gridpool/__init__.py +0 -0
  98. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/py/frequenz/api/common/v1alpha8/market/__init__.py +0 -0
  99. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/py/frequenz/api/common/v1alpha8/metrics/__init__.py +0 -0
  100. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/py/frequenz/api/common/v1alpha8/microgrid/__init__.py +0 -0
  101. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/py/frequenz/api/common/v1alpha8/microgrid/communication_components/__init__.py +0 -0
  102. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/py/frequenz/api/common/v1alpha8/microgrid/electrical_components/__init__.py +0 -0
  103. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/py/frequenz/api/common/v1alpha8/microgrid/sensors/__init__.py +0 -0
  104. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/py/frequenz/api/common/v1alpha8/pagination/__init__.py +0 -0
  105. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/py/frequenz/api/common/v1alpha8/streaming/__init__.py +0 -0
  106. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/py/frequenz/api/common/v1alpha8/types/__init__.py +0 -0
  107. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/py/frequenz_api_common.egg-info/SOURCES.txt +0 -0
  108. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/py/frequenz_api_common.egg-info/dependency_links.txt +0 -0
  109. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/py/frequenz_api_common.egg-info/top_level.txt +0 -0
  110. {frequenz_api_common-0.8.2 → frequenz_api_common-0.8.4}/setup.cfg +0 -0
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: frequenz-api-common
3
- Version: 0.8.2
3
+ Version: 0.8.4
4
4
  Summary: Frequenz common gRPC API and bindings
5
5
  Author-email: Frequenz Energy-as-a-Service GmbH <floss@frequenz.com>
6
- License: MIT
6
+ License-Expression: MIT
7
7
  Project-URL: Changelog, https://github.com/frequenz-floss/frequenz-api-common/releases
8
8
  Project-URL: Issues, https://github.com/frequenz-floss/frequenz-api-common/issues
9
9
  Project-URL: Repository, https://github.com/frequenz-floss/frequenz-api-common
@@ -11,7 +11,6 @@ Project-URL: Support, https://github.com/frequenz-floss/frequenz-api-common/disc
11
11
  Keywords: frequenz,python,api,grpc,protobuf,rpc,common
12
12
  Classifier: Development Status :: 3 - Alpha
13
13
  Classifier: Intended Audience :: Developers
14
- Classifier: License :: OSI Approved :: MIT License
15
14
  Classifier: Programming Language :: Python :: 3
16
15
  Classifier: Programming Language :: Python :: 3 :: Only
17
16
  Classifier: Topic :: Software Development :: Libraries
@@ -19,37 +18,38 @@ Classifier: Typing :: Typed
19
18
  Requires-Python: <4,>=3.11
20
19
  Description-Content-Type: text/markdown
21
20
  License-File: LICENSE
22
- Requires-Dist: protobuf<8,>=6.32.1
23
- Requires-Dist: grpcio<2,>=1.72.1
21
+ Requires-Dist: protobuf<8,>=6.33.6
22
+ Requires-Dist: grpcio<2,>=1.80.0
24
23
  Provides-Extra: dev-flake8
25
24
  Requires-Dist: flake8==7.3.0; extra == "dev-flake8"
25
+ Requires-Dist: flake8-datetimez==20.10.0; extra == "dev-flake8"
26
26
  Requires-Dist: flake8-docstrings==1.7.0; extra == "dev-flake8"
27
27
  Requires-Dist: flake8-pyproject==1.2.4; extra == "dev-flake8"
28
28
  Requires-Dist: pydoclint==0.8.3; extra == "dev-flake8"
29
29
  Requires-Dist: pydocstyle==6.3.0; extra == "dev-flake8"
30
30
  Provides-Extra: dev-formatting
31
- Requires-Dist: black==25.9.0; extra == "dev-formatting"
32
- Requires-Dist: isort==6.1.0; extra == "dev-formatting"
31
+ Requires-Dist: black==26.3.1; extra == "dev-formatting"
32
+ Requires-Dist: isort==8.0.1; extra == "dev-formatting"
33
33
  Provides-Extra: dev-mkdocs
34
34
  Requires-Dist: mike==1.1.2; extra == "dev-mkdocs"
35
- Requires-Dist: mkdocs-gen-files==0.5.0; extra == "dev-mkdocs"
36
- Requires-Dist: mkdocs-literate-nav==0.6.2; extra == "dev-mkdocs"
37
- Requires-Dist: mkdocs-material==9.6.21; extra == "dev-mkdocs"
38
- Requires-Dist: mkdocstrings[python]==0.30.1; extra == "dev-mkdocs"
39
- Requires-Dist: frequenz-repo-config[api]==0.14.0; extra == "dev-mkdocs"
35
+ Requires-Dist: mkdocs-gen-files==0.6.1; extra == "dev-mkdocs"
36
+ Requires-Dist: mkdocs-literate-nav==0.6.3; extra == "dev-mkdocs"
37
+ Requires-Dist: mkdocs-material==9.7.6; extra == "dev-mkdocs"
38
+ Requires-Dist: mkdocstrings[python]==1.0.4; extra == "dev-mkdocs"
39
+ Requires-Dist: frequenz-repo-config[api]==0.17.0; extra == "dev-mkdocs"
40
40
  Provides-Extra: dev-mypy
41
- Requires-Dist: mypy==1.18.2; extra == "dev-mypy"
41
+ Requires-Dist: mypy==1.20.2; extra == "dev-mypy"
42
42
  Requires-Dist: grpc-stubs==1.53.0.6; extra == "dev-mypy"
43
43
  Requires-Dist: frequenz-api-common[dev-mkdocs,dev-noxfile,dev-pytest]; extra == "dev-mypy"
44
44
  Provides-Extra: dev-noxfile
45
- Requires-Dist: nox==2025.10.16; extra == "dev-noxfile"
46
- Requires-Dist: frequenz-repo-config[api]==0.14.0; extra == "dev-noxfile"
45
+ Requires-Dist: nox==2026.4.10; extra == "dev-noxfile"
46
+ Requires-Dist: frequenz-repo-config[api]==0.17.0; extra == "dev-noxfile"
47
47
  Provides-Extra: dev-pylint
48
- Requires-Dist: pylint==3.3.8; extra == "dev-pylint"
48
+ Requires-Dist: pylint==4.0.5; extra == "dev-pylint"
49
49
  Requires-Dist: frequenz-api-common[dev-mkdocs,dev-noxfile,dev-pytest]; extra == "dev-pylint"
50
50
  Provides-Extra: dev-pytest
51
- Requires-Dist: pytest==8.4.2; extra == "dev-pytest"
52
- Requires-Dist: frequenz-repo-config[extra-lint-examples]==0.14.0; extra == "dev-pytest"
51
+ Requires-Dist: pytest==9.0.3; extra == "dev-pytest"
52
+ Requires-Dist: frequenz-repo-config[extra-lint-examples]==0.17.0; extra == "dev-pytest"
53
53
  Provides-Extra: dev
54
54
  Requires-Dist: frequenz-api-common[dev-flake8,dev-formatting,dev-mkdocs,dev-mypy,dev-noxfile,dev-pylint,dev-pytest]; extra == "dev"
55
55
  Dynamic: license-file
@@ -0,0 +1,9 @@
1
+ # Frequenz Common API Release Notes
2
+
3
+ ## Summary
4
+
5
+ This release includes a bug fix for a typo in the enum `v1alpha8::microgrid::electrical_components::ElectricalComponentOperationalMode`.
6
+
7
+ ## Bug Fixes
8
+
9
+ - A typo in the enum `v1alpha8::microgrid::electrical_components::ElectricalComponentOperationalMode` has been fixed. The variant `ELECTRICAL_COMPONENT_OPERATIONAL_MODE_TELEMTRY` has been renamed to `ELECTRICAL_COMPONENT_OPERATIONAL_MODE_TELEMETRY`.
@@ -595,6 +595,30 @@ message ElectricalComponentCategorySpecificInfo {
595
595
  }
596
596
  }
597
597
 
598
+ // This enum represents the operational mode of an electrical component,
599
+ // indicating whether the component is active and operational, and whether it
600
+ // provides telemetry data, accepts control commands, or both.
601
+ enum ElectricalComponentOperationalMode {
602
+ // Default value when the operational mode is not explicitly set.
603
+ ELECTRICAL_COMPONENT_OPERATIONAL_MODE_UNSPECIFIED = 0;
604
+
605
+ // The component is inactive and not operational. It does not provide
606
+ // telemetry data, and it does not accept control commands.
607
+ ELECTRICAL_COMPONENT_OPERATIONAL_MODE_INACTIVE = 1;
608
+
609
+ // The component is active and operational. It only provides telemetry data,
610
+ // and it does not accept control commands.
611
+ ELECTRICAL_COMPONENT_OPERATIONAL_MODE_TELEMETRY_ONLY = 2;
612
+
613
+ // The component is active and operational. It only accepts control commands,
614
+ // and it does not provide telemetry data.
615
+ ELECTRICAL_COMPONENT_OPERATIONAL_MODE_CONTROL_ONLY = 3;
616
+
617
+ // The component is active and operational. It provides telemetry data and
618
+ // accepts control commands.
619
+ ELECTRICAL_COMPONENT_OPERATIONAL_MODE_CONTROL_AND_TELEMETRY = 4;
620
+ }
621
+
598
622
  // Microgrid electrical component details.
599
623
  message ElectricalComponent {
600
624
  // The component ID.
@@ -613,16 +637,33 @@ message ElectricalComponent {
613
637
  ElectricalComponentCategorySpecificInfo category_specific_info = 5;
614
638
 
615
639
  // The component manufacturer.
616
- string manufacturer = 6;
640
+ //
641
+ // Note that this field is deprecated and should not be used.
642
+ // Please use the `model` field instead, which includes both the manufacturer
643
+ // and the model name.
644
+ string manufacturer = 6 [deprecated = true];
617
645
 
618
646
  // The model name of the component.
619
- string model_name = 7;
647
+ //
648
+ // Note that this field is deprecated and should not be used.
649
+ // Please use the `model` field instead, which includes both the manufacturer
650
+ // and the model name.
651
+ string model_name = 7 [deprecated = true];
620
652
 
621
653
  // The operational lifetime of the component.
622
654
  frequenz.api.common.v1alpha8.microgrid.Lifetime operational_lifetime = 8;
623
655
 
624
656
  // List of rated bounds present for the component identified by Metric.
625
657
  repeated MetricConfigBounds metric_config_bounds = 9;
658
+
659
+ // The operational mode of the component, indicating whether the component is
660
+ // active and operational, and whether it provides telemetry data, accepts
661
+ // control commands, or both.
662
+ ElectricalComponentOperationalMode operational_mode = 10;
663
+
664
+ // The model name of the electrical component.
665
+ // Includes both the manufacturer and the model name.
666
+ string model = 11;
626
667
  }
627
668
 
628
669
  // ElectricalComponentConnection describes a single electrical link between two
@@ -55,14 +55,26 @@ message Sensor {
55
55
  // An optional name for the sensor.
56
56
  string name = 3;
57
57
 
58
- // The sensor manufacturer.
59
- string manufacturer = 5;
58
+ // The component manufacturer.
59
+ //
60
+ // Note that this field is deprecated and should not be used.
61
+ // Please use the `model` field instead, which includes both the manufacturer
62
+ // and the model name.
63
+ string manufacturer = 5 [deprecated = true];
60
64
 
61
- // The model name of the sensor.
62
- string model_name = 6;
65
+ // The model name of the component.
66
+ //
67
+ // Note that this field is deprecated and should not be used.
68
+ // Please use the `model` field instead, which includes both the manufacturer
69
+ // and the model name.
70
+ string model_name = 6 [deprecated = true];
63
71
 
64
72
  // The operational lifetime of the sensor.
65
73
  frequenz.api.common.v1alpha8.microgrid.Lifetime operational_lifetime = 7;
74
+
75
+ // The model name of the electrical component.
76
+ // Includes both the manufacturer and the model name.
77
+ string model = 8;
66
78
  }
67
79
 
68
80
  // Represents an error or warning condition reported by a microgrid sensor.
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: frequenz-api-common
3
- Version: 0.8.2
3
+ Version: 0.8.4
4
4
  Summary: Frequenz common gRPC API and bindings
5
5
  Author-email: Frequenz Energy-as-a-Service GmbH <floss@frequenz.com>
6
- License: MIT
6
+ License-Expression: MIT
7
7
  Project-URL: Changelog, https://github.com/frequenz-floss/frequenz-api-common/releases
8
8
  Project-URL: Issues, https://github.com/frequenz-floss/frequenz-api-common/issues
9
9
  Project-URL: Repository, https://github.com/frequenz-floss/frequenz-api-common
@@ -11,7 +11,6 @@ Project-URL: Support, https://github.com/frequenz-floss/frequenz-api-common/disc
11
11
  Keywords: frequenz,python,api,grpc,protobuf,rpc,common
12
12
  Classifier: Development Status :: 3 - Alpha
13
13
  Classifier: Intended Audience :: Developers
14
- Classifier: License :: OSI Approved :: MIT License
15
14
  Classifier: Programming Language :: Python :: 3
16
15
  Classifier: Programming Language :: Python :: 3 :: Only
17
16
  Classifier: Topic :: Software Development :: Libraries
@@ -19,37 +18,38 @@ Classifier: Typing :: Typed
19
18
  Requires-Python: <4,>=3.11
20
19
  Description-Content-Type: text/markdown
21
20
  License-File: LICENSE
22
- Requires-Dist: protobuf<8,>=6.32.1
23
- Requires-Dist: grpcio<2,>=1.72.1
21
+ Requires-Dist: protobuf<8,>=6.33.6
22
+ Requires-Dist: grpcio<2,>=1.80.0
24
23
  Provides-Extra: dev-flake8
25
24
  Requires-Dist: flake8==7.3.0; extra == "dev-flake8"
25
+ Requires-Dist: flake8-datetimez==20.10.0; extra == "dev-flake8"
26
26
  Requires-Dist: flake8-docstrings==1.7.0; extra == "dev-flake8"
27
27
  Requires-Dist: flake8-pyproject==1.2.4; extra == "dev-flake8"
28
28
  Requires-Dist: pydoclint==0.8.3; extra == "dev-flake8"
29
29
  Requires-Dist: pydocstyle==6.3.0; extra == "dev-flake8"
30
30
  Provides-Extra: dev-formatting
31
- Requires-Dist: black==25.9.0; extra == "dev-formatting"
32
- Requires-Dist: isort==6.1.0; extra == "dev-formatting"
31
+ Requires-Dist: black==26.3.1; extra == "dev-formatting"
32
+ Requires-Dist: isort==8.0.1; extra == "dev-formatting"
33
33
  Provides-Extra: dev-mkdocs
34
34
  Requires-Dist: mike==1.1.2; extra == "dev-mkdocs"
35
- Requires-Dist: mkdocs-gen-files==0.5.0; extra == "dev-mkdocs"
36
- Requires-Dist: mkdocs-literate-nav==0.6.2; extra == "dev-mkdocs"
37
- Requires-Dist: mkdocs-material==9.6.21; extra == "dev-mkdocs"
38
- Requires-Dist: mkdocstrings[python]==0.30.1; extra == "dev-mkdocs"
39
- Requires-Dist: frequenz-repo-config[api]==0.14.0; extra == "dev-mkdocs"
35
+ Requires-Dist: mkdocs-gen-files==0.6.1; extra == "dev-mkdocs"
36
+ Requires-Dist: mkdocs-literate-nav==0.6.3; extra == "dev-mkdocs"
37
+ Requires-Dist: mkdocs-material==9.7.6; extra == "dev-mkdocs"
38
+ Requires-Dist: mkdocstrings[python]==1.0.4; extra == "dev-mkdocs"
39
+ Requires-Dist: frequenz-repo-config[api]==0.17.0; extra == "dev-mkdocs"
40
40
  Provides-Extra: dev-mypy
41
- Requires-Dist: mypy==1.18.2; extra == "dev-mypy"
41
+ Requires-Dist: mypy==1.20.2; extra == "dev-mypy"
42
42
  Requires-Dist: grpc-stubs==1.53.0.6; extra == "dev-mypy"
43
43
  Requires-Dist: frequenz-api-common[dev-mkdocs,dev-noxfile,dev-pytest]; extra == "dev-mypy"
44
44
  Provides-Extra: dev-noxfile
45
- Requires-Dist: nox==2025.10.16; extra == "dev-noxfile"
46
- Requires-Dist: frequenz-repo-config[api]==0.14.0; extra == "dev-noxfile"
45
+ Requires-Dist: nox==2026.4.10; extra == "dev-noxfile"
46
+ Requires-Dist: frequenz-repo-config[api]==0.17.0; extra == "dev-noxfile"
47
47
  Provides-Extra: dev-pylint
48
- Requires-Dist: pylint==3.3.8; extra == "dev-pylint"
48
+ Requires-Dist: pylint==4.0.5; extra == "dev-pylint"
49
49
  Requires-Dist: frequenz-api-common[dev-mkdocs,dev-noxfile,dev-pytest]; extra == "dev-pylint"
50
50
  Provides-Extra: dev-pytest
51
- Requires-Dist: pytest==8.4.2; extra == "dev-pytest"
52
- Requires-Dist: frequenz-repo-config[extra-lint-examples]==0.14.0; extra == "dev-pytest"
51
+ Requires-Dist: pytest==9.0.3; extra == "dev-pytest"
52
+ Requires-Dist: frequenz-repo-config[extra-lint-examples]==0.17.0; extra == "dev-pytest"
53
53
  Provides-Extra: dev
54
54
  Requires-Dist: frequenz-api-common[dev-flake8,dev-formatting,dev-mkdocs,dev-mypy,dev-noxfile,dev-pylint,dev-pytest]; extra == "dev"
55
55
  Dynamic: license-file
@@ -1,41 +1,42 @@
1
- protobuf<8,>=6.32.1
2
- grpcio<2,>=1.72.1
1
+ protobuf<8,>=6.33.6
2
+ grpcio<2,>=1.80.0
3
3
 
4
4
  [dev]
5
5
  frequenz-api-common[dev-flake8,dev-formatting,dev-mkdocs,dev-mypy,dev-noxfile,dev-pylint,dev-pytest]
6
6
 
7
7
  [dev-flake8]
8
8
  flake8==7.3.0
9
+ flake8-datetimez==20.10.0
9
10
  flake8-docstrings==1.7.0
10
11
  flake8-pyproject==1.2.4
11
12
  pydoclint==0.8.3
12
13
  pydocstyle==6.3.0
13
14
 
14
15
  [dev-formatting]
15
- black==25.9.0
16
- isort==6.1.0
16
+ black==26.3.1
17
+ isort==8.0.1
17
18
 
18
19
  [dev-mkdocs]
19
20
  mike==1.1.2
20
- mkdocs-gen-files==0.5.0
21
- mkdocs-literate-nav==0.6.2
22
- mkdocs-material==9.6.21
23
- mkdocstrings[python]==0.30.1
24
- frequenz-repo-config[api]==0.14.0
21
+ mkdocs-gen-files==0.6.1
22
+ mkdocs-literate-nav==0.6.3
23
+ mkdocs-material==9.7.6
24
+ mkdocstrings[python]==1.0.4
25
+ frequenz-repo-config[api]==0.17.0
25
26
 
26
27
  [dev-mypy]
27
- mypy==1.18.2
28
+ mypy==1.20.2
28
29
  grpc-stubs==1.53.0.6
29
30
  frequenz-api-common[dev-mkdocs,dev-noxfile,dev-pytest]
30
31
 
31
32
  [dev-noxfile]
32
- nox==2025.10.16
33
- frequenz-repo-config[api]==0.14.0
33
+ nox==2026.4.10
34
+ frequenz-repo-config[api]==0.17.0
34
35
 
35
36
  [dev-pylint]
36
- pylint==3.3.8
37
+ pylint==4.0.5
37
38
  frequenz-api-common[dev-mkdocs,dev-noxfile,dev-pytest]
38
39
 
39
40
  [dev-pytest]
40
- pytest==8.4.2
41
- frequenz-repo-config[extra-lint-examples]==0.14.0
41
+ pytest==9.0.3
42
+ frequenz-repo-config[extra-lint-examples]==0.17.0
@@ -3,16 +3,16 @@
3
3
 
4
4
  [build-system]
5
5
  requires = [
6
- "setuptools == 80.9.0",
7
- "setuptools_scm[toml] == 9.2.2",
8
- "frequenz-repo-config[api] == 0.14.0",
6
+ "setuptools == 82.0.1",
7
+ "setuptools_scm[toml] == 10.0.5",
8
+ "frequenz-repo-config[api] == 0.17.0",
9
9
  # We need to pin the protobuf, grpcio and grpcio-tools dependencies to make
10
10
  # sure the code is generated using the minimum supported versions, as older
11
11
  # versions can't work with code that was generated with newer versions.
12
12
  # https://protobuf.dev/support/cross-version-runtime-guarantee/#backwards
13
- "protobuf == 6.32.1",
14
- "grpcio-tools == 1.72.1",
15
- "grpcio == 1.72.1",
13
+ "protobuf == 6.33.6",
14
+ "grpcio-tools == 1.80.0",
15
+ "grpcio == 1.80.0",
16
16
  ]
17
17
  build-backend = "setuptools.build_meta"
18
18
 
@@ -20,12 +20,12 @@ build-backend = "setuptools.build_meta"
20
20
  name = "frequenz-api-common"
21
21
  description = "Frequenz common gRPC API and bindings"
22
22
  readme = "README.md"
23
- license = { text = "MIT" }
23
+ license = "MIT"
24
+ license-files = ["LICENSE"]
24
25
  keywords = ["frequenz", "python", "api", "grpc", "protobuf", "rpc", "common"]
25
26
  classifiers = [
26
27
  "Development Status :: 3 - Alpha",
27
28
  "Intended Audience :: Developers",
28
- "License :: OSI Approved :: MIT License",
29
29
  "Programming Language :: Python :: 3",
30
30
  "Programming Language :: Python :: 3 :: Only",
31
31
  "Topic :: Software Development :: Libraries",
@@ -36,11 +36,11 @@ dependencies = [
36
36
  # We can't widen beyond the current value unless we bump the minimum
37
37
  # requirements too because of protobuf cross-version runtime guarantees:
38
38
  # https://protobuf.dev/support/cross-version-runtime-guarantee/#major
39
- "protobuf >= 6.32.1, < 8", # Do not widen beyond 8!
39
+ "protobuf >= 6.33.6, < 8", # Do not widen beyond 8!
40
40
  # We couldn't find any document with a spec about the cross-version runtime
41
41
  # guarantee for grpcio, so unless we find one in the future, we'll assume
42
42
  # major version jumps are not compatible
43
- "grpcio >= 1.72.1, < 2", # Do not widen beyond 2!
43
+ "grpcio >= 1.80.0, < 2", # Do not widen beyond 2!
44
44
  ]
45
45
  dynamic = ["version"]
46
46
 
@@ -51,35 +51,36 @@ email = "floss@frequenz.com"
51
51
  [project.optional-dependencies]
52
52
  dev-flake8 = [
53
53
  "flake8 == 7.3.0",
54
+ "flake8-datetimez == 20.10.0",
54
55
  "flake8-docstrings == 1.7.0",
55
56
  "flake8-pyproject == 1.2.4", # For reading the flake8 config from pyproject.toml
56
57
  "pydoclint == 0.8.3",
57
58
  "pydocstyle == 6.3.0",
58
59
  ]
59
- dev-formatting = ["black == 25.9.0", "isort == 6.1.0"]
60
+ dev-formatting = ["black == 26.3.1", "isort == 8.0.1"]
60
61
  dev-mkdocs = [
61
62
  "mike == 1.1.2",
62
- "mkdocs-gen-files == 0.5.0",
63
- "mkdocs-literate-nav == 0.6.2",
64
- "mkdocs-material == 9.6.21",
65
- "mkdocstrings[python] == 0.30.1",
66
- "frequenz-repo-config[api] == 0.14.0",
63
+ "mkdocs-gen-files == 0.6.1",
64
+ "mkdocs-literate-nav == 0.6.3",
65
+ "mkdocs-material == 9.7.6",
66
+ "mkdocstrings[python] == 1.0.4",
67
+ "frequenz-repo-config[api] == 0.17.0",
67
68
  ]
68
69
  dev-mypy = [
69
- "mypy == 1.18.2",
70
+ "mypy == 1.20.2",
70
71
  "grpc-stubs == 1.53.0.6",
71
72
  # For checking the noxfile, docs/ script, and tests
72
73
  "frequenz-api-common[dev-mkdocs,dev-noxfile,dev-pytest]",
73
74
  ]
74
- dev-noxfile = ["nox == 2025.10.16", "frequenz-repo-config[api] == 0.14.0"]
75
+ dev-noxfile = ["nox == 2026.4.10", "frequenz-repo-config[api] == 0.17.0"]
75
76
  dev-pylint = [
76
- "pylint == 3.3.8",
77
+ "pylint == 4.0.5",
77
78
  # For checking the noxfile, docs/ script, and tests
78
79
  "frequenz-api-common[dev-mkdocs,dev-noxfile,dev-pytest]",
79
80
  ]
80
81
  dev-pytest = [
81
- "pytest == 8.4.2",
82
- "frequenz-repo-config[extra-lint-examples] == 0.14.0",
82
+ "pytest == 9.0.3",
83
+ "frequenz-repo-config[extra-lint-examples] == 0.17.0",
83
84
  ]
84
85
  dev = [
85
86
  "frequenz-api-common[dev-mkdocs,dev-flake8,dev-formatting,dev-mkdocs,dev-mypy,dev-noxfile,dev-pylint,dev-pytest]",
@@ -1,5 +0,0 @@
1
- # Frequenz Common API Release Notes
2
-
3
- ## New Features
4
-
5
- A new component category for electric steam boilers has been added. The use case we're adding this for is a hybrid (gas/electric) steam boiler that may switch/blend between power sources and takes _available_ electric power into consideration.