frequenz-api-common 0.8.1__tar.gz → 0.8.3__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.1 → frequenz_api_common-0.8.3}/PKG-INFO +20 -20
  2. frequenz_api_common-0.8.3/RELEASE_NOTES.md +25 -0
  3. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1alpha8/microgrid/electrical_components/electrical_components.proto +50 -2
  4. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1alpha8/microgrid/sensors/sensors.proto +16 -4
  5. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/py/frequenz_api_common.egg-info/PKG-INFO +20 -20
  6. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/py/frequenz_api_common.egg-info/requires.txt +18 -17
  7. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/pyproject.toml +24 -23
  8. frequenz_api_common-0.8.1/RELEASE_NOTES.md +0 -7
  9. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/LICENSE +0 -0
  10. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/MANIFEST.in +0 -0
  11. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/README.md +0 -0
  12. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/components.proto +0 -0
  13. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/location.proto +0 -0
  14. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/metrics/electrical.proto +0 -0
  15. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/metrics.proto +0 -0
  16. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1/grid/delivery_area.proto +0 -0
  17. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1/grid/delivery_duration.proto +0 -0
  18. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1/location.proto +0 -0
  19. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1/market/energy.proto +0 -0
  20. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1/market/power.proto +0 -0
  21. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1/market/price.proto +0 -0
  22. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1/metrics/bounds.proto +0 -0
  23. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1/metrics/metric_sample.proto +0 -0
  24. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1/microgrid/components/battery.proto +0 -0
  25. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1/microgrid/components/components.proto +0 -0
  26. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1/microgrid/components/ev_charger.proto +0 -0
  27. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1/microgrid/components/fuse.proto +0 -0
  28. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1/microgrid/components/grid.proto +0 -0
  29. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1/microgrid/components/inverter.proto +0 -0
  30. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1/microgrid/components/transformer.proto +0 -0
  31. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1/microgrid/lifetime.proto +0 -0
  32. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1/microgrid/microgrid.proto +0 -0
  33. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1/microgrid/sensors/sensors.proto +0 -0
  34. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1/pagination/pagination_info.proto +0 -0
  35. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1/pagination/pagination_params.proto +0 -0
  36. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1/types/decimal.proto +0 -0
  37. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1alpha7/grid/delivery_area.proto +0 -0
  38. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1alpha7/grid/delivery_duration.proto +0 -0
  39. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1alpha7/market/energy.proto +0 -0
  40. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1alpha7/market/power.proto +0 -0
  41. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1alpha7/market/price.proto +0 -0
  42. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1alpha7/metrics/bounds.proto +0 -0
  43. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1alpha7/metrics/metrics.proto +0 -0
  44. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1alpha7/microgrid/communication_components/communication_components.proto +0 -0
  45. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1alpha7/microgrid/electrical_components/electrical_components.proto +0 -0
  46. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1alpha7/microgrid/lifetime.proto +0 -0
  47. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1alpha7/microgrid/microgrid.proto +0 -0
  48. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1alpha7/microgrid/sensors/sensors.proto +0 -0
  49. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1alpha7/pagination/pagination_info.proto +0 -0
  50. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1alpha7/pagination/pagination_params.proto +0 -0
  51. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1alpha7/streaming/event.proto +0 -0
  52. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1alpha7/type/decimal.proto +0 -0
  53. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1alpha7/type/interval.proto +0 -0
  54. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1alpha7/type/location.proto +0 -0
  55. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1alpha8/grid/delivery_area.proto +0 -0
  56. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1alpha8/grid/delivery_duration.proto +0 -0
  57. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1alpha8/gridpool/gridpool.proto +0 -0
  58. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1alpha8/market/energy.proto +0 -0
  59. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1alpha8/market/power.proto +0 -0
  60. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1alpha8/market/price.proto +0 -0
  61. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1alpha8/metrics/bounds.proto +0 -0
  62. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1alpha8/metrics/metrics.proto +0 -0
  63. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1alpha8/microgrid/communication_components/communication_components.proto +0 -0
  64. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1alpha8/microgrid/lifetime.proto +0 -0
  65. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1alpha8/microgrid/microgrid.proto +0 -0
  66. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1alpha8/pagination/pagination_info.proto +0 -0
  67. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1alpha8/pagination/pagination_params.proto +0 -0
  68. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1alpha8/streaming/event.proto +0 -0
  69. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1alpha8/types/decimal.proto +0 -0
  70. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1alpha8/types/interval.proto +0 -0
  71. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/proto/frequenz/api/common/v1alpha8/types/location.proto +0 -0
  72. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/py/frequenz/api/common/__init__.py +0 -0
  73. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/py/frequenz/api/common/metrics/__init__.py +0 -0
  74. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/py/frequenz/api/common/py.typed +0 -0
  75. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/py/frequenz/api/common/v1/__init__.py +0 -0
  76. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/py/frequenz/api/common/v1/grid/__init__.py +0 -0
  77. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/py/frequenz/api/common/v1/market/__init__.py +0 -0
  78. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/py/frequenz/api/common/v1/metrics/__init__.py +0 -0
  79. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/py/frequenz/api/common/v1/microgrid/__init__.py +0 -0
  80. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/py/frequenz/api/common/v1/microgrid/components/__init__.py +0 -0
  81. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/py/frequenz/api/common/v1/microgrid/sensors/__init__.py +0 -0
  82. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/py/frequenz/api/common/v1/pagination/__init__.py +0 -0
  83. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/py/frequenz/api/common/v1/types/__init__.py +0 -0
  84. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/py/frequenz/api/common/v1alpha7/__init__.py +0 -0
  85. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/py/frequenz/api/common/v1alpha7/grid/__init__.py +0 -0
  86. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/py/frequenz/api/common/v1alpha7/market/__init__.py +0 -0
  87. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/py/frequenz/api/common/v1alpha7/metrics/__init__.py +0 -0
  88. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/py/frequenz/api/common/v1alpha7/microgrid/__init__.py +0 -0
  89. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/py/frequenz/api/common/v1alpha7/microgrid/communication_components/__init__.py +0 -0
  90. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/py/frequenz/api/common/v1alpha7/microgrid/electrical_components/__init__.py +0 -0
  91. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/py/frequenz/api/common/v1alpha7/microgrid/sensors/__init__.py +0 -0
  92. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/py/frequenz/api/common/v1alpha7/pagination/__init__.py +0 -0
  93. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/py/frequenz/api/common/v1alpha7/streaming/__init__.py +0 -0
  94. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/py/frequenz/api/common/v1alpha7/type/__init__.py +0 -0
  95. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/py/frequenz/api/common/v1alpha8/__init__.py +0 -0
  96. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/py/frequenz/api/common/v1alpha8/grid/__init__.py +0 -0
  97. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/py/frequenz/api/common/v1alpha8/gridpool/__init__.py +0 -0
  98. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/py/frequenz/api/common/v1alpha8/market/__init__.py +0 -0
  99. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/py/frequenz/api/common/v1alpha8/metrics/__init__.py +0 -0
  100. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/py/frequenz/api/common/v1alpha8/microgrid/__init__.py +0 -0
  101. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/py/frequenz/api/common/v1alpha8/microgrid/communication_components/__init__.py +0 -0
  102. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/py/frequenz/api/common/v1alpha8/microgrid/electrical_components/__init__.py +0 -0
  103. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/py/frequenz/api/common/v1alpha8/microgrid/sensors/__init__.py +0 -0
  104. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/py/frequenz/api/common/v1alpha8/pagination/__init__.py +0 -0
  105. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/py/frequenz/api/common/v1alpha8/streaming/__init__.py +0 -0
  106. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/py/frequenz/api/common/v1alpha8/types/__init__.py +0 -0
  107. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/py/frequenz_api_common.egg-info/SOURCES.txt +0 -0
  108. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/py/frequenz_api_common.egg-info/dependency_links.txt +0 -0
  109. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/py/frequenz_api_common.egg-info/top_level.txt +0 -0
  110. {frequenz_api_common-0.8.1 → frequenz_api_common-0.8.3}/setup.cfg +0 -0
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: frequenz-api-common
3
- Version: 0.8.1
3
+ Version: 0.8.3
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.31.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
- Requires-Dist: flake8-pyproject==1.2.3; extra == "dev-flake8"
28
- Requires-Dist: pydoclint==0.7.3; extra == "dev-flake8"
27
+ Requires-Dist: flake8-pyproject==1.2.4; extra == "dev-flake8"
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.13.5; 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.5.1; extra == "dev-noxfile"
46
- Requires-Dist: frequenz-repo-config[api]==0.13.5; 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.13.5; 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,25 @@
1
+ # Frequenz Common API Release Notes
2
+
3
+ ## Summary
4
+
5
+ Added `model` and `operational_mode` fields to electrical components and sensors, deprecating separate `manufacturer` and `model_number` fields.
6
+
7
+ ## Upgrading
8
+
9
+ - The following fields have been deprecated in the package `v1alpha8`, and will be removed in a future release:
10
+ - `microgrid.electrical_components.ElectricalComponent.manufacturer` (string): The manufacturer of the electrical component.
11
+ - `microgrid.electrical_components.ElectricalComponent.model_number` (string): The model number of the electrical component.
12
+ - `microgrid.sensors.Sensor.manufacturer` (string): The manufacturer of the sensor.
13
+ - `microgrid.sensors.Sensor.model_number` (string): The model number of the sensor.
14
+
15
+ ## New Features
16
+
17
+ - The following new entities have been added to the package `v1alpha8`:
18
+ - Enum `microgrid.electrical_components.ElectricalComponentOperationalMode`: Enumeration of the possible operational modes of an electrical component - inactive, telemetry-only, control-only, and control-and-telemetry.
19
+ - Field `microgrid.electrical_components.ElectricalComponent.operational_mode`: Defines if an electrical component is active, if it provides telemetry data, and if it accepts control commands.
20
+ - Field `microgrid.electrical_components.ElectricalComponent.model`: The model name of the electrical component, including the manufacturer and model number.
21
+ - Field `microgrid.sensors.Sensor.model`: The model name of the sensor, including the manufacturer and model number.
22
+
23
+ ## Bug Fixes
24
+
25
+ - None
@@ -174,6 +174,13 @@ enum ElectricalComponentCategory {
174
174
  // regulation, and status.
175
175
  // Examples: Siemens Gamesa SG, Vestas V series, GE Cypress, Nordex Delta.
176
176
  ELECTRICAL_COMPONENT_CATEGORY_WIND_TURBINE = 18;
177
+
178
+ // A steam boiler.
179
+ //
180
+ // Generates steam from electricity.
181
+ // Hybrid steam boilers may switch/blend between electricity and gas power.
182
+ // Examples: Bosch ELSB4x16.
183
+ ELECTRICAL_COMPONENT_CATEGORY_STEAM_BOILER = 19;
177
184
  }
