frequenz-gridpool 0.6.2__tar.gz → 0.6.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.
- {frequenz_gridpool-0.6.2/src/frequenz_gridpool.egg-info → frequenz_gridpool-0.6.4}/PKG-INFO +8 -8
- frequenz_gridpool-0.6.4/RELEASE_NOTES.md +28 -0
- {frequenz_gridpool-0.6.2 → frequenz_gridpool-0.6.4}/pyproject.toml +9 -9
- {frequenz_gridpool-0.6.2 → frequenz_gridpool-0.6.4}/src/frequenz/gridpool/config/microgrid.py +49 -4
- {frequenz_gridpool-0.6.2 → frequenz_gridpool-0.6.4/src/frequenz_gridpool.egg-info}/PKG-INFO +8 -8
- {frequenz_gridpool-0.6.2 → frequenz_gridpool-0.6.4}/src/frequenz_gridpool.egg-info/requires.txt +7 -7
- {frequenz_gridpool-0.6.2 → frequenz_gridpool-0.6.4}/src/frequenz_gridpool.egg-info/scm_file_list.json +44 -44
- frequenz_gridpool-0.6.4/src/frequenz_gridpool.egg-info/scm_version.json +8 -0
- frequenz_gridpool-0.6.2/RELEASE_NOTES.md +0 -20
- frequenz_gridpool-0.6.2/src/frequenz_gridpool.egg-info/scm_version.json +0 -8
- {frequenz_gridpool-0.6.2 → frequenz_gridpool-0.6.4}/LICENSE +0 -0
- {frequenz_gridpool-0.6.2 → frequenz_gridpool-0.6.4}/MANIFEST.in +0 -0
- {frequenz_gridpool-0.6.2 → frequenz_gridpool-0.6.4}/README.md +0 -0
- {frequenz_gridpool-0.6.2 → frequenz_gridpool-0.6.4}/setup.cfg +0 -0
- {frequenz_gridpool-0.6.2 → frequenz_gridpool-0.6.4}/src/frequenz/gridpool/__init__.py +0 -0
- {frequenz_gridpool-0.6.2 → frequenz_gridpool-0.6.4}/src/frequenz/gridpool/_graph_generator.py +0 -0
- {frequenz_gridpool-0.6.2 → frequenz_gridpool-0.6.4}/src/frequenz/gridpool/cli/__init__.py +0 -0
- {frequenz_gridpool-0.6.2 → frequenz_gridpool-0.6.4}/src/frequenz/gridpool/cli/__main__.py +0 -0
- {frequenz_gridpool-0.6.2 → frequenz_gridpool-0.6.4}/src/frequenz/gridpool/cli/_dump_config.py +0 -0
- {frequenz_gridpool-0.6.2 → frequenz_gridpool-0.6.4}/src/frequenz/gridpool/cli/_patch_config.py +0 -0
- {frequenz_gridpool-0.6.2 → frequenz_gridpool-0.6.4}/src/frequenz/gridpool/cli/_render_graph.py +0 -0
- {frequenz_gridpool-0.6.2 → frequenz_gridpool-0.6.4}/src/frequenz/gridpool/config/__init__.py +0 -0
- {frequenz_gridpool-0.6.2 → frequenz_gridpool-0.6.4}/src/frequenz/gridpool/config/load.py +0 -0
- {frequenz_gridpool-0.6.2 → frequenz_gridpool-0.6.4}/src/frequenz/gridpool/conftest.py +0 -0
- {frequenz_gridpool-0.6.2 → frequenz_gridpool-0.6.4}/src/frequenz/gridpool/py.typed +0 -0
- {frequenz_gridpool-0.6.2 → frequenz_gridpool-0.6.4}/src/frequenz_gridpool.egg-info/SOURCES.txt +0 -0
- {frequenz_gridpool-0.6.2 → frequenz_gridpool-0.6.4}/src/frequenz_gridpool.egg-info/dependency_links.txt +0 -0
- {frequenz_gridpool-0.6.2 → frequenz_gridpool-0.6.4}/src/frequenz_gridpool.egg-info/entry_points.txt +0 -0
- {frequenz_gridpool-0.6.2 → frequenz_gridpool-0.6.4}/src/frequenz_gridpool.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: frequenz-gridpool
|
|
3
|
-
Version: 0.6.
|
|
3
|
+
Version: 0.6.4
|
|
4
4
|
Summary: High-level interface to grid pools for the Frequenz platform.
|
|
5
5
|
Author-email: Frequenz Energy-as-a-Service GmbH <floss@frequenz.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -22,7 +22,7 @@ License-File: LICENSE
|
|
|
22
22
|
Requires-Dist: marshmallow-dataclass<9,>=8.7.1
|
|
23
23
|
Requires-Dist: typing-extensions<5,>=4.14.1
|
|
24
24
|
Requires-Dist: frequenz-microgrid-component-graph<0.6,>=0.5.0
|
|
25
|
-
Requires-Dist: frequenz-client-assets<0.
|
|
25
|
+
Requires-Dist: frequenz-client-assets<0.6,>=0.5.0
|
|
26
26
|
Provides-Extra: cli
|
|
27
27
|
Requires-Dist: asyncclick<9,>=8.3.0.4; extra == "cli"
|
|
28
28
|
Requires-Dist: tomlkit<1,>=0.13.0; extra == "cli"
|
|
@@ -35,7 +35,7 @@ Requires-Dist: flake8==7.3.0; extra == "dev-flake8"
|
|
|
35
35
|
Requires-Dist: flake8-datetimez==20.10.0; extra == "dev-flake8"
|
|
36
36
|
Requires-Dist: flake8-docstrings==1.7.0; extra == "dev-flake8"
|
|
37
37
|
Requires-Dist: flake8-pyproject==1.2.4; extra == "dev-flake8"
|
|
38
|
-
Requires-Dist: pydoclint==0.9.
|
|
38
|
+
Requires-Dist: pydoclint==0.9.1; extra == "dev-flake8"
|
|
39
39
|
Requires-Dist: pydocstyle==6.3.0; extra == "dev-flake8"
|
|
40
40
|
Provides-Extra: dev-formatting
|
|
41
41
|
Requires-Dist: black==26.5.1; extra == "dev-formatting"
|
|
@@ -47,17 +47,17 @@ Requires-Dist: mike==2.2.0; extra == "dev-mkdocs"
|
|
|
47
47
|
Requires-Dist: mkdocs-gen-files==0.6.1; extra == "dev-mkdocs"
|
|
48
48
|
Requires-Dist: mkdocs-literate-nav==0.6.3; extra == "dev-mkdocs"
|
|
49
49
|
Requires-Dist: mkdocs-macros-plugin==1.5.0; extra == "dev-mkdocs"
|
|
50
|
-
Requires-Dist: mkdocs-material==9.7.
|
|
51
|
-
Requires-Dist: mkdocstrings[python]==1.0.
|
|
50
|
+
Requires-Dist: mkdocs-material==9.7.7; extra == "dev-mkdocs"
|
|
51
|
+
Requires-Dist: mkdocstrings[python]==1.0.6; extra == "dev-mkdocs"
|
|
52
52
|
Requires-Dist: mkdocstrings-python==2.0.5; extra == "dev-mkdocs"
|
|
53
53
|
Requires-Dist: frequenz-repo-config[lib]==0.18.0; extra == "dev-mkdocs"
|
|
54
54
|
Provides-Extra: dev-mypy
|
|
55
|
-
Requires-Dist: mypy==2.
|
|
55
|
+
Requires-Dist: mypy==2.3.0; extra == "dev-mypy"
|
|
56
56
|
Requires-Dist: types-networkx>=3.6.1.20251220; extra == "dev-mypy"
|
|
57
|
-
Requires-Dist: types-Markdown==3.10.2.
|
|
57
|
+
Requires-Dist: types-Markdown==3.10.2.20260712; extra == "dev-mypy"
|
|
58
58
|
Requires-Dist: frequenz-gridpool[dev-mkdocs,dev-noxfile,dev-pytest]; extra == "dev-mypy"
|
|
59
59
|
Provides-Extra: dev-noxfile
|
|
60
|
-
Requires-Dist: nox==2026.
|
|
60
|
+
Requires-Dist: nox==2026.7.11; extra == "dev-noxfile"
|
|
61
61
|
Requires-Dist: frequenz-repo-config[lib]==0.18.0; extra == "dev-noxfile"
|
|
62
62
|
Provides-Extra: dev-pylint
|
|
63
63
|
Requires-Dist: frequenz-gridpool[dev-mkdocs,dev-noxfile,dev-pytest]; extra == "dev-pylint"
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Frequenz Gridpool Library Release Notes
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
|
|
5
|
+
<!-- Here goes a general summary of what this release is about -->
|
|
6
|
+
|
|
7
|
+
## Upgrading
|
|
8
|
+
|
|
9
|
+
- Microgrid config files should nest their entries under `assets.microgrids`:
|
|
10
|
+
|
|
11
|
+
```toml
|
|
12
|
+
assets.microgrids.23.meta.name = "..."
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Bare microgrid IDs at the top level still load but log a deprecation warning,
|
|
16
|
+
and support for them will be removed. The namespace keeps generated inventory
|
|
17
|
+
data apart from operator settings under `app.*`, so a config file can carry
|
|
18
|
+
both without its keys colliding.
|
|
19
|
+
|
|
20
|
+
A file mixing both layouts is rejected.
|
|
21
|
+
|
|
22
|
+
## New Features
|
|
23
|
+
|
|
24
|
+
<!-- Here goes the main new features and examples or instructions on how to use them -->
|
|
25
|
+
|
|
26
|
+
## Bug Fixes
|
|
27
|
+
|
|
28
|
+
<!-- Here goes notable bug fixes that are worth a special mention or explanation -->
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
|
|
4
4
|
[build-system]
|
|
5
5
|
requires = [
|
|
6
|
-
"setuptools ==
|
|
7
|
-
"setuptools_scm[toml] == 10.2.
|
|
6
|
+
"setuptools == 83.0.0",
|
|
7
|
+
"setuptools_scm[toml] == 10.2.1",
|
|
8
8
|
"frequenz-repo-config[lib] == 0.18.0",
|
|
9
9
|
]
|
|
10
10
|
build-backend = "setuptools.build_meta"
|
|
@@ -29,7 +29,7 @@ dependencies = [
|
|
|
29
29
|
"marshmallow-dataclass >= 8.7.1, < 9",
|
|
30
30
|
"typing-extensions >= 4.14.1, < 5",
|
|
31
31
|
"frequenz-microgrid-component-graph >= 0.5.0, < 0.6",
|
|
32
|
-
"frequenz-client-assets >= 0.
|
|
32
|
+
"frequenz-client-assets >= 0.5.0, < 0.6",
|
|
33
33
|
]
|
|
34
34
|
dynamic = ["version"]
|
|
35
35
|
|
|
@@ -56,7 +56,7 @@ dev-flake8 = [
|
|
|
56
56
|
"flake8-datetimez == 20.10.0",
|
|
57
57
|
"flake8-docstrings == 1.7.0",
|
|
58
58
|
"flake8-pyproject == 1.2.4", # For reading the flake8 config from pyproject.toml
|
|
59
|
-
"pydoclint == 0.9.
|
|
59
|
+
"pydoclint == 0.9.1",
|
|
60
60
|
"pydocstyle == 6.3.0",
|
|
61
61
|
]
|
|
62
62
|
dev-formatting = ["black == 26.5.1", "isort == 8.0.1"]
|
|
@@ -67,20 +67,20 @@ dev-mkdocs = [
|
|
|
67
67
|
"mkdocs-gen-files == 0.6.1",
|
|
68
68
|
"mkdocs-literate-nav == 0.6.3",
|
|
69
69
|
"mkdocs-macros-plugin == 1.5.0",
|
|
70
|
-
"mkdocs-material == 9.7.
|
|
71
|
-
"mkdocstrings[python] == 1.0.
|
|
70
|
+
"mkdocs-material == 9.7.7",
|
|
71
|
+
"mkdocstrings[python] == 1.0.6",
|
|
72
72
|
"mkdocstrings-python == 2.0.5",
|
|
73
73
|
"frequenz-repo-config[lib] == 0.18.0",
|
|
74
74
|
]
|
|
75
75
|
dev-mypy = [
|
|
76
|
-
"mypy == 2.
|
|
76
|
+
"mypy == 2.3.0",
|
|
77
77
|
"types-networkx>=3.6.1.20251220",
|
|
78
|
-
"types-Markdown == 3.10.2.
|
|
78
|
+
"types-Markdown == 3.10.2.20260712",
|
|
79
79
|
# For checking the noxfile, docs/ script, and tests
|
|
80
80
|
"frequenz-gridpool[dev-mkdocs,dev-noxfile,dev-pytest]",
|
|
81
81
|
]
|
|
82
82
|
dev-noxfile = [
|
|
83
|
-
"nox == 2026.
|
|
83
|
+
"nox == 2026.7.11",
|
|
84
84
|
"frequenz-repo-config[lib] == 0.18.0",
|
|
85
85
|
]
|
|
86
86
|
dev-pylint = [
|
{frequenz_gridpool-0.6.2 → frequenz_gridpool-0.6.4}/src/frequenz/gridpool/config/microgrid.py
RENAMED
|
@@ -301,18 +301,18 @@ class MicrogridConfig:
|
|
|
301
301
|
"""Load microgrid configurations from table entries.
|
|
302
302
|
|
|
303
303
|
Args:
|
|
304
|
-
data: The
|
|
304
|
+
data: The table mapping microgrid IDs to their entries.
|
|
305
305
|
|
|
306
306
|
Returns:
|
|
307
307
|
A dict mapping microgrid IDs to MicrogridConfig instances.
|
|
308
308
|
|
|
309
309
|
Raises:
|
|
310
|
-
ValueError: If
|
|
310
|
+
ValueError: If the keys are not numeric microgrid IDs
|
|
311
311
|
or if there is a microgrid ID mismatch.
|
|
312
312
|
TypeError: If microgrid data is not a dict.
|
|
313
313
|
"""
|
|
314
314
|
if not all(str(k).isdigit() for k in data.keys()):
|
|
315
|
-
raise ValueError("All
|
|
315
|
+
raise ValueError("All microgrid keys must be numeric microgrid IDs.")
|
|
316
316
|
|
|
317
317
|
mgrids = {}
|
|
318
318
|
for mid, entry in data.items():
|
|
@@ -337,6 +337,51 @@ class MicrogridConfig:
|
|
|
337
337
|
|
|
338
338
|
return mgrids
|
|
339
339
|
|
|
340
|
+
@classmethod
|
|
341
|
+
def _microgrid_table(cls, data: dict[str, Any], source: str) -> dict[str, Any]:
|
|
342
|
+
"""Pick the microgrid entries out of a parsed config document.
|
|
343
|
+
|
|
344
|
+
Entries live under `assets.microgrids`. A document without an `assets`
|
|
345
|
+
table is read in the deprecated layout, where the entries sit at the
|
|
346
|
+
top level.
|
|
347
|
+
|
|
348
|
+
Args:
|
|
349
|
+
data: The parsed TOML document.
|
|
350
|
+
source: Name of the document, used in messages.
|
|
351
|
+
|
|
352
|
+
Returns:
|
|
353
|
+
The table mapping microgrid IDs to their entries.
|
|
354
|
+
|
|
355
|
+
Raises:
|
|
356
|
+
TypeError: If `assets` is not a table.
|
|
357
|
+
ValueError: If both layouts are present, which means a
|
|
358
|
+
half-migrated file rather than a merge.
|
|
359
|
+
"""
|
|
360
|
+
if "assets" not in data:
|
|
361
|
+
_logger.warning(
|
|
362
|
+
"%s: top-level microgrid IDs are deprecated, "
|
|
363
|
+
"nest the entries under `assets.microgrids` instead.",
|
|
364
|
+
source,
|
|
365
|
+
)
|
|
366
|
+
return data
|
|
367
|
+
|
|
368
|
+
assets = data["assets"]
|
|
369
|
+
if not isinstance(assets, dict):
|
|
370
|
+
raise TypeError(f"{source}: `assets` must be a table, got {type(assets)}")
|
|
371
|
+
|
|
372
|
+
if unprefixed := sorted(k for k in data if k != "assets"):
|
|
373
|
+
raise ValueError(
|
|
374
|
+
f"{source}: keys {unprefixed} sit outside `assets` while the file "
|
|
375
|
+
"already has an `assets` table; move them under `assets.microgrids`."
|
|
376
|
+
)
|
|
377
|
+
|
|
378
|
+
microgrids = assets.get("microgrids", {})
|
|
379
|
+
if not isinstance(microgrids, dict):
|
|
380
|
+
raise TypeError(
|
|
381
|
+
f"{source}: `assets.microgrids` must be a table, got {type(microgrids)}"
|
|
382
|
+
)
|
|
383
|
+
return microgrids
|
|
384
|
+
|
|
340
385
|
@classmethod
|
|
341
386
|
def load_from_file(cls, config_path: Path) -> dict[str, Self]:
|
|
342
387
|
"""
|
|
@@ -353,7 +398,7 @@ class MicrogridConfig:
|
|
|
353
398
|
|
|
354
399
|
assert isinstance(data, dict)
|
|
355
400
|
|
|
356
|
-
return cls._load_table_entries(data)
|
|
401
|
+
return cls._load_table_entries(cls._microgrid_table(data, str(config_path)))
|
|
357
402
|
|
|
358
403
|
|
|
359
404
|
def merge_microgrid_configs(
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: frequenz-gridpool
|
|
3
|
-
Version: 0.6.
|
|
3
|
+
Version: 0.6.4
|
|
4
4
|
Summary: High-level interface to grid pools for the Frequenz platform.
|
|
5
5
|
Author-email: Frequenz Energy-as-a-Service GmbH <floss@frequenz.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -22,7 +22,7 @@ License-File: LICENSE
|
|
|
22
22
|
Requires-Dist: marshmallow-dataclass<9,>=8.7.1
|
|
23
23
|
Requires-Dist: typing-extensions<5,>=4.14.1
|
|
24
24
|
Requires-Dist: frequenz-microgrid-component-graph<0.6,>=0.5.0
|
|
25
|
-
Requires-Dist: frequenz-client-assets<0.
|
|
25
|
+
Requires-Dist: frequenz-client-assets<0.6,>=0.5.0
|
|
26
26
|
Provides-Extra: cli
|
|
27
27
|
Requires-Dist: asyncclick<9,>=8.3.0.4; extra == "cli"
|
|
28
28
|
Requires-Dist: tomlkit<1,>=0.13.0; extra == "cli"
|
|
@@ -35,7 +35,7 @@ Requires-Dist: flake8==7.3.0; extra == "dev-flake8"
|
|
|
35
35
|
Requires-Dist: flake8-datetimez==20.10.0; extra == "dev-flake8"
|
|
36
36
|
Requires-Dist: flake8-docstrings==1.7.0; extra == "dev-flake8"
|
|
37
37
|
Requires-Dist: flake8-pyproject==1.2.4; extra == "dev-flake8"
|
|
38
|
-
Requires-Dist: pydoclint==0.9.
|
|
38
|
+
Requires-Dist: pydoclint==0.9.1; extra == "dev-flake8"
|
|
39
39
|
Requires-Dist: pydocstyle==6.3.0; extra == "dev-flake8"
|
|
40
40
|
Provides-Extra: dev-formatting
|
|
41
41
|
Requires-Dist: black==26.5.1; extra == "dev-formatting"
|
|
@@ -47,17 +47,17 @@ Requires-Dist: mike==2.2.0; extra == "dev-mkdocs"
|
|
|
47
47
|
Requires-Dist: mkdocs-gen-files==0.6.1; extra == "dev-mkdocs"
|
|
48
48
|
Requires-Dist: mkdocs-literate-nav==0.6.3; extra == "dev-mkdocs"
|
|
49
49
|
Requires-Dist: mkdocs-macros-plugin==1.5.0; extra == "dev-mkdocs"
|
|
50
|
-
Requires-Dist: mkdocs-material==9.7.
|
|
51
|
-
Requires-Dist: mkdocstrings[python]==1.0.
|
|
50
|
+
Requires-Dist: mkdocs-material==9.7.7; extra == "dev-mkdocs"
|
|
51
|
+
Requires-Dist: mkdocstrings[python]==1.0.6; extra == "dev-mkdocs"
|
|
52
52
|
Requires-Dist: mkdocstrings-python==2.0.5; extra == "dev-mkdocs"
|
|
53
53
|
Requires-Dist: frequenz-repo-config[lib]==0.18.0; extra == "dev-mkdocs"
|
|
54
54
|
Provides-Extra: dev-mypy
|
|
55
|
-
Requires-Dist: mypy==2.
|
|
55
|
+
Requires-Dist: mypy==2.3.0; extra == "dev-mypy"
|
|
56
56
|
Requires-Dist: types-networkx>=3.6.1.20251220; extra == "dev-mypy"
|
|
57
|
-
Requires-Dist: types-Markdown==3.10.2.
|
|
57
|
+
Requires-Dist: types-Markdown==3.10.2.20260712; extra == "dev-mypy"
|
|
58
58
|
Requires-Dist: frequenz-gridpool[dev-mkdocs,dev-noxfile,dev-pytest]; extra == "dev-mypy"
|
|
59
59
|
Provides-Extra: dev-noxfile
|
|
60
|
-
Requires-Dist: nox==2026.
|
|
60
|
+
Requires-Dist: nox==2026.7.11; extra == "dev-noxfile"
|
|
61
61
|
Requires-Dist: frequenz-repo-config[lib]==0.18.0; extra == "dev-noxfile"
|
|
62
62
|
Provides-Extra: dev-pylint
|
|
63
63
|
Requires-Dist: frequenz-gridpool[dev-mkdocs,dev-noxfile,dev-pytest]; extra == "dev-pylint"
|
{frequenz_gridpool-0.6.2 → frequenz_gridpool-0.6.4}/src/frequenz_gridpool.egg-info/requires.txt
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
marshmallow-dataclass<9,>=8.7.1
|
|
2
2
|
typing-extensions<5,>=4.14.1
|
|
3
3
|
frequenz-microgrid-component-graph<0.6,>=0.5.0
|
|
4
|
-
frequenz-client-assets<0.
|
|
4
|
+
frequenz-client-assets<0.6,>=0.5.0
|
|
5
5
|
|
|
6
6
|
[cli]
|
|
7
7
|
asyncclick<9,>=8.3.0.4
|
|
@@ -15,7 +15,7 @@ flake8==7.3.0
|
|
|
15
15
|
flake8-datetimez==20.10.0
|
|
16
16
|
flake8-docstrings==1.7.0
|
|
17
17
|
flake8-pyproject==1.2.4
|
|
18
|
-
pydoclint==0.9.
|
|
18
|
+
pydoclint==0.9.1
|
|
19
19
|
pydocstyle==6.3.0
|
|
20
20
|
|
|
21
21
|
[dev-formatting]
|
|
@@ -29,19 +29,19 @@ mike==2.2.0
|
|
|
29
29
|
mkdocs-gen-files==0.6.1
|
|
30
30
|
mkdocs-literate-nav==0.6.3
|
|
31
31
|
mkdocs-macros-plugin==1.5.0
|
|
32
|
-
mkdocs-material==9.7.
|
|
33
|
-
mkdocstrings[python]==1.0.
|
|
32
|
+
mkdocs-material==9.7.7
|
|
33
|
+
mkdocstrings[python]==1.0.6
|
|
34
34
|
mkdocstrings-python==2.0.5
|
|
35
35
|
frequenz-repo-config[lib]==0.18.0
|
|
36
36
|
|
|
37
37
|
[dev-mypy]
|
|
38
|
-
mypy==2.
|
|
38
|
+
mypy==2.3.0
|
|
39
39
|
types-networkx>=3.6.1.20251220
|
|
40
|
-
types-Markdown==3.10.2.
|
|
40
|
+
types-Markdown==3.10.2.20260712
|
|
41
41
|
frequenz-gridpool[dev-mkdocs,dev-noxfile,dev-pytest]
|
|
42
42
|
|
|
43
43
|
[dev-noxfile]
|
|
44
|
-
nox==2026.
|
|
44
|
+
nox==2026.7.11
|
|
45
45
|
frequenz-repo-config[lib]==0.18.0
|
|
46
46
|
|
|
47
47
|
[dev-pylint]
|
|
@@ -1,60 +1,60 @@
|
|
|
1
1
|
{
|
|
2
2
|
"files": [
|
|
3
|
+
".cookiecutter-replay.json",
|
|
4
|
+
".editorconfig",
|
|
5
|
+
".github/ISSUE_TEMPLATE/bug.yml",
|
|
6
|
+
".github/ISSUE_TEMPLATE/config.yml",
|
|
7
|
+
".github/ISSUE_TEMPLATE/feature.yml",
|
|
8
|
+
".github/RELEASE_NOTES.template.md",
|
|
9
|
+
".github/dependabot.yml",
|
|
10
|
+
".github/keylabeler.yml",
|
|
11
|
+
".github/labeler.yml",
|
|
12
|
+
".github/workflows/auto-dependabot.yaml",
|
|
13
|
+
".github/workflows/black-migration.yaml",
|
|
14
|
+
".github/workflows/ci-pr.yaml",
|
|
15
|
+
".github/workflows/ci.yaml",
|
|
16
|
+
".github/workflows/dco-merge-queue.yml",
|
|
17
|
+
".github/workflows/isort-migration.yaml",
|
|
18
|
+
".github/workflows/labeler.yml",
|
|
19
|
+
".github/workflows/release-notes-check.yml",
|
|
20
|
+
".github/workflows/repo-config-migration.yaml",
|
|
3
21
|
".gitignore",
|
|
4
|
-
"
|
|
22
|
+
"CODEOWNERS",
|
|
5
23
|
"CONTRIBUTING.md",
|
|
6
|
-
"
|
|
7
|
-
".cookiecutter-replay.json",
|
|
8
|
-
"pyproject.toml",
|
|
24
|
+
"LICENSE",
|
|
9
25
|
"MANIFEST.in",
|
|
26
|
+
"README.md",
|
|
10
27
|
"RELEASE_NOTES.md",
|
|
11
|
-
"
|
|
28
|
+
"docs/CONTRIBUTING.md",
|
|
29
|
+
"docs/SUMMARY.md",
|
|
30
|
+
"docs/_css/mkdocstrings.css",
|
|
31
|
+
"docs/_css/style.css",
|
|
32
|
+
"docs/_img/logo.png",
|
|
33
|
+
"docs/_overrides/main.html",
|
|
34
|
+
"docs/_scripts/mkdocstrings_autoapi.py",
|
|
35
|
+
"docs/index.md",
|
|
12
36
|
"mkdocs.yml",
|
|
13
|
-
"CODEOWNERS",
|
|
14
37
|
"noxfile.py",
|
|
15
|
-
"
|
|
16
|
-
"src/frequenz/gridpool/_graph_generator.py",
|
|
17
|
-
"src/frequenz/gridpool/py.typed",
|
|
38
|
+
"pyproject.toml",
|
|
18
39
|
"src/frequenz/gridpool/__init__.py",
|
|
19
|
-
"src/frequenz/gridpool/
|
|
20
|
-
"src/frequenz/gridpool/
|
|
21
|
-
"src/frequenz/gridpool/config/__init__.py",
|
|
22
|
-
"src/frequenz/gridpool/cli/_dump_config.py",
|
|
40
|
+
"src/frequenz/gridpool/_graph_generator.py",
|
|
41
|
+
"src/frequenz/gridpool/cli/__init__.py",
|
|
23
42
|
"src/frequenz/gridpool/cli/__main__.py",
|
|
43
|
+
"src/frequenz/gridpool/cli/_dump_config.py",
|
|
24
44
|
"src/frequenz/gridpool/cli/_patch_config.py",
|
|
25
45
|
"src/frequenz/gridpool/cli/_render_graph.py",
|
|
26
|
-
"src/frequenz/gridpool/
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
".github/workflows/repo-config-migration.yaml",
|
|
34
|
-
".github/workflows/ci-pr.yaml",
|
|
35
|
-
".github/workflows/ci.yaml",
|
|
36
|
-
".github/workflows/black-migration.yaml",
|
|
37
|
-
".github/workflows/dco-merge-queue.yml",
|
|
38
|
-
".github/workflows/release-notes-check.yml",
|
|
39
|
-
".github/workflows/auto-dependabot.yaml",
|
|
40
|
-
".github/ISSUE_TEMPLATE/config.yml",
|
|
41
|
-
".github/ISSUE_TEMPLATE/feature.yml",
|
|
42
|
-
".github/ISSUE_TEMPLATE/bug.yml",
|
|
43
|
-
"tests/test_merge_config.py",
|
|
44
|
-
"tests/test_load.py",
|
|
46
|
+
"src/frequenz/gridpool/config/__init__.py",
|
|
47
|
+
"src/frequenz/gridpool/config/load.py",
|
|
48
|
+
"src/frequenz/gridpool/config/microgrid.py",
|
|
49
|
+
"src/frequenz/gridpool/conftest.py",
|
|
50
|
+
"src/frequenz/gridpool/py.typed",
|
|
51
|
+
"tests/test_cli.py",
|
|
52
|
+
"tests/test_config.py",
|
|
45
53
|
"tests/test_dump_config.py",
|
|
46
|
-
"tests/test_patch_config.py",
|
|
47
54
|
"tests/test_graph_generator.py",
|
|
48
|
-
"tests/
|
|
49
|
-
"tests/
|
|
50
|
-
"tests/
|
|
51
|
-
"
|
|
52
|
-
"docs/CONTRIBUTING.md",
|
|
53
|
-
"docs/index.md",
|
|
54
|
-
"docs/_img/logo.png",
|
|
55
|
-
"docs/_css/mkdocstrings.css",
|
|
56
|
-
"docs/_css/style.css",
|
|
57
|
-
"docs/_scripts/mkdocstrings_autoapi.py",
|
|
58
|
-
"docs/_overrides/main.html"
|
|
55
|
+
"tests/test_load.py",
|
|
56
|
+
"tests/test_merge_config.py",
|
|
57
|
+
"tests/test_patch_config.py",
|
|
58
|
+
"tests/test_render_graph.py"
|
|
59
59
|
]
|
|
60
60
|
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
# Frequenz Gridpool Library Release Notes
|
|
2
|
-
|
|
3
|
-
## Summary
|
|
4
|
-
|
|
5
|
-
This release updates the microgrid component graph library to v0.5.0 and adds a way to configure how the component graph is built.
|
|
6
|
-
|
|
7
|
-
## Upgrading
|
|
8
|
-
|
|
9
|
-
* The per-category formulas (`pv`, `battery`, `chp`, `ev`) now read the component first and use the meter as the fallback. This is the opposite of the old order, and it changes the generated config. Regenerate stored configs with this release and review the diff.
|
|
10
|
-
* To keep the old order, pass `ComponentGraphConfig(prefer_meters_in_component_formulas=True)` to `load_configs`, `load_configs_from_api` or `ComponentGraphGenerator`, or use the new `--prefer-meters-in-component-formulas` flag of the CLI.
|
|
11
|
-
* The update brings more changes, for example to the `consumption` formula and to the graph validation error messages. See the [v0.5.0 release notes](https://github.com/frequenz-floss/frequenz-microgrid-component-graph-python/releases/tag/v0.5.0) of the component graph library for the full list.
|
|
12
|
-
|
|
13
|
-
## New Features
|
|
14
|
-
|
|
15
|
-
* `load_configs` and `load_configs_from_api` take a `component_graph_config` argument, and `ComponentGraphGenerator` takes it as `config`. It controls how the component graph is built and how its formulas are generated. `ComponentGraphConfig` and `FormulaOverrides` are re-exported from `frequenz.gridpool` and `frequenz.gridpool.config`.
|
|
16
|
-
* The `generate-config` and `print-formulas` CLI commands take a `--prefer-meters-in-component-formulas` flag, which reads the meter before the component in the per-category formulas.
|
|
17
|
-
|
|
18
|
-
## Bug Fixes
|
|
19
|
-
|
|
20
|
-
<!-- Here goes notable bug fixes that are worth a special mention or explanation -->
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{frequenz_gridpool-0.6.2 → frequenz_gridpool-0.6.4}/src/frequenz/gridpool/_graph_generator.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{frequenz_gridpool-0.6.2 → frequenz_gridpool-0.6.4}/src/frequenz/gridpool/cli/_dump_config.py
RENAMED
|
File without changes
|
{frequenz_gridpool-0.6.2 → frequenz_gridpool-0.6.4}/src/frequenz/gridpool/cli/_patch_config.py
RENAMED
|
File without changes
|
{frequenz_gridpool-0.6.2 → frequenz_gridpool-0.6.4}/src/frequenz/gridpool/cli/_render_graph.py
RENAMED
|
File without changes
|
{frequenz_gridpool-0.6.2 → frequenz_gridpool-0.6.4}/src/frequenz/gridpool/config/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{frequenz_gridpool-0.6.2 → frequenz_gridpool-0.6.4}/src/frequenz_gridpool.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{frequenz_gridpool-0.6.2 → frequenz_gridpool-0.6.4}/src/frequenz_gridpool.egg-info/entry_points.txt
RENAMED
|
File without changes
|
{frequenz_gridpool-0.6.2 → frequenz_gridpool-0.6.4}/src/frequenz_gridpool.egg-info/top_level.txt
RENAMED
|
File without changes
|