flixopt 7.2.1__tar.gz → 7.2.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 (56) hide show
  1. flixopt-7.2.3/.release-please-manifest.json +3 -0
  2. {flixopt-7.2.1 → flixopt-7.2.3}/CHANGELOG.md +14 -0
  3. {flixopt-7.2.1 → flixopt-7.2.3}/CITATION.cff +2 -2
  4. {flixopt-7.2.1 → flixopt-7.2.3}/PKG-INFO +1 -1
  5. {flixopt-7.2.1 → flixopt-7.2.3}/flixopt/io.py +7 -0
  6. {flixopt-7.2.1 → flixopt-7.2.3}/flixopt/results.py +10 -1
  7. {flixopt-7.2.1 → flixopt-7.2.3}/flixopt/statistics_accessor.py +10 -1
  8. {flixopt-7.2.1 → flixopt-7.2.3}/flixopt.egg-info/PKG-INFO +1 -1
  9. {flixopt-7.2.1 → flixopt-7.2.3}/flixopt.egg-info/scm_file_list.json +210 -209
  10. flixopt-7.2.3/flixopt.egg-info/scm_version.json +8 -0
  11. flixopt-7.2.1/.release-please-manifest.json +0 -3
  12. flixopt-7.2.1/flixopt.egg-info/scm_version.json +0 -8
  13. {flixopt-7.2.1 → flixopt-7.2.3}/.release-please-config.json +0 -0
  14. {flixopt-7.2.1 → flixopt-7.2.3}/CONTRIBUTING.md +0 -0
  15. {flixopt-7.2.1 → flixopt-7.2.3}/LICENSE +0 -0
  16. {flixopt-7.2.1 → flixopt-7.2.3}/MANIFEST.in +0 -0
  17. {flixopt-7.2.1 → flixopt-7.2.3}/README.md +0 -0
  18. {flixopt-7.2.1 → flixopt-7.2.3}/benchmarks/benchmark_io_performance.py +0 -0
  19. {flixopt-7.2.1 → flixopt-7.2.3}/flixopt/__init__.py +0 -0
  20. {flixopt-7.2.1 → flixopt-7.2.3}/flixopt/carrier.py +0 -0
  21. {flixopt-7.2.1 → flixopt-7.2.3}/flixopt/clustering/__init__.py +0 -0
  22. {flixopt-7.2.1 → flixopt-7.2.3}/flixopt/clustering/base.py +0 -0
  23. {flixopt-7.2.1 → flixopt-7.2.3}/flixopt/clustering/intercluster_helpers.py +0 -0
  24. {flixopt-7.2.1 → flixopt-7.2.3}/flixopt/color_processing.py +0 -0
  25. {flixopt-7.2.1 → flixopt-7.2.3}/flixopt/comparison.py +0 -0
  26. {flixopt-7.2.1 → flixopt-7.2.3}/flixopt/components.py +0 -0
  27. {flixopt-7.2.1 → flixopt-7.2.3}/flixopt/config.py +0 -0
  28. {flixopt-7.2.1 → flixopt-7.2.3}/flixopt/core.py +0 -0
  29. {flixopt-7.2.1 → flixopt-7.2.3}/flixopt/effects.py +0 -0
  30. {flixopt-7.2.1 → flixopt-7.2.3}/flixopt/elements.py +0 -0
  31. {flixopt-7.2.1 → flixopt-7.2.3}/flixopt/features.py +0 -0
  32. {flixopt-7.2.1 → flixopt-7.2.3}/flixopt/flow_system.py +0 -0
  33. {flixopt-7.2.1 → flixopt-7.2.3}/flixopt/interface.py +0 -0
  34. {flixopt-7.2.1 → flixopt-7.2.3}/flixopt/linear_converters.py +0 -0
  35. {flixopt-7.2.1 → flixopt-7.2.3}/flixopt/modeling.py +0 -0
  36. {flixopt-7.2.1 → flixopt-7.2.3}/flixopt/network_app.py +0 -0
  37. {flixopt-7.2.1 → flixopt-7.2.3}/flixopt/optimization.py +0 -0
  38. {flixopt-7.2.1 → flixopt-7.2.3}/flixopt/optimize_accessor.py +0 -0
  39. {flixopt-7.2.1 → flixopt-7.2.3}/flixopt/plot_result.py +0 -0
  40. {flixopt-7.2.1 → flixopt-7.2.3}/flixopt/plotting.py +0 -0
  41. {flixopt-7.2.1 → flixopt-7.2.3}/flixopt/solvers.py +0 -0
  42. {flixopt-7.2.1 → flixopt-7.2.3}/flixopt/stats_accessor.py +0 -0
  43. {flixopt-7.2.1 → flixopt-7.2.3}/flixopt/structure.py +0 -0
  44. {flixopt-7.2.1 → flixopt-7.2.3}/flixopt/topology_accessor.py +0 -0
  45. {flixopt-7.2.1 → flixopt-7.2.3}/flixopt/transform_accessor.py +0 -0
  46. {flixopt-7.2.1 → flixopt-7.2.3}/flixopt/tutorials/__init__.py +0 -0
  47. {flixopt-7.2.1 → flixopt-7.2.3}/flixopt/tutorials/_examples.py +0 -0
  48. {flixopt-7.2.1 → flixopt-7.2.3}/flixopt/tutorials/_tutorial_data.py +0 -0
  49. {flixopt-7.2.1 → flixopt-7.2.3}/flixopt/types.py +0 -0
  50. {flixopt-7.2.1 → flixopt-7.2.3}/flixopt.egg-info/SOURCES.txt +0 -0
  51. {flixopt-7.2.1 → flixopt-7.2.3}/flixopt.egg-info/dependency_links.txt +0 -0
  52. {flixopt-7.2.1 → flixopt-7.2.3}/flixopt.egg-info/requires.txt +0 -0
  53. {flixopt-7.2.1 → flixopt-7.2.3}/flixopt.egg-info/top_level.txt +0 -0
  54. {flixopt-7.2.1 → flixopt-7.2.3}/pyproject.toml +0 -0
  55. {flixopt-7.2.1 → flixopt-7.2.3}/setup.cfg +0 -0
  56. {flixopt-7.2.1 → flixopt-7.2.3}/test_deprecations.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "7.2.3"