178
185
 
179
186
  // Enum to represent the various states that a component can be in.
@@ -588,6 +595,30 @@ message ElectricalComponentCategorySpecificInfo {
588
595
  }
589
596
  }
590
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_TELEMTRY_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
+
591
622
  // Microgrid electrical component details.
592
623
  message ElectricalComponent {
593
624
  // The component ID.
@@ -606,16 +637,33 @@ message ElectricalComponent {
606
637
  ElectricalComponentCategorySpecificInfo category_specific_info = 5;
607
638
 
608
639
  // The component manufacturer.
609
- 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];
610
645
 
611
646
  // The model name of the component.
612
- 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];
613
652
 
614
653
  // The operational lifetime of the component.
615
654
  frequenz.api.common.v1alpha8.microgrid.Lifetime operational_lifetime = 8;
616
655
 
617
656
  // List of rated bounds present for the component identified by Metric.
618
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;
619
667
  }
620
668
 
621
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.1
3
+ Version: 0.8.3
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.31.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
- Requires-Dist: flake8-pyproject==1.2.3; extra == "dev-flake8"
28
- Requires-Dist: pydoclint==0.7.3; extra == "dev-flake8"
27
+ Requires-Dist: flake8-pyproject==1.2.4; extra == "dev-flake8"
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.13.5; 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.5.1; extra == "dev-noxfile"
46
- Requires-Dist: frequenz-repo-config[api]==0.13.5; 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.13.5; 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.31.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
- flake8-pyproject==1.2.3
11
- pydoclint==0.7.3
11
+ flake8-pyproject==1.2.4
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.13.5
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.5.1
33
- frequenz-repo-config[api]==0.13.5
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.13.5
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.0",
8
- "frequenz-repo-config[api] == 0.13.5",
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.31.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.31.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
- "flake8-pyproject == 1.2.3", # For reading the flake8 config from pyproject.toml
56
- "pydoclint == 0.7.3",
56
+ "flake8-pyproject == 1.2.4", # For reading the flake8 config from pyproject.toml
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.13.5",
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.5.1", "frequenz-repo-config[api] == 0.13.5"]
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.13.5",
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,7 +0,0 @@
1
- # Frequenz Common API Release Notes
2
-
3
- ## Summary
4
-
5
- ## Features
6
-
7
- - Add `gridpool.Gridpool` message type to `v1alpha8`, defining a gridpool as an assigned group of microgrids for the purpose of energy trading.