power-grid-model-ds 1.4.4__tar.gz → 1.4.7__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.
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/PKG-INFO +4 -23
- power_grid_model_ds-1.4.7/PYPI_VERSION +1 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/pyproject.toml +76 -17
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/model/arrays/base/_string.py +1 -1
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/model/containers/base.py +10 -3
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/model/grids/base.py +1 -1
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/visualizer/callbacks/element_selection.py +1 -1
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/visualizer/layout/colors.py +2 -1
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/visualizer/layout/cytoscape_styling.py +12 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/visualizer/layout/header_config.py +1 -1
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds.egg-info/PKG-INFO +4 -23
- power_grid_model_ds-1.4.7/src/power_grid_model_ds.egg-info/requires.txt +11 -0
- power_grid_model_ds-1.4.4/PYPI_VERSION +0 -1
- power_grid_model_ds-1.4.4/src/power_grid_model_ds.egg-info/requires.txt +0 -32
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/LICENSE +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/README.md +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/setup.cfg +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/setup.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/__init__.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/__init__.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/data_source/__init__.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/data_source/generator/__init__.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/data_source/generator/arrays/__init__.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/data_source/generator/arrays/base.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/data_source/generator/arrays/line.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/data_source/generator/arrays/node.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/data_source/generator/arrays/source.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/data_source/generator/arrays/transformer.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/data_source/generator/grid_generators.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/fancypy.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/load_flow.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/model/__init__.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/model/arrays/__init__.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/model/arrays/base/__init__.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/model/arrays/base/_build.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/model/arrays/base/_filters.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/model/arrays/base/_modify.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/model/arrays/base/_optional.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/model/arrays/base/array.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/model/arrays/base/errors.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/model/arrays/pgm_arrays.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/model/constants.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/model/containers/__init__.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/model/dtypes/__init__.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/model/dtypes/appliances.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/model/dtypes/branches.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/model/dtypes/id.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/model/dtypes/nodes.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/model/dtypes/regulators.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/model/dtypes/sensors.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/model/enums/__init__.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/model/enums/nodes.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/model/graphs/__init__.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/model/graphs/container.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/model/graphs/errors.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/model/graphs/models/__init__.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/model/graphs/models/_rustworkx_search.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/model/graphs/models/base.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/model/graphs/models/rustworkx.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/model/grids/__init__.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/model/grids/_text_sources.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/model/grids/helpers.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/utils/__init__.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/utils/misc.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/utils/pickle.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/utils/zip.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/visualizer/__init__.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/visualizer/app.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/visualizer/callbacks/__init__.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/visualizer/callbacks/config.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/visualizer/callbacks/header.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/visualizer/callbacks/search_form.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/visualizer/layout/__init__.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/visualizer/layout/cytoscape_html.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/visualizer/layout/header.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/visualizer/layout/header_legenda.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/visualizer/layout/header_search.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/visualizer/layout/selection_output.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/visualizer/parsers.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/visualizer/typing.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/arrays.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/constants.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/enums.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/errors.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/fancypy.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/generators.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/graph_models.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/visualizer.py +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds.egg-info/SOURCES.txt +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds.egg-info/dependency_links.txt +0 -0
- {power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: power-grid-model-ds
|
3
|
-
Version: 1.4.
|
3
|
+
Version: 1.4.7
|
4
4
|
Summary: Power Grid Model extension which provides a grid data structure for simulation and analysis
|
5
5
|
Author-email: Contributors to the Power Grid Model project <powergridmodel@lfenergy.org>
|
6
6
|
License: MPL-2.0
|
@@ -23,32 +23,13 @@ Description-Content-Type: text/markdown
|
|
23
23
|
License-File: LICENSE
|
24
24
|
Requires-Dist: power-grid-model>=1.7
|
25
25
|
Requires-Dist: rustworkx>=0.15.1
|
26
|
-
Requires-Dist: numpy>=
|
27
|
-
Provides-Extra: pandas
|
28
|
-
Requires-Dist: pandas>=2.2.1; extra == "pandas"
|
29
|
-
Provides-Extra: dev
|
30
|
-
Requires-Dist: pylint>=3.1.0; extra == "dev"
|
31
|
-
Requires-Dist: pytest>=8.1.1; extra == "dev"
|
32
|
-
Requires-Dist: coverage>=7.4.4; extra == "dev"
|
33
|
-
Requires-Dist: black>=24.3.0; extra == "dev"
|
34
|
-
Requires-Dist: ruff>=0.3.5; extra == "dev"
|
35
|
-
Requires-Dist: isort>=5.13.2; extra == "dev"
|
36
|
-
Requires-Dist: mypy>=1.9.0; extra == "dev"
|
37
|
-
Requires-Dist: pre-commit>=4; extra == "dev"
|
38
|
-
Requires-Dist: dash>=3.0.0; extra == "dev"
|
39
|
-
Requires-Dist: dash-bootstrap-components>=2.0.3; extra == "dev"
|
40
|
-
Requires-Dist: dash-cytoscape>=1.0.2; extra == "dev"
|
26
|
+
Requires-Dist: numpy>=2.0
|
41
27
|
Provides-Extra: visualizer
|
42
28
|
Requires-Dist: dash>=3.0.0; extra == "visualizer"
|
43
29
|
Requires-Dist: dash-bootstrap-components>=2.0.0; extra == "visualizer"
|
44
30
|
Requires-Dist: dash-cytoscape>=1.0.2; extra == "visualizer"
|
45
|
-
Provides-Extra:
|
46
|
-
Requires-Dist:
|
47
|
-
Requires-Dist: myst-nb; extra == "doc"
|
48
|
-
Requires-Dist: sphinx_rtd_theme; extra == "doc"
|
49
|
-
Requires-Dist: readthedocs-sphinx-search; extra == "doc"
|
50
|
-
Requires-Dist: sphinx-hoverxref; extra == "doc"
|
51
|
-
Requires-Dist: numpydoc; extra == "doc"
|
31
|
+
Provides-Extra: pandas
|
32
|
+
Requires-Dist: pandas>=2.2.1; extra == "pandas"
|
52
33
|
Dynamic: license-file
|
53
34
|
|
54
35
|
<!--
|
@@ -0,0 +1 @@
|
|
1
|
+
1.4.7
|
@@ -29,29 +29,32 @@ requires-python = ">=3.11,<3.14"
|
|
29
29
|
dependencies = [
|
30
30
|
"power-grid-model>=1.7",
|
31
31
|
"rustworkx>= 0.15.1",
|
32
|
-
"numpy>=
|
32
|
+
"numpy>=2.0",
|
33
33
|
]
|
34
34
|
dynamic = ["version"]
|
35
35
|
|
36
36
|
[project.optional-dependencies]
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
"coverage>=7.4.4",
|
42
|
-
"black>=24.3.0",
|
43
|
-
"ruff>=0.3.5",
|
44
|
-
"isort>=5.13.2",
|
45
|
-
"mypy>=1.9.0",
|
46
|
-
"pre-commit>=4",
|
47
|
-
# Visualization (make sure these stay equalivalent to the 'visualizer' group)
|
37
|
+
# Published optional dependencies, or "extras".
|
38
|
+
|
39
|
+
visualizer = [
|
40
|
+
# Visualization (make sure these are also updated in the 'dev' group)
|
48
41
|
"dash>=3.0.0",
|
49
|
-
"dash-bootstrap-components>=2.0.
|
42
|
+
"dash-bootstrap-components>=2.0.0",
|
50
43
|
"dash-cytoscape>=1.0.2",
|
51
44
|
]
|
45
|
+
pandas = ["pandas>=2.2.1"]
|
52
46
|
|
53
|
-
|
54
|
-
|
47
|
+
[dependency-groups]
|
48
|
+
# Local dependencies for development.
|
49
|
+
|
50
|
+
dev = [
|
51
|
+
"pylint",
|
52
|
+
"pytest",
|
53
|
+
"coverage",
|
54
|
+
"ruff",
|
55
|
+
"mypy",
|
56
|
+
"pre-commit",
|
57
|
+
# Visualization (make sure these stay equalivalent to the 'visualizer' group)
|
55
58
|
"dash>=3.0.0",
|
56
59
|
"dash-bootstrap-components>=2.0.0",
|
57
60
|
"dash-cytoscape>=1.0.2",
|
@@ -66,7 +69,6 @@ doc = [
|
|
66
69
|
"numpydoc",
|
67
70
|
]
|
68
71
|
|
69
|
-
|
70
72
|
[project.urls]
|
71
73
|
Home-page = "https://lfenergy.org/projects/power-grid-model/"
|
72
74
|
GitHub = "https://github.com/PowerGridModel/power-grid-model-ds"
|
@@ -123,9 +125,66 @@ disable_error_code = ["assignment", "import-untyped"]
|
|
123
125
|
|
124
126
|
[tool.coverage.run]
|
125
127
|
relative_files = true
|
126
|
-
|
128
|
+
source = ["src"]
|
129
|
+
command_line = '--module pytest'
|
127
130
|
|
128
131
|
[tool.coverage.report]
|
132
|
+
fail_under = 90
|
129
133
|
exclude_also = [
|
130
134
|
'if TYPE_CHECKING:',
|
131
135
|
]
|
136
|
+
|
137
|
+
[tool.poe.tasks.all]
|
138
|
+
help = "Run all CI calls"
|
139
|
+
control.expr = "check"
|
140
|
+
args = [{name = "check", type="boolean", help= "Does not correct files, only warns"}]
|
141
|
+
[[tool.poe.tasks.all.switch]]
|
142
|
+
case = "True"
|
143
|
+
sequence = ["lint --check", "format --check", "lock", "type", "cover", "report"]
|
144
|
+
|
145
|
+
[[tool.poe.tasks.all.switch]]
|
146
|
+
sequence = ["lint", "format", "lock", "type", "cover", "report"]
|
147
|
+
|
148
|
+
|
149
|
+
[tool.poe.tasks.lint]
|
150
|
+
help = "Lint code (with ruff & pylint)"
|
151
|
+
# --no-fix does override --fix in ruff, if --check is given to poe.
|
152
|
+
sequence = [
|
153
|
+
{cmd='ruff check --fix --show-fixes ${check:+ --no-fix}'},
|
154
|
+
{cmd="pylint src"},
|
155
|
+
]
|
156
|
+
args=[{name = "check", type="boolean", help= "Does not correct files, only warns"}]
|
157
|
+
|
158
|
+
[tool.poe.tasks.format]
|
159
|
+
help = "Format code (with ruff)"
|
160
|
+
cmd = 'ruff format ${check:+ --diff}'
|
161
|
+
args=[{name = "check", type="boolean", help= "Does not correct files, only warns"}]
|
162
|
+
|
163
|
+
[tool.poe.tasks.sort]
|
164
|
+
help = "Sort imports (with ruff)"
|
165
|
+
cmd = 'ruff check --select I --fix --show-fixes ${check:+ --no-fix}'
|
166
|
+
args=[{name = "check", type="boolean", help= "Does not correct files, only warns"}]
|
167
|
+
|
168
|
+
[tool.poe.tasks.type]
|
169
|
+
help = "Type check code (with mypy)"
|
170
|
+
cmd = "mypy src tests"
|
171
|
+
|
172
|
+
[tool.poe.tasks.tests]
|
173
|
+
help = "Run tests"
|
174
|
+
cmd = "pytest"
|
175
|
+
|
176
|
+
[tool.poe.tasks.lock]
|
177
|
+
help = "Asserts that dependencies are locked"
|
178
|
+
cmd = "uv lock --check"
|
179
|
+
|
180
|
+
[tool.poe.tasks.cover]
|
181
|
+
help = "Run tests (and gather coverage)"
|
182
|
+
cmd = "coverage run"
|
183
|
+
|
184
|
+
[tool.poe.tasks.report]
|
185
|
+
help = "Generate coverage report. Will use data from a previous cover command."
|
186
|
+
cmd = "coverage report"
|
187
|
+
|
188
|
+
[tool.poe.tasks.coverage]
|
189
|
+
help = "Run coverage *and* generate report"
|
190
|
+
sequence = ["cover", "report"]
|
@@ -82,7 +82,7 @@ def _determine_column_widths(array: "FancyArray") -> list[tuple[str, int]]:
|
|
82
82
|
def _center_and_truncate(string: str, width: int) -> str:
|
83
83
|
if len(string) <= width:
|
84
84
|
return string.center(width)
|
85
|
-
return f"{string[:width - 2]}..".center(width)
|
85
|
+
return f"{string[: width - 2]}..".center(width)
|
86
86
|
|
87
87
|
|
88
88
|
def _get_start_and_end_rows(array: "FancyArray", rows: int) -> tuple["FancyArray", Optional["FancyArray"]]:
|
@@ -212,11 +212,18 @@ class FancyArrayContainer:
|
|
212
212
|
array = self.attach_ids(array)
|
213
213
|
elif np.any(array.id == EMPTY_ID):
|
214
214
|
raise ValueError(f"Cannot append: array contains empty [{EMPTY_ID}] and non-empty ids.")
|
215
|
+
elif check_max_id and self.id_counter > 0:
|
216
|
+
# Only check for overlaps when array has prescribed (non-empty) IDs
|
217
|
+
# Check if any incoming ID might overlap with existing IDs
|
218
|
+
# This prevents overlaps since counter tracks the highest used ID
|
219
|
+
new_min_id = np.min(array.id)
|
220
|
+
if new_min_id <= self._id_counter:
|
221
|
+
raise ValueError(
|
222
|
+
f"Cannot append: minimum id {new_min_id} is not greater than "
|
223
|
+
f"the current id counter {self._id_counter}"
|
224
|
+
)
|
215
225
|
|
216
226
|
new_max_id = np.max(array.id)
|
217
|
-
if check_max_id and new_max_id < self._id_counter:
|
218
|
-
raise ValueError(f"Cannot append: id {new_max_id} is lower than the id counter")
|
219
|
-
|
220
227
|
# Update _id_counter
|
221
228
|
self._id_counter = max(self._id_counter, new_max_id)
|
222
229
|
|
@@ -451,7 +451,7 @@ class Grid(FancyArrayContainer):
|
|
451
451
|
for field in dataclasses.fields(cls):
|
452
452
|
if field.name == "node":
|
453
453
|
continue # already added
|
454
|
-
if issubclass(field.type, FancyArray):
|
454
|
+
if isinstance(field.type, type) and issubclass(field.type, FancyArray):
|
455
455
|
extended_array = getattr(extended, field.name)
|
456
456
|
new_array = field.type.from_extended(extended_array)
|
457
457
|
new_grid.append(new_array, check_max_id=False)
|
@@ -27,7 +27,7 @@ def display_selected_element(node_data, edge_data):
|
|
27
27
|
|
28
28
|
def _to_data_table(data: dict[str, Any]):
|
29
29
|
columns = data.keys()
|
30
|
-
data_table = dash_table.DataTable(
|
30
|
+
data_table = dash_table.DataTable( # type: ignore[attr-defined]
|
31
31
|
data=[data], columns=[{"name": key, "id": key} for key in columns], editable=False
|
32
32
|
)
|
33
33
|
return data_table
|
@@ -5,11 +5,12 @@
|
|
5
5
|
YELLOW = "#facc37"
|
6
6
|
CYTO_COLORS = {
|
7
7
|
"line": YELLOW,
|
8
|
-
"link": "
|
8
|
+
"link": "#008000",
|
9
9
|
"transformer": "#4290f5",
|
10
10
|
"node": YELLOW,
|
11
11
|
"selected": "#e28743",
|
12
12
|
"selected_transformer": "#0349a3",
|
13
|
+
"selected_link": "#004000",
|
13
14
|
"substation_node": "purple",
|
14
15
|
"open_branch": "#c9c9c9",
|
15
16
|
"highlighted": "#a10000",
|
@@ -75,6 +75,16 @@ _SELECTED_TRANSFORMER_STYLE = {
|
|
75
75
|
},
|
76
76
|
}
|
77
77
|
|
78
|
+
_LINK_STYLE = {
|
79
|
+
"selector": "edge[group = 'link']",
|
80
|
+
"style": {"line-color": CYTO_COLORS["link"], "target-arrow-color": CYTO_COLORS["link"]},
|
81
|
+
}
|
82
|
+
|
83
|
+
_SELECTED_LINK_STYLE = {
|
84
|
+
"selector": "edge[group = 'link']:selected, edge[group = 'link']:active",
|
85
|
+
"style": {"line-color": CYTO_COLORS["selected_link"], "target-arrow-color": CYTO_COLORS["selected_link"]},
|
86
|
+
}
|
87
|
+
|
78
88
|
_OPEN_BRANCH_STYLE = {
|
79
89
|
"selector": "edge[from_status = 0], edge[to_status = 0]",
|
80
90
|
"style": {
|
@@ -106,9 +116,11 @@ DEFAULT_STYLESHEET = [
|
|
106
116
|
_SUBSTATION_NODE_STYLE,
|
107
117
|
_BRANCH_STYLE,
|
108
118
|
_TRANSFORMER_STYLE,
|
119
|
+
_LINK_STYLE,
|
109
120
|
_SELECTED_NODE_STYLE,
|
110
121
|
_SELECTED_BRANCH_STYLE,
|
111
122
|
_SELECTED_TRANSFORMER_STYLE,
|
123
|
+
_SELECTED_LINK_STYLE,
|
112
124
|
_OPEN_BRANCH_STYLE,
|
113
125
|
_OPEN_FROM_SIDE_BRANCH_STYLE,
|
114
126
|
_OPEN_TO_SIDE_BRANCH_STYLE,
|
@@ -53,7 +53,7 @@ _LAYOUT_DROPDOWN = html.Div(
|
|
53
53
|
placeholder="Select layout",
|
54
54
|
value=LayoutOptions.BREADTHFIRST.value,
|
55
55
|
clearable=False,
|
56
|
-
options=[{"label": option.value, "value": option.value} for option in LayoutOptions],
|
56
|
+
options=[{"label": option.value, "value": option.value} for option in LayoutOptions], # type: ignore[arg-type]
|
57
57
|
style={"width": "200px"},
|
58
58
|
),
|
59
59
|
style={"margin": "0 20px 0 10px", "color": "black"},
|
{power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds.egg-info/PKG-INFO
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: power-grid-model-ds
|
3
|
-
Version: 1.4.
|
3
|
+
Version: 1.4.7
|
4
4
|
Summary: Power Grid Model extension which provides a grid data structure for simulation and analysis
|
5
5
|
Author-email: Contributors to the Power Grid Model project <powergridmodel@lfenergy.org>
|
6
6
|
License: MPL-2.0
|
@@ -23,32 +23,13 @@ Description-Content-Type: text/markdown
|
|
23
23
|
License-File: LICENSE
|
24
24
|
Requires-Dist: power-grid-model>=1.7
|
25
25
|
Requires-Dist: rustworkx>=0.15.1
|
26
|
-
Requires-Dist: numpy>=
|
27
|
-
Provides-Extra: pandas
|
28
|
-
Requires-Dist: pandas>=2.2.1; extra == "pandas"
|
29
|
-
Provides-Extra: dev
|
30
|
-
Requires-Dist: pylint>=3.1.0; extra == "dev"
|
31
|
-
Requires-Dist: pytest>=8.1.1; extra == "dev"
|
32
|
-
Requires-Dist: coverage>=7.4.4; extra == "dev"
|
33
|
-
Requires-Dist: black>=24.3.0; extra == "dev"
|
34
|
-
Requires-Dist: ruff>=0.3.5; extra == "dev"
|
35
|
-
Requires-Dist: isort>=5.13.2; extra == "dev"
|
36
|
-
Requires-Dist: mypy>=1.9.0; extra == "dev"
|
37
|
-
Requires-Dist: pre-commit>=4; extra == "dev"
|
38
|
-
Requires-Dist: dash>=3.0.0; extra == "dev"
|
39
|
-
Requires-Dist: dash-bootstrap-components>=2.0.3; extra == "dev"
|
40
|
-
Requires-Dist: dash-cytoscape>=1.0.2; extra == "dev"
|
26
|
+
Requires-Dist: numpy>=2.0
|
41
27
|
Provides-Extra: visualizer
|
42
28
|
Requires-Dist: dash>=3.0.0; extra == "visualizer"
|
43
29
|
Requires-Dist: dash-bootstrap-components>=2.0.0; extra == "visualizer"
|
44
30
|
Requires-Dist: dash-cytoscape>=1.0.2; extra == "visualizer"
|
45
|
-
Provides-Extra:
|
46
|
-
Requires-Dist:
|
47
|
-
Requires-Dist: myst-nb; extra == "doc"
|
48
|
-
Requires-Dist: sphinx_rtd_theme; extra == "doc"
|
49
|
-
Requires-Dist: readthedocs-sphinx-search; extra == "doc"
|
50
|
-
Requires-Dist: sphinx-hoverxref; extra == "doc"
|
51
|
-
Requires-Dist: numpydoc; extra == "doc"
|
31
|
+
Provides-Extra: pandas
|
32
|
+
Requires-Dist: pandas>=2.2.1; extra == "pandas"
|
52
33
|
Dynamic: license-file
|
53
34
|
|
54
35
|
<!--
|
@@ -1 +0,0 @@
|
|
1
|
-
1.4.4
|
@@ -1,32 +0,0 @@
|
|
1
|
-
power-grid-model>=1.7
|
2
|
-
rustworkx>=0.15.1
|
3
|
-
numpy>=1.21
|
4
|
-
|
5
|
-
[dev]
|
6
|
-
pylint>=3.1.0
|
7
|
-
pytest>=8.1.1
|
8
|
-
coverage>=7.4.4
|
9
|
-
black>=24.3.0
|
10
|
-
ruff>=0.3.5
|
11
|
-
isort>=5.13.2
|
12
|
-
mypy>=1.9.0
|
13
|
-
pre-commit>=4
|
14
|
-
dash>=3.0.0
|
15
|
-
dash-bootstrap-components>=2.0.3
|
16
|
-
dash-cytoscape>=1.0.2
|
17
|
-
|
18
|
-
[doc]
|
19
|
-
sphinx
|
20
|
-
myst-nb
|
21
|
-
sphinx_rtd_theme
|
22
|
-
readthedocs-sphinx-search
|
23
|
-
sphinx-hoverxref
|
24
|
-
numpydoc
|
25
|
-
|
26
|
-
[pandas]
|
27
|
-
pandas>=2.2.1
|
28
|
-
|
29
|
-
[visualizer]
|
30
|
-
dash>=3.0.0
|
31
|
-
dash-bootstrap-components>=2.0.0
|
32
|
-
dash-cytoscape>=1.0.2
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/fancypy.py
RENAMED
File without changes
|
{power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/load_flow.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/utils/misc.py
RENAMED
File without changes
|
File without changes
|
{power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/_core/utils/zip.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/constants.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/generators.py
RENAMED
File without changes
|
{power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/graph_models.py
RENAMED
File without changes
|
{power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds/visualizer.py
RENAMED
File without changes
|
{power_grid_model_ds-1.4.4 → power_grid_model_ds-1.4.7}/src/power_grid_model_ds.egg-info/SOURCES.txt
RENAMED
File without changes
|
File without changes
|
File without changes
|