3
+ }
@@ -11,6 +11,20 @@ For more details regarding the individual PRs and contributors, please refer to
11
11
 
12
12
  ---
13
13
 
14
+ ## [7.2.3](https://github.com/flixOpt/flixopt/compare/v7.2.2...v7.2.3) (2026-07-23)
15
+
16
+
17
+ ### Bug Fixes
18
+
19
+ * **stats:** dimension-aware effect-total consistency check (no longer crashes on transposed solution dims) ([88f09f4](https://github.com/flixOpt/flixopt/commit/88f09f42))
20
+
21
+ ## [7.2.2](https://github.com/flixOpt/flixopt/compare/v7.2.1...v7.2.2) (2026-07-23)
22
+
23
+
24
+ ### Bug Fixes
25
+
26
+ * **io:** load pre-7.0 clustered NetCDF files with legacy `original_data`/`metrics` references ([339f3a0](https://github.com/flixOpt/flixopt/commit/339f3a07))
27
+
14
28
  ## [7.2.1](https://github.com/flixOpt/flixopt/compare/v7.2.0...v7.2.1) (2026-07-21)
15
29
 
16
30
 
@@ -2,8 +2,8 @@ cff-version: 1.2.0
2
2
  message: "If you use this software, please cite it as below and consider citing the related publication."
3
3
  type: software
4
4
  title: "flixopt"
5
- version: 7.2.1 # x-release-please-version
6
- date-released: 2026-07-21
5
+ version: 7.2.3 # x-release-please-version
6
+ date-released: 2026-07-23
7
7
  url: "https://github.com/flixOpt/flixopt"
8
8
  repository-code: "https://github.com/flixOpt/flixopt"
9
9
  license: MIT
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: flixopt
3
- Version: 7.2.1
3
+ Version: 7.2.3
4
4
  Summary: Progressive flow system optimization in Python - start simple, scale to complex.
5
5
  Author-email: "Chair of Building Energy Systems and Heat Supply, TU Dresden" <peter.stange@tu-dresden.de>, Felix Bumann <felixbumann387@gmail.com>, Felix Panitz <baumbude@googlemail.com>, Peter Stange <peter.stange@tu-dresden.de>
6
6
  Maintainer-email: Felix Bumann <felixbumann387@gmail.com>, Peter Stange <peter.stange@tu-dresden.de>
@@ -1839,6 +1839,13 @@ class FlowSystemDatasetIO:
1839
1839
  return
1840
1840
 
1841
1841
  clustering_structure = json.loads(reference_structure['clustering'])
1842
+ # Backward-compat: files written before flixopt 7.0 stored clustering.original_data
1843
+ # and clustering._metrics as ':::original_data|...' / ':::metrics|...' references whose
1844
+ # target arrays are no longer serialized (they only fed the removed plot.compare()).
1845
+ # These keys are also not accepted by the current Clustering.__init__. Drop them so
1846
+ # such files remain loadable.
1847
+ clustering_structure.pop('_original_data_refs', None)
1848
+ clustering_structure.pop('_metrics_refs', None)
1842
1849
  clustering = fs_cls._resolve_reference_structure(clustering_structure, {})
1843
1850
  flow_system.clustering = clustering
1844
1851
 
@@ -966,7 +966,16 @@ class Results(CompositeContainerMixin['ComponentResults | BusResults | EffectRes
966
966
  label = f'{effect}{suffix[mode]}'
967
967
  computed = ds[effect].sum('component')
968
968
  found = self.solution[label]
969
- if not np.allclose(computed.values, found.fillna(0).values):
969
+ if set(computed.dims) != set(found.dims):
970
+ logger.critical(
971
+ f'Results for {effect}({mode}) in effects_dataset doesnt match {label}: '
972
+ f'dimension mismatch {computed.dims=} vs {found.dims=}'
973
+ )
974
+ elif not np.allclose(
975
+ computed.fillna(0).values,
976
+ found.transpose(*computed.dims).fillna(0).values,
977
+ equal_nan=True,
978
+ ):
970
979
  logger.critical(
971
980
  f'Results for {effect}({mode}) in effects_dataset doesnt match {label}\n{computed=}\n, {found=}'
972
981
  )
@@ -935,7 +935,16 @@ class StatisticsAccessor:
935
935
  if label in solution:
936
936
  computed = ds[effect].sum('contributor')
937
937
  found = solution[label]
938
- if not np.allclose(computed.fillna(0).values, found.fillna(0).values, equal_nan=True):
938
+ if set(computed.dims) != set(found.dims):
939
+ logger.critical(
940
+ f'Results for {effect}({mode}) in effects_dataset doesnt match {label}: '
941
+ f'dimension mismatch {computed.dims=} vs {found.dims=}'
942
+ )
943
+ elif not np.allclose(
944
+ computed.fillna(0).values,
945
+ found.transpose(*computed.dims).fillna(0).values,
946
+ equal_nan=True,
947
+ ):
939
948
  logger.critical(
940
949
  f'Results for {effect}({mode}) in effects_dataset doesnt match {label}\n{computed=}\n, {found=}'
941
950
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: flixopt
3
- Version: 7.2.1
3
+ Version: 7.2.3
4
4
  Summary: Progressive flow system optimization in Python - start simple, scale to complex.
5
5
  Author-email: "Chair of Building Energy Systems and Heat Supply, TU Dresden" <peter.stange@tu-dresden.de>, Felix Bumann <felixbumann387@gmail.com>, Felix Panitz <baumbude@googlemail.com>, Peter Stange <peter.stange@tu-dresden.de>
6
6
  Maintainer-email: Felix Bumann <felixbumann387@gmail.com>, Peter Stange <peter.stange@tu-dresden.de>
@@ -1,275 +1,276 @@
1
1
  {
2
2
  "files": [
3
- ".gitignore",
4
- "README.md",
3
+ ".release-please-manifest.json",
4
+ "mkdocs.yml",
5
5
  "CHANGELOG.md",
6
- "CONTRIBUTING.md",
6
+ ".pre-commit-config.yaml",
7
+ "MANIFEST.in",
7
8
  "test_deprecations.py",
8
- "CITATION.cff",
9
- ".release-please-manifest.json",
9
+ "CONTRIBUTING.md",
10
10
  "pyproject.toml",
11
- "MANIFEST.in",
12
11
  ".release-please-config.json",
13
- ".pre-commit-config.yaml",
14
12
  "LICENSE",
15
- "mkdocs.yml",
16
- "benchmarks/benchmark_io_performance.py",
13
+ "CITATION.cff",
14
+ "README.md",
15
+ ".gitignore",
17
16
  ".github/pull_request_template.md",
18
17
  ".github/dependabot.yml",
18
+ ".github/ISSUE_TEMPLATE/bug_report.yml",
19
+ ".github/ISSUE_TEMPLATE/config.yml",
20
+ ".github/ISSUE_TEMPLATE/task.yml",
21
+ ".github/ISSUE_TEMPLATE/feature_request.yml",
22
+ ".github/workflows/pr-title.yaml",
23
+ ".github/workflows/release.yaml",
24
+ ".github/workflows/dependabot-auto-merge.yaml",
19
25
  ".github/workflows/tutorial-data.yaml",
20
26
  ".github/workflows/docs.yaml",
21
- ".github/workflows/pr-title.yaml",
22
27
  ".github/workflows/publish.yaml",
23
- ".github/workflows/dependabot-auto-merge.yaml",
24
- ".github/workflows/release.yaml",
25
28
  ".github/workflows/tests.yaml",
26
- ".github/ISSUE_TEMPLATE/task.yml",
27
- ".github/ISSUE_TEMPLATE/feature_request.yml",
28
- ".github/ISSUE_TEMPLATE/config.yml",
29
- ".github/ISSUE_TEMPLATE/bug_report.yml",
30
- "flixopt/network_app.py",
31
- "flixopt/plotting.py",
32
- "flixopt/structure.py",
33
- "flixopt/statistics_accessor.py",
34
- "flixopt/topology_accessor.py",
35
- "flixopt/optimization.py",
36
- "flixopt/types.py",
37
- "flixopt/interface.py",
38
- "flixopt/components.py",
39
- "flixopt/flow_system.py",
40
- "flixopt/elements.py",
41
- "flixopt/config.py",
42
- "flixopt/carrier.py",
43
- "flixopt/transform_accessor.py",
44
- "flixopt/core.py",
45
- "flixopt/effects.py",
46
- "flixopt/color_processing.py",
47
- "flixopt/results.py",
48
- "flixopt/solvers.py",
49
- "flixopt/modeling.py",
50
- "flixopt/stats_accessor.py",
51
- "flixopt/features.py",
52
- "flixopt/linear_converters.py",
53
- "flixopt/optimize_accessor.py",
54
- "flixopt/plot_result.py",
55
- "flixopt/comparison.py",
56
- "flixopt/io.py",
57
- "flixopt/__init__.py",
58
- "flixopt/clustering/base.py",
59
- "flixopt/clustering/intercluster_helpers.py",
60
- "flixopt/clustering/__init__.py",
61
- "flixopt/tutorials/_examples.py",
62
- "flixopt/tutorials/_tutorial_data.py",
63
- "flixopt/tutorials/__init__.py",
64
- "pics/architecture_flixOpt-pre2.0.0.png",
65
- "pics/architecture_flixOpt.png",
66
- "pics/pics.pptx",
67
29
  "pics/flixopt-icon.svg",
30
+ "pics/architecture_flixOpt-pre2.0.0.png",
68
31
  "pics/flixOpt_plotting.jpg",
69
- "scripts/gen_ref_pages.py",
70
- "scripts/build_tutorial_datasets.py",
71
- "scripts/format_changelog.py",
72
- "tests/conftest.py",
73
- "tests/test_scenarios.py",
32
+ "pics/pics.pptx",
33
+ "pics/architecture_flixOpt.png",
34
+ "tests/__init__.py",
74
35
  "tests/test_timeseries.py",
75
36
  "tests/test_comparison.py",
37
+ "tests/test_scenarios.py",
38
+ "tests/test_effects_dataset_validation.py",
39
+ "tests/conftest.py",
76
40
  "tests/test_tutorials.py",
77
- "tests/__init__.py",
78
- "tests/test_clustering/test_multiperiod_extremes.py",
79
- "tests/test_clustering/test_integration.py",
80
- "tests/test_clustering/test_cluster_reduce_expand.py",
81
- "tests/test_clustering/test_clustering_io.py",
82
- "tests/test_clustering/test_expansion_regression.py",
83
- "tests/test_clustering/test_base.py",
84
- "tests/test_clustering/__init__.py",
85
- "tests/utilities/test_on_hours_computation.py",
86
- "tests/utilities/test_cycle_detection.py",
87
- "tests/utilities/test_config.py",
88
- "tests/utilities/test_dataconverter.py",
89
- "tests/utilities/test_effects_shares_summation.py",
90
- "tests/utilities/__init__.py",
91
- "tests/plotting/test_topology_accessor.py",
92
- "tests/plotting/test_plotting_api.py",
93
- "tests/plotting/test_heatmap_reshape.py",
94
- "tests/plotting/test_network_app.py",
95
- "tests/plotting/test_solution_and_plotting.py",
96
- "tests/plotting/__init__.py",
97
- "tests/io/test_io.py",
98
- "tests/io/test_io_conversion.py",
99
- "tests/io/__init__.py",
100
- "tests/deprecated/test_flow.py",
101
- "tests/deprecated/test_results_overwrite.py",
102
- "tests/deprecated/test_resample_equivalence.py",
103
- "tests/deprecated/test_integration.py",
104
- "tests/deprecated/conftest.py",
105
- "tests/deprecated/test_on_hours_computation.py",
106
- "tests/deprecated/test_plotting_api.py",
107
- "tests/deprecated/test_flow_system_resample.py",
108
- "tests/deprecated/test_io.py",
109
- "tests/deprecated/test_component.py",
110
- "tests/deprecated/test_scenarios.py",
111
- "tests/deprecated/test_heatmap_reshape.py",
112
- "tests/deprecated/test_effect.py",
113
- "tests/deprecated/test_network_app.py",
114
- "tests/deprecated/test_timeseries.py",
115
- "tests/deprecated/test_functional.py",
116
- "tests/deprecated/test_linear_converter.py",
117
- "tests/deprecated/test_cycle_detection.py",
118
- "tests/deprecated/test_storage.py",
119
- "tests/deprecated/test_config.py",
120
- "tests/deprecated/test_bus.py",
121
- "tests/deprecated/test_effects_shares_summation.py",
122
- "tests/deprecated/test_examples.py",
123
- "tests/deprecated/test_results_plots.py",
124
- "tests/deprecated/test_results_io.py",
125
- "tests/deprecated/__init__.py",
126
- "tests/deprecated/examples/01_Simple/simple_example.py",
127
- "tests/deprecated/examples/03_Optimization_modes/example_optimization_modes.py",
128
- "tests/deprecated/examples/00_Minmal/minimal_example.py",
129
- "tests/deprecated/examples/02_Complex/complex_example.py",
130
- "tests/deprecated/examples/02_Complex/complex_example_results.py",
131
- "tests/deprecated/examples/04_Scenarios/scenario_example.py",
132
- "tests/deprecated/examples/05_Two-stage-optimization/two_stage_optimization.py",
41
+ "tests/ressources/Sim1--flow_system.nc4",
42
+ "tests/ressources/Zeitreihen2020.csv",
133
43
  "tests/ressources/Sim1--solution.nc4",
134
44
  "tests/ressources/Sim1--summary.yaml",
135
- "tests/ressources/Zeitreihen2020.csv",
136
- "tests/ressources/Sim1--flow_system.nc4",
137
- "tests/ressources/v4-api/01_simple--summary.yaml",
138
- "tests/ressources/v4-api/01_simple--solution.nc4",
45
+ "tests/ressources/v4-api/01_simple--model_documentation.yaml",
139
46
  "tests/ressources/v4-api/io_flow_system_segments--summary.yaml",
140
- "tests/ressources/v4-api/04_scenarios--summary.yaml",
141
- "tests/ressources/v4-api/00_minimal--solution.nc4",
142
- "tests/ressources/v4-api/io_flow_system_long--summary.yaml",
47
+ "tests/ressources/v4-api/02_complex--summary.yaml",
48
+ "tests/ressources/v4-api/04_scenarios--solution.nc4",
49
+ "tests/ressources/v4-api/01_simple--solution.nc4",
143
50
  "tests/ressources/v4-api/02_complex--flow_system.nc4",
51
+ "tests/ressources/v4-api/io_simple_flow_system_scenarios--model_documentation.yaml",
52
+ "tests/ressources/v4-api/00_minimal--flow_system.nc4",
53
+ "tests/ressources/v4-api/io_flow_system_long--solution.nc4",
54
+ "tests/ressources/v4-api/01_simple--summary.yaml",
55
+ "tests/ressources/v4-api/io_flow_system_base--summary.yaml",
56
+ "tests/ressources/v4-api/02_complex--model_documentation.yaml",
57
+ "tests/ressources/v4-api/io_simple_flow_system--solution.nc4",
58
+ "tests/ressources/v4-api/00_minimal--summary.yaml",
144
59
  "tests/ressources/v4-api/io_flow_system_long--flow_system.nc4",
145
- "tests/ressources/v4-api/io_flow_system_long--model_documentation.yaml",
146
60
  "tests/ressources/v4-api/io_simple_flow_system--model_documentation.yaml",
147
- "tests/ressources/v4-api/io_flow_system_segments--solution.nc4",
148
- "tests/ressources/v4-api/io_flow_system_base--solution.nc4",
149
- "tests/ressources/v4-api/io_simple_flow_system--summary.yaml",
150
- "tests/ressources/v4-api/io_simple_flow_system--flow_system.nc4",
151
61
  "tests/ressources/v4-api/00_minimal--model_documentation.yaml",
152
- "tests/ressources/v4-api/io_flow_system_long--solution.nc4",
62
+ "tests/ressources/v4-api/04_scenarios--flow_system.nc4",
153
63
  "tests/ressources/v4-api/01_simple--flow_system.nc4",
154
- "tests/ressources/v4-api/io_simple_flow_system--solution.nc4",
64
+ "tests/ressources/v4-api/io_simple_flow_system--summary.yaml",
65
+ "tests/ressources/v4-api/io_flow_system_long--model_documentation.yaml",
155
66
  "tests/ressources/v4-api/io_flow_system_base--model_documentation.yaml",
156
- "tests/ressources/v4-api/02_complex--summary.yaml",
157
- "tests/ressources/v4-api/io_flow_system_base--flow_system.nc4",
158
- "tests/ressources/v4-api/02_complex--model_documentation.yaml",
159
- "tests/ressources/v4-api/io_flow_system_base--summary.yaml",
160
- "tests/ressources/v4-api/04_scenarios--model_documentation.yaml",
161
- "tests/ressources/v4-api/04_scenarios--solution.nc4",
162
67
  "tests/ressources/v4-api/io_simple_flow_system_scenarios--solution.nc4",
68
+ "tests/ressources/v4-api/00_minimal--solution.nc4",
69
+ "tests/ressources/v4-api/io_flow_system_base--flow_system.nc4",
70
+ "tests/ressources/v4-api/io_flow_system_base--solution.nc4",
163
71
  "tests/ressources/v4-api/io_simple_flow_system_scenarios--flow_system.nc4",
164
- "tests/ressources/v4-api/02_complex--solution.nc4",
165
- "tests/ressources/v4-api/io_flow_system_segments--model_documentation.yaml",
166
- "tests/ressources/v4-api/io_simple_flow_system_scenarios--model_documentation.yaml",
72
+ "tests/ressources/v4-api/io_flow_system_long--summary.yaml",
167
73
  "tests/ressources/v4-api/io_flow_system_segments--flow_system.nc4",
168
- "tests/ressources/v4-api/01_simple--model_documentation.yaml",
169
- "tests/ressources/v4-api/04_scenarios--flow_system.nc4",
170
- "tests/ressources/v4-api/00_minimal--flow_system.nc4",
171
- "tests/ressources/v4-api/00_minimal--summary.yaml",
74
+ "tests/ressources/v4-api/io_simple_flow_system--flow_system.nc4",
172
75
  "tests/ressources/v4-api/io_simple_flow_system_scenarios--summary.yaml",
173
- "tests/superseded/test_integration.py",
174
- "tests/superseded/test_functional.py",
76
+ "tests/ressources/v4-api/04_scenarios--summary.yaml",
77
+ "tests/ressources/v4-api/04_scenarios--model_documentation.yaml",
78
+ "tests/ressources/v4-api/io_flow_system_segments--model_documentation.yaml",
79
+ "tests/ressources/v4-api/02_complex--solution.nc4",
80
+ "tests/ressources/v4-api/io_flow_system_segments--solution.nc4",
81
+ "tests/io/test_io.py",
82
+ "tests/io/__init__.py",
83
+ "tests/io/test_io_conversion.py",
84
+ "tests/flow_system/test_sel_isel_single_selection.py",
85
+ "tests/flow_system/test_flow_system_locking.py",
86
+ "tests/flow_system/test_flow_system_resample.py",
87
+ "tests/flow_system/__init__.py",
88
+ "tests/flow_system/test_resample_equivalence.py",
89
+ "tests/utilities/test_dataconverter.py",
90
+ "tests/utilities/test_on_hours_computation.py",
91
+ "tests/utilities/__init__.py",
92
+ "tests/utilities/test_effects_shares_summation.py",
93
+ "tests/utilities/test_cycle_detection.py",
94
+ "tests/utilities/test_config.py",
175
95
  "tests/superseded/test_solution_persistence.py",
176
96
  "tests/superseded/__init__.py",
97
+ "tests/superseded/test_integration.py",
98
+ "tests/superseded/test_functional.py",
99
+ "tests/superseded/math/test_linear_converter.py",
177
100
  "tests/superseded/math/test_flow.py",
178
101
  "tests/superseded/math/test_component.py",
102
+ "tests/superseded/math/__init__.py",
179
103
  "tests/superseded/math/test_effect.py",
180
- "tests/superseded/math/test_linear_converter.py",
181
- "tests/superseded/math/test_storage.py",
182
104
  "tests/superseded/math/test_bus.py",
183
- "tests/superseded/math/__init__.py",
184
- "tests/test_math/test_clustering.py",
105
+ "tests/superseded/math/test_storage.py",
106
+ "tests/test_clustering/test_cluster_reduce_expand.py",
107
+ "tests/test_clustering/test_multiperiod_extremes.py",
108
+ "tests/test_clustering/test_base.py",
109
+ "tests/test_clustering/test_clustering_io.py",
110
+ "tests/test_clustering/__init__.py",
111
+ "tests/test_clustering/test_integration.py",
112
+ "tests/test_clustering/test_expansion_regression.py",
113
+ "tests/plotting/test_topology_accessor.py",
114
+ "tests/plotting/__init__.py",
115
+ "tests/plotting/test_plotting_api.py",
116
+ "tests/plotting/test_solution_and_plotting.py",
117
+ "tests/plotting/test_heatmap_reshape.py",
118
+ "tests/plotting/test_network_app.py",
185
119
  "tests/test_math/test_multi_period.py",
186
- "tests/test_math/test_conversion.py",
187
120
  "tests/test_math/test_flow.py",
188
- "tests/test_math/conftest.py",
189
121
  "tests/test_math/test_effects.py",
190
- "tests/test_math/test_flow_invest.py",
191
- "tests/test_math/test_components.py",
192
- "tests/test_math/PLAN.md",
193
- "tests/test_math/test_piecewise.py",
194
- "tests/test_math/test_scenarios.py",
195
- "tests/test_math/test_flow_status.py",
196
122
  "tests/test_math/test_combinations.py",
197
- "tests/test_math/test_storage.py",
198
- "tests/test_math/test_bus.py",
199
123
  "tests/test_math/test_validation.py",
124
+ "tests/test_math/test_clustering.py",
125
+ "tests/test_math/test_piecewise.py",
126
+ "tests/test_math/test_flow_status.py",
200
127
  "tests/test_math/__init__.py",
201
- "tests/flow_system/test_resample_equivalence.py",
202
- "tests/flow_system/test_flow_system_locking.py",
203
- "tests/flow_system/test_flow_system_resample.py",
204
- "tests/flow_system/test_sel_isel_single_selection.py",
205
- "tests/flow_system/__init__.py",
128
+ "tests/test_math/test_conversion.py",
129
+ "tests/test_math/test_scenarios.py",
130
+ "tests/test_math/test_flow_invest.py",
131
+ "tests/test_math/test_bus.py",
132
+ "tests/test_math/PLAN.md",
133
+ "tests/test_math/test_components.py",
134
+ "tests/test_math/conftest.py",
135
+ "tests/test_math/test_storage.py",
136
+ "tests/deprecated/test_linear_converter.py",
137
+ "tests/deprecated/test_flow.py",
138
+ "tests/deprecated/test_results_overwrite.py",
139
+ "tests/deprecated/test_on_hours_computation.py",
140
+ "tests/deprecated/test_component.py",
141
+ "tests/deprecated/test_results_io.py",
142
+ "tests/deprecated/test_flow_system_resample.py",
143
+ "tests/deprecated/test_io.py",
144
+ "tests/deprecated/__init__.py",
145
+ "tests/deprecated/test_examples.py",
146
+ "tests/deprecated/test_integration.py",
147
+ "tests/deprecated/test_results_plots.py",
148
+ "tests/deprecated/test_timeseries.py",
149
+ "tests/deprecated/test_effects_shares_summation.py",
150
+ "tests/deprecated/test_plotting_api.py",
151
+ "tests/deprecated/test_effect.py",
152
+ "tests/deprecated/test_cycle_detection.py",
153
+ "tests/deprecated/test_scenarios.py",
154
+ "tests/deprecated/test_heatmap_reshape.py",
155
+ "tests/deprecated/test_resample_equivalence.py",
156
+ "tests/deprecated/test_bus.py",
157
+ "tests/deprecated/conftest.py",
158
+ "tests/deprecated/test_storage.py",
159
+ "tests/deprecated/test_config.py",
160
+ "tests/deprecated/test_network_app.py",
161
+ "tests/deprecated/test_functional.py",
162
+ "tests/deprecated/examples/00_Minmal/minimal_example.py",
163
+ "tests/deprecated/examples/05_Two-stage-optimization/two_stage_optimization.py",
164
+ "tests/deprecated/examples/02_Complex/complex_example.py",
165
+ "tests/deprecated/examples/02_Complex/complex_example_results.py",
166
+ "tests/deprecated/examples/01_Simple/simple_example.py",
167
+ "tests/deprecated/examples/03_Optimization_modes/example_optimization_modes.py",
168
+ "tests/deprecated/examples/04_Scenarios/scenario_example.py",
169
+ "scripts/gen_ref_pages.py",
170
+ "scripts/format_changelog.py",
171
+ "scripts/build_tutorial_datasets.py",
172
+ "flixopt/linear_converters.py",
173
+ "flixopt/types.py",
174
+ "flixopt/carrier.py",
175
+ "flixopt/elements.py",
176
+ "flixopt/comparison.py",
177
+ "flixopt/config.py",
178
+ "flixopt/features.py",
179
+ "flixopt/structure.py",
180
+ "flixopt/__init__.py",
181
+ "flixopt/optimize_accessor.py",
182
+ "flixopt/network_app.py",
183
+ "flixopt/solvers.py",
184
+ "flixopt/interface.py",
185
+ "flixopt/statistics_accessor.py",
186
+ "flixopt/plot_result.py",
187
+ "flixopt/flow_system.py",
188
+ "flixopt/results.py",
189
+ "flixopt/core.py",
190
+ "flixopt/plotting.py",
191
+ "flixopt/stats_accessor.py",
192
+ "flixopt/effects.py",
193
+ "flixopt/topology_accessor.py",
194
+ "flixopt/color_processing.py",
195
+ "flixopt/io.py",
196
+ "flixopt/components.py",
197
+ "flixopt/transform_accessor.py",
198
+ "flixopt/optimization.py",
199
+ "flixopt/modeling.py",
200
+ "flixopt/tutorials/__init__.py",
201
+ "flixopt/tutorials/_examples.py",
202
+ "flixopt/tutorials/_tutorial_data.py",
203
+ "flixopt/clustering/__init__.py",
204
+ "flixopt/clustering/intercluster_helpers.py",
205
+ "flixopt/clustering/base.py",
206
206
  "docs/roadmap.md",
207
207
  "docs/contribute.md",
208
208
  "docs/index.md",
209
209
  "docs/overrides/main.html",
210
- "docs/stylesheets/extra.css",
211
- "docs/javascripts/mathjax.js",
212
- "docs/javascripts/plotly-instant.js",
213
- "docs/notebooks/07-scenarios-and-periods.ipynb",
214
- "docs/notebooks/06b-piecewise-conversion.ipynb",
215
- "docs/notebooks/04-operational-constraints.ipynb",
216
- "docs/notebooks/08c-clustering.ipynb",
217
- "docs/notebooks/06a-time-varying-parameters.ipynb",
218
- "docs/notebooks/10-transmission.ipynb",
219
- "docs/notebooks/06c-piecewise-effects.ipynb",
220
- "docs/notebooks/05-multi-carrier-system.ipynb",
221
- "docs/notebooks/02-heat-system.ipynb",
222
- "docs/notebooks/09-plotting-and-data-access.ipynb",
223
- "docs/notebooks/08a-aggregation.ipynb",
224
- "docs/notebooks/index.md",
225
- "docs/notebooks/01-quickstart.ipynb",
226
- "docs/notebooks/08b-rolling-horizon.ipynb",
227
- "docs/notebooks/slow_notebooks.txt",
228
- "docs/notebooks/03-investment-optimization.ipynb",
229
- "docs/notebooks/08c2-clustering-storage-modes.ipynb",
230
- "docs/notebooks/data/generate_realistic_profiles.py",
231
- "docs/notebooks/data/Zeitreihen2020.csv",
232
- "docs/notebooks/data/generate_example_systems.py",
233
- "docs/notebooks/data/__init__.py",
234
- "docs/notebooks/data/raw/README.md",
235
- "docs/notebooks/data/raw/electricity_prices_de_2020.csv",
236
- "docs/notebooks/data/raw/tmy_dresden.csv",
237
- "docs/user-guide/support.md",
238
- "docs/user-guide/migration-guide-v5.md",
210
+ "docs/images/flixopt-icon.svg",
211
+ "docs/images/architecture_flixOpt-pre2.0.0.png",
212
+ "docs/images/architecture_flixOpt.png",
239
213
  "docs/user-guide/glossary.md",
240
- "docs/user-guide/results-plotting.md",
214
+ "docs/user-guide/migration-guide-v5.md",
215
+ "docs/user-guide/support.md",
216
+ "docs/user-guide/migration-guide-v3.md",
241
217
  "docs/user-guide/plotly-customization.md",
242
- "docs/user-guide/migration-guide-v6.md",
243
- "docs/user-guide/index.md",
244
218
  "docs/user-guide/migration-guide-v7.md",
245
- "docs/user-guide/migration-guide-v3.md",
246
- "docs/user-guide/faq.md",
219
+ "docs/user-guide/migration-guide-v6.md",
220
+ "docs/user-guide/results-plotting.md",
247
221
  "docs/user-guide/troubleshooting.md",
248
- "docs/user-guide/colors.md",
222
+ "docs/user-guide/faq.md",
249
223
  "docs/user-guide/core-concepts.md",
224
+ "docs/user-guide/colors.md",
225
+ "docs/user-guide/index.md",
250
226
  "docs/user-guide/recipes/plotting-custom-data.md",
251
227
  "docs/user-guide/recipes/index.md",
252
- "docs/user-guide/building-models/choosing-components.md",
253
- "docs/user-guide/building-models/index.md",
228
+ "docs/user-guide/results/index.md",
254
229
  "docs/user-guide/mathematical-notation/effects-and-dimensions.md",
255
230
  "docs/user-guide/mathematical-notation/index.md",
256
- "docs/user-guide/mathematical-notation/elements/LinearConverter.md",
257
- "docs/user-guide/mathematical-notation/elements/Bus.md",
258
231
  "docs/user-guide/mathematical-notation/elements/Flow.md",
232
+ "docs/user-guide/mathematical-notation/elements/Bus.md",
259
233
  "docs/user-guide/mathematical-notation/elements/Storage.md",
260
- "docs/user-guide/mathematical-notation/features/Piecewise.md",
234
+ "docs/user-guide/mathematical-notation/elements/LinearConverter.md",
261
235
  "docs/user-guide/mathematical-notation/features/StatusParameters.md",
262
236
  "docs/user-guide/mathematical-notation/features/InvestParameters.md",
237
+ "docs/user-guide/mathematical-notation/features/Piecewise.md",
238
+ "docs/user-guide/building-models/choosing-components.md",
239
+ "docs/user-guide/building-models/index.md",
263
240
  "docs/user-guide/optimization/clustering.md",
264
241
  "docs/user-guide/optimization/index.md",
265
- "docs/user-guide/results/index.md",
266
- "docs/images/architecture_flixOpt-pre2.0.0.png",
267
- "docs/images/architecture_flixOpt.png",
268
- "docs/images/flixopt-icon.svg",
269
- "docs/home/citing.md",
242
+ "docs/stylesheets/extra.css",
270
243
  "docs/home/quick-start.md",
271
- "docs/home/users.md",
244
+ "docs/home/license.md",
245
+ "docs/home/citing.md",
272
246
  "docs/home/installation.md",
273
- "docs/home/license.md"
247
+ "docs/home/users.md",
248
+ "docs/notebooks/08c2-clustering-storage-modes.ipynb",
249
+ "docs/notebooks/07-scenarios-and-periods.ipynb",
250
+ "docs/notebooks/06b-piecewise-conversion.ipynb",
251
+ "docs/notebooks/05-multi-carrier-system.ipynb",
252
+ "docs/notebooks/01-quickstart.ipynb",
253
+ "docs/notebooks/02-heat-system.ipynb",
254
+ "docs/notebooks/08c-clustering.ipynb",
255
+ "docs/notebooks/04-operational-constraints.ipynb",
256
+ "docs/notebooks/06c-piecewise-effects.ipynb",
257
+ "docs/notebooks/08a-aggregation.ipynb",
258
+ "docs/notebooks/03-investment-optimization.ipynb",
259
+ "docs/notebooks/06a-time-varying-parameters.ipynb",
260
+ "docs/notebooks/10-transmission.ipynb",
261
+ "docs/notebooks/08b-rolling-horizon.ipynb",
262
+ "docs/notebooks/slow_notebooks.txt",
263
+ "docs/notebooks/09-plotting-and-data-access.ipynb",
264
+ "docs/notebooks/index.md",
265
+ "docs/notebooks/data/__init__.py",
266
+ "docs/notebooks/data/generate_example_systems.py",
267
+ "docs/notebooks/data/generate_realistic_profiles.py",
268
+ "docs/notebooks/data/Zeitreihen2020.csv",
269
+ "docs/notebooks/data/raw/electricity_prices_de_2020.csv",
270
+ "docs/notebooks/data/raw/tmy_dresden.csv",
271
+ "docs/notebooks/data/raw/README.md",
272
+ "docs/javascripts/plotly-instant.js",
273
+ "docs/javascripts/mathjax.js",
274
+ "benchmarks/benchmark_io_performance.py"
274
275
  ]
275
276
  }
@@ -0,0 +1,8 @@
1
+ {
2
+ "tag": "7.2.3",
3
+ "distance": 0,
4
+ "node": "g2968b1b952e287013c66af21683a0c482ac02f65",
5
+ "dirty": false,
6
+ "branch": "HEAD",
7
+ "node_date": "2026-07-23"
8
+ }
@@ -1,3 +0,0 @@
1
- {
2
- ".": "7.2.1"
3
- }
@@ -1,8 +0,0 @@
1
- {
2
- "tag": "7.2.1",
3
- "distance": 0,
4
- "node": "ge18a7e8ab286b3573d87ea81b13615af876f1691",
5
- "dirty": false,
6
- "branch": "HEAD",
7
- "node_date": "2026-07-21"
8
- }
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