pypsa 1.2.0__tar.gz → 1.2.2__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 (795) hide show
  1. {pypsa-1.2.0 → pypsa-1.2.2}/.github/ISSUE_TEMPLATE/bug_report.yaml +2 -0
  2. {pypsa-1.2.0 → pypsa-1.2.2}/.github/ISSUE_TEMPLATE/feature_request.md +2 -0
  3. {pypsa-1.2.0 → pypsa-1.2.2}/.github/pull_request_template.md +1 -0
  4. {pypsa-1.2.0 → pypsa-1.2.2}/.github/workflows/release.yml +7 -1
  5. {pypsa-1.2.0 → pypsa-1.2.2}/.github/workflows/test-models.yml +4 -1
  6. {pypsa-1.2.0 → pypsa-1.2.2}/.github/workflows/test.yml +1 -0
  7. pypsa-1.2.2/CONTRIBUTING.md +14 -0
  8. {pypsa-1.2.0/pypsa.egg-info → pypsa-1.2.2}/PKG-INFO +4 -4
  9. {pypsa-1.2.0 → pypsa-1.2.2}/README.md +1 -1
  10. {pypsa-1.2.0 → pypsa-1.2.2}/docs/contributing/contributing.md +18 -0
  11. {pypsa-1.2.0 → pypsa-1.2.2}/docs/examples/tracing-infeasibilities.ipynb +3 -28
  12. {pypsa-1.2.0 → pypsa-1.2.2}/docs/home/features.md +1 -1
  13. {pypsa-1.2.0 → pypsa-1.2.2}/docs/home/models.md +2 -0
  14. {pypsa-1.2.0 → pypsa-1.2.2}/docs/home/users.md +4 -0
  15. {pypsa-1.2.0 → pypsa-1.2.2}/docs/release-notes.md +27 -2
  16. {pypsa-1.2.0 → pypsa-1.2.2}/docs/requirements.txt +41 -80
  17. {pypsa-1.2.0 → pypsa-1.2.2}/pyproject.toml +2 -2
  18. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/components/types.py +1 -1
  19. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/examples.py +8 -1
  20. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/network/io.py +1 -1
  21. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/optimization/constraints.py +13 -6
  22. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/optimization/optimize.py +1 -1
  23. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/statistics/expressions.py +2 -3
  24. {pypsa-1.2.0 → pypsa-1.2.2/pypsa.egg-info}/PKG-INFO +4 -4
  25. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa.egg-info/requires.txt +2 -2
  26. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_examples.py +24 -0
  27. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_lopf_basic_constraints.py +76 -0
  28. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_lopf_unit_commitment.py +47 -0
  29. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_network.py +13 -0
  30. pypsa-1.2.0/CONTRIBUTING.md +0 -11
  31. {pypsa-1.2.0 → pypsa-1.2.2}/.codespell.ignore +0 -0
  32. {pypsa-1.2.0 → pypsa-1.2.2}/.git-blame-ignore-revs +0 -0
  33. {pypsa-1.2.0 → pypsa-1.2.2}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  34. {pypsa-1.2.0 → pypsa-1.2.2}/.github/ISSUE_TEMPLATE/documentation_improvement.yaml +0 -0
  35. {pypsa-1.2.0 → pypsa-1.2.2}/.github/dependabot.yml +0 -0
  36. {pypsa-1.2.0 → pypsa-1.2.2}/.github/workflows/codeql.yml +0 -0
  37. {pypsa-1.2.0 → pypsa-1.2.2}/.gitignore +0 -0
  38. {pypsa-1.2.0 → pypsa-1.2.2}/.pre-commit-config.yaml +0 -0
  39. {pypsa-1.2.0 → pypsa-1.2.2}/.readthedocs.yml +0 -0
  40. {pypsa-1.2.0 → pypsa-1.2.2}/CITATION.cff +0 -0
  41. {pypsa-1.2.0 → pypsa-1.2.2}/LICENSE +0 -0
  42. {pypsa-1.2.0 → pypsa-1.2.2}/LICENSES/CC-BY-4.0.txt +0 -0
  43. {pypsa-1.2.0 → pypsa-1.2.2}/LICENSES/MIT.txt +0 -0
  44. {pypsa-1.2.0 → pypsa-1.2.2}/MANIFEST.in +0 -0
  45. {pypsa-1.2.0 → pypsa-1.2.2}/REUSE.toml +0 -0
  46. {pypsa-1.2.0 → pypsa-1.2.2}/codecov.yml +0 -0
  47. {pypsa-1.2.0 → pypsa-1.2.2}/docs/CODE_OF_CONDUCT.md +0 -0
  48. {pypsa-1.2.0 → pypsa-1.2.2}/docs/SECURITY.md +0 -0
  49. {pypsa-1.2.0 → pypsa-1.2.2}/docs/api/components/common.md +0 -0
  50. {pypsa-1.2.0 → pypsa-1.2.2}/docs/api/components/components.md +0 -0
  51. {pypsa-1.2.0 → pypsa-1.2.2}/docs/api/components/types/buses.md +0 -0
  52. {pypsa-1.2.0 → pypsa-1.2.2}/docs/api/components/types/carriers.md +0 -0
  53. {pypsa-1.2.0 → pypsa-1.2.2}/docs/api/components/types/generators.md +0 -0
  54. {pypsa-1.2.0 → pypsa-1.2.2}/docs/api/components/types/global-constraints.md +0 -0
  55. {pypsa-1.2.0 → pypsa-1.2.2}/docs/api/components/types/lines.md +0 -0
  56. {pypsa-1.2.0 → pypsa-1.2.2}/docs/api/components/types/links.md +0 -0
  57. {pypsa-1.2.0 → pypsa-1.2.2}/docs/api/components/types/loads.md +0 -0
  58. {pypsa-1.2.0 → pypsa-1.2.2}/docs/api/components/types/processes.md +0 -0
  59. {pypsa-1.2.0 → pypsa-1.2.2}/docs/api/components/types/shapes.md +0 -0
  60. {pypsa-1.2.0 → pypsa-1.2.2}/docs/api/components/types/shunt-impedances.md +0 -0
  61. {pypsa-1.2.0 → pypsa-1.2.2}/docs/api/components/types/storage-units.md +0 -0
  62. {pypsa-1.2.0 → pypsa-1.2.2}/docs/api/components/types/stores.md +0 -0
  63. {pypsa-1.2.0 → pypsa-1.2.2}/docs/api/components/types/sub-networks.md +0 -0
  64. {pypsa-1.2.0 → pypsa-1.2.2}/docs/api/components/types/transformers.md +0 -0
  65. {pypsa-1.2.0 → pypsa-1.2.2}/docs/api/networks/cluster.md +0 -0
  66. {pypsa-1.2.0 → pypsa-1.2.2}/docs/api/networks/collection.md +0 -0
  67. {pypsa-1.2.0 → pypsa-1.2.2}/docs/api/networks/components.md +0 -0
  68. {pypsa-1.2.0 → pypsa-1.2.2}/docs/api/networks/constraints.md +0 -0
  69. {pypsa-1.2.0 → pypsa-1.2.2}/docs/api/networks/descriptors.md +0 -0
  70. {pypsa-1.2.0 → pypsa-1.2.2}/docs/api/networks/indexing.md +0 -0
  71. {pypsa-1.2.0 → pypsa-1.2.2}/docs/api/networks/io.md +0 -0
  72. {pypsa-1.2.0 → pypsa-1.2.2}/docs/api/networks/network.md +0 -0
  73. {pypsa-1.2.0 → pypsa-1.2.2}/docs/api/networks/optimize.md +0 -0
  74. {pypsa-1.2.0 → pypsa-1.2.2}/docs/api/networks/plot.md +0 -0
  75. {pypsa-1.2.0 → pypsa-1.2.2}/docs/api/networks/power-flow.md +0 -0
  76. {pypsa-1.2.0 → pypsa-1.2.2}/docs/api/networks/statistics.md +0 -0
  77. {pypsa-1.2.0 → pypsa-1.2.2}/docs/api/networks/subnetwork.md +0 -0
  78. {pypsa-1.2.0 → pypsa-1.2.2}/docs/api/networks/transform.md +0 -0
  79. {pypsa-1.2.0 → pypsa-1.2.2}/docs/api/other/api-examples.md +0 -0
  80. {pypsa-1.2.0 → pypsa-1.2.2}/docs/api/other/common.md +0 -0
  81. {pypsa-1.2.0 → pypsa-1.2.2}/docs/api/other/consistency.md +0 -0
  82. {pypsa-1.2.0 → pypsa-1.2.2}/docs/api/other/costs.md +0 -0
  83. {pypsa-1.2.0 → pypsa-1.2.2}/docs/api/other/options.md +0 -0
  84. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/images/ac_dc_meshed-energy_balance-area_plot.jpg +0 -0
  85. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/images/ac_dc_meshed-energy_balance-area_plot.png +0 -0
  86. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/images/ac_dc_meshed-energy_balance-bar_plot.jpg +0 -0
  87. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/images/ac_dc_meshed-energy_balance-bar_plot.png +0 -0
  88. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/images/ac_dc_meshed-energy_balance-box_plot.png +0 -0
  89. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/images/ac_dc_meshed-energy_balance-custom_area_plot.png +0 -0
  90. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/images/ac_dc_meshed-energy_balance-histogram_plot.jpg +0 -0
  91. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/images/ac_dc_meshed-energy_balance-histogram_plot.png +0 -0
  92. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/images/ac_dc_meshed-energy_balance-line_plot.jpg +0 -0
  93. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/images/ac_dc_meshed-energy_balance-line_plot.png +0 -0
  94. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/images/ac_dc_meshed-energy_balance-map_plot.png +0 -0
  95. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/images/ac_dc_meshed-energy_balance-scatter_plot.jpg +0 -0
  96. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/images/ac_dc_meshed-energy_balance-scatter_plot.png +0 -0
  97. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/images/ac_dc_meshed-energy_balance-violin_plot.png +0 -0
  98. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/images/ac_dc_meshed-installed_capacity-bar_plot.jpg +0 -0
  99. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/images/ac_dc_meshed-installed_capacity-bar_plot.png +0 -0
  100. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/images/ac_dc_meshed.png +0 -0
  101. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/images/buses.png +0 -0
  102. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/images/carbon_management-energy_balance-area_plot-AC-bus_carrier.png +0 -0
  103. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/images/carbon_management-energy_balance-area_plot.png +0 -0
  104. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/images/elec_s_256_lv1.09_Co2L-3H.png +0 -0
  105. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/images/line-equivalent.png +0 -0
  106. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/images/lmp_and_line-loading.png +0 -0
  107. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/images/load-distribution.png +0 -0
  108. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/images/p_max_pu.png +0 -0
  109. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/images/pypsa-animation.png +0 -0
  110. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/images/pypsa-logo.png +0 -0
  111. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/images/reactive-power.png +0 -0
  112. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/images/reserve-power-funding.gif +0 -0
  113. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/images/reserve-power-graph.png +0 -0
  114. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/images/scigrid-curtailment.png +0 -0
  115. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/images/stacked-gen.png +0 -0
  116. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/images/stacked-gen_and_storage-scigrid.png +0 -0
  117. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/images/statistics_advanced_usage.png +0 -0
  118. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/images/storage-scigrid.png +0 -0
  119. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/images/transformer-pi-equivalent-tap-hv.png +0 -0
  120. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/images/transformer-pi-equivalent-tap-lv.png +0 -0
  121. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/images/transformer-t-equivalent-tap-hv.png +0 -0
  122. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/images/transformer-t-equivalent-tap-lv.png +0 -0
  123. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/interactive/ac_dc_meshed-energy_balance-area_iplot.html +0 -0
  124. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/interactive/carbon_management-energy_balance-area_iplot-AC-bus_carrier.html +0 -0
  125. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/interactive/carbon_management-energy_balance-area_iplot.html +0 -0
  126. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/javascripts/gurubase-widget.js +0 -0
  127. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/javascripts/mathjax.js +0 -0
  128. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/javascripts/readthedocs.js +0 -0
  129. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/logo/logo-primary-dark.png +0 -0
  130. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/logo/logo-primary-dark.svg +0 -0
  131. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/logo/logo-primary-light-white-bg.png +0 -0
  132. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/logo/logo-primary-light.png +0 -0
  133. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/logo/logo-primary-light.svg +0 -0
  134. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/logo/logo-secondary-dark.png +0 -0
  135. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/logo/logo-secondary-dark.svg +0 -0
  136. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/logo/logo-secondary-light.png +0 -0
  137. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/logo/logo-secondary-light.svg +0 -0
  138. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/logo/logo-white-bg.png +0 -0
  139. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/logo/logo.png +0 -0
  140. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/logo/logo.svg +0 -0
  141. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/overrides/main.html +0 -0
  142. {pypsa-1.2.0 → pypsa-1.2.2}/docs/assets/stylesheets/extra.css +0 -0
  143. {pypsa-1.2.0 → pypsa-1.2.2}/docs/contributing/contributors.md +0 -0
  144. {pypsa-1.2.0 → pypsa-1.2.2}/docs/examples/3-node-cem.ipynb +0 -0
  145. {pypsa-1.2.0 → pypsa-1.2.2}/docs/examples/ac-dc-lopf.ipynb +0 -0
  146. {pypsa-1.2.0 → pypsa-1.2.2}/docs/examples/battery-electric-vehicle-charging.ipynb +0 -0
  147. {pypsa-1.2.0 → pypsa-1.2.2}/docs/examples/biomass-synthetic-fuels-carbon-management.ipynb +0 -0
  148. {pypsa-1.2.0 → pypsa-1.2.2}/docs/examples/capacity-expansion-planning-single-node.ipynb +0 -0
  149. {pypsa-1.2.0 → pypsa-1.2.2}/docs/examples/chained-hydro-reservoirs.ipynb +0 -0
  150. {pypsa-1.2.0 → pypsa-1.2.2}/docs/examples/chp-fixed-heat-power-ratio.ipynb +0 -0
  151. {pypsa-1.2.0 → pypsa-1.2.2}/docs/examples/committable-extendable.ipynb +0 -0
  152. {pypsa-1.2.0 → pypsa-1.2.2}/docs/examples/demand-elasticity.ipynb +0 -0
  153. {pypsa-1.2.0 → pypsa-1.2.2}/docs/examples/demand-supply-bids.ipynb +0 -0
  154. {pypsa-1.2.0 → pypsa-1.2.2}/docs/examples/example-1.ipynb +0 -0
  155. {pypsa-1.2.0 → pypsa-1.2.2}/docs/examples/example-2.ipynb +0 -0
  156. {pypsa-1.2.0 → pypsa-1.2.2}/docs/examples/example-3.ipynb +0 -0
  157. {pypsa-1.2.0 → pypsa-1.2.2}/docs/examples/examples.md +0 -0
  158. {pypsa-1.2.0 → pypsa-1.2.2}/docs/examples/generation-investment-screening-curve.ipynb +0 -0
  159. {pypsa-1.2.0 → pypsa-1.2.2}/docs/examples/gsa.ipynb +0 -0
  160. {pypsa-1.2.0 → pypsa-1.2.2}/docs/examples/imperfect-competition.ipynb +0 -0
  161. {pypsa-1.2.0 → pypsa-1.2.2}/docs/examples/islanded-methanol-production.ipynb +0 -0
  162. {pypsa-1.2.0 → pypsa-1.2.2}/docs/examples/mga.ipynb +0 -0
  163. {pypsa-1.2.0 → pypsa-1.2.2}/docs/examples/minimal-example-pf.ipynb +0 -0
  164. {pypsa-1.2.0 → pypsa-1.2.2}/docs/examples/modular-committable.ipynb +0 -0
  165. {pypsa-1.2.0 → pypsa-1.2.2}/docs/examples/modular-expansion.ipynb +0 -0
  166. {pypsa-1.2.0 → pypsa-1.2.2}/docs/examples/multi-investment-optimisation.ipynb +0 -0
  167. {pypsa-1.2.0 → pypsa-1.2.2}/docs/examples/myopic-pathway.ipynb +0 -0
  168. {pypsa-1.2.0 → pypsa-1.2.2}/docs/examples/near-opt-space.ipynb +0 -0
  169. {pypsa-1.2.0 → pypsa-1.2.2}/docs/examples/negative-prices-kvl-baker.ipynb +0 -0
  170. {pypsa-1.2.0 → pypsa-1.2.2}/docs/examples/periodic-operational-limits.ipynb +0 -0
  171. {pypsa-1.2.0 → pypsa-1.2.2}/docs/examples/power-to-gas-boiler-chp.ipynb +0 -0
  172. {pypsa-1.2.0 → pypsa-1.2.2}/docs/examples/power-to-heat-water-tank.ipynb +0 -0
  173. {pypsa-1.2.0 → pypsa-1.2.2}/docs/examples/replace-generator-storage-units-with-store.ipynb +0 -0
  174. {pypsa-1.2.0 → pypsa-1.2.2}/docs/examples/reserve-power.ipynb +0 -0
  175. {pypsa-1.2.0 → pypsa-1.2.2}/docs/examples/rh_example.png +0 -0
  176. {pypsa-1.2.0 → pypsa-1.2.2}/docs/examples/rolling-horizon.ipynb +0 -0
  177. {pypsa-1.2.0 → pypsa-1.2.2}/docs/examples/scigrid-lopf-then-pf.ipynb +0 -0
  178. {pypsa-1.2.0 → pypsa-1.2.2}/docs/examples/scigrid-redispatch.ipynb +0 -0
  179. {pypsa-1.2.0 → pypsa-1.2.2}/docs/examples/scigrid-sclopf.ipynb +0 -0
  180. {pypsa-1.2.0 → pypsa-1.2.2}/docs/examples/sector-coupling-single-node.ipynb +0 -0
  181. {pypsa-1.2.0 → pypsa-1.2.2}/docs/examples/simple-electricity-market-examples.ipynb +0 -0
  182. {pypsa-1.2.0 → pypsa-1.2.2}/docs/examples/stochastic-optimization.ipynb +0 -0
  183. {pypsa-1.2.0 → pypsa-1.2.2}/docs/examples/time-series-aggregation.ipynb +0 -0
  184. {pypsa-1.2.0 → pypsa-1.2.2}/docs/examples/transformer-example.ipynb +0 -0
  185. {pypsa-1.2.0 → pypsa-1.2.2}/docs/examples/transport-delay.ipynb +0 -0
  186. {pypsa-1.2.0 → pypsa-1.2.2}/docs/examples/uc-prices.ipynb +0 -0
  187. {pypsa-1.2.0 → pypsa-1.2.2}/docs/examples/unit-commitment.ipynb +0 -0
  188. {pypsa-1.2.0 → pypsa-1.2.2}/docs/examples/water-value.ipynb +0 -0
  189. {pypsa-1.2.0 → pypsa-1.2.2}/docs/home/citing.md +0 -0
  190. {pypsa-1.2.0 → pypsa-1.2.2}/docs/home/installation.md +0 -0
  191. {pypsa-1.2.0 → pypsa-1.2.2}/docs/home/license.md +0 -0
  192. {pypsa-1.2.0 → pypsa-1.2.2}/docs/hooks/cleanup.py +0 -0
  193. {pypsa-1.2.0 → pypsa-1.2.2}/docs/hooks/dynamic_inspect.py +0 -0
  194. {pypsa-1.2.0 → pypsa-1.2.2}/docs/hooks/notebook_timing.py +0 -0
  195. {pypsa-1.2.0 → pypsa-1.2.2}/docs/hooks/path_aliases.py +0 -0
  196. {pypsa-1.2.0 → pypsa-1.2.2}/docs/hooks/shortcodes.py +0 -0
  197. {pypsa-1.2.0 → pypsa-1.2.2}/docs/index.md +0 -0
  198. {pypsa-1.2.0 → pypsa-1.2.2}/docs/user-guide/clustering.ipynb +0 -0
  199. {pypsa-1.2.0 → pypsa-1.2.2}/docs/user-guide/collection.md +0 -0
  200. {pypsa-1.2.0 → pypsa-1.2.2}/docs/user-guide/components/buses.md +0 -0
  201. {pypsa-1.2.0 → pypsa-1.2.2}/docs/user-guide/components/carriers.md +0 -0
  202. {pypsa-1.2.0 → pypsa-1.2.2}/docs/user-guide/components/generators.md +0 -0
  203. {pypsa-1.2.0 → pypsa-1.2.2}/docs/user-guide/components/global-constraints.md +0 -0
  204. {pypsa-1.2.0 → pypsa-1.2.2}/docs/user-guide/components/line-types.md +0 -0
  205. {pypsa-1.2.0 → pypsa-1.2.2}/docs/user-guide/components/lines.md +0 -0
  206. {pypsa-1.2.0 → pypsa-1.2.2}/docs/user-guide/components/links.md +0 -0
  207. {pypsa-1.2.0 → pypsa-1.2.2}/docs/user-guide/components/loads.md +0 -0
  208. {pypsa-1.2.0 → pypsa-1.2.2}/docs/user-guide/components/processes.md +0 -0
  209. {pypsa-1.2.0 → pypsa-1.2.2}/docs/user-guide/components/shapes.md +0 -0
  210. {pypsa-1.2.0 → pypsa-1.2.2}/docs/user-guide/components/shunt-impedances.md +0 -0
  211. {pypsa-1.2.0 → pypsa-1.2.2}/docs/user-guide/components/storage-units.md +0 -0
  212. {pypsa-1.2.0 → pypsa-1.2.2}/docs/user-guide/components/stores.md +0 -0
  213. {pypsa-1.2.0 → pypsa-1.2.2}/docs/user-guide/components/sub-networks.md +0 -0
  214. {pypsa-1.2.0 → pypsa-1.2.2}/docs/user-guide/components/transformer-types.md +0 -0
  215. {pypsa-1.2.0 → pypsa-1.2.2}/docs/user-guide/components/transformers.md +0 -0
  216. {pypsa-1.2.0 → pypsa-1.2.2}/docs/user-guide/components.md +0 -0
  217. {pypsa-1.2.0 → pypsa-1.2.2}/docs/user-guide/design.md +0 -0
  218. {pypsa-1.2.0 → pypsa-1.2.2}/docs/user-guide/faq.md +0 -0
  219. {pypsa-1.2.0 → pypsa-1.2.2}/docs/user-guide/import-export.md +0 -0
  220. {pypsa-1.2.0 → pypsa-1.2.2}/docs/user-guide/learning-materials.md +0 -0
  221. {pypsa-1.2.0 → pypsa-1.2.2}/docs/user-guide/linear-power-flow.md +0 -0
  222. {pypsa-1.2.0 → pypsa-1.2.2}/docs/user-guide/logging.ipynb +0 -0
  223. {pypsa-1.2.0 → pypsa-1.2.2}/docs/user-guide/network-optimization.md +0 -0
  224. {pypsa-1.2.0 → pypsa-1.2.2}/docs/user-guide/optimization/capacity-limits.md +0 -0
  225. {pypsa-1.2.0 → pypsa-1.2.2}/docs/user-guide/optimization/contingencies.md +0 -0
  226. {pypsa-1.2.0 → pypsa-1.2.2}/docs/user-guide/optimization/custom-constraints.md +0 -0
  227. {pypsa-1.2.0 → pypsa-1.2.2}/docs/user-guide/optimization/dispatch-limits.md +0 -0
  228. {pypsa-1.2.0 → pypsa-1.2.2}/docs/user-guide/optimization/energy-balance.md +0 -0
  229. {pypsa-1.2.0 → pypsa-1.2.2}/docs/user-guide/optimization/global-constraints.md +0 -0
  230. {pypsa-1.2.0 → pypsa-1.2.2}/docs/user-guide/optimization/modelling-to-generate-alternatives.md +0 -0
  231. {pypsa-1.2.0 → pypsa-1.2.2}/docs/user-guide/optimization/objective.md +0 -0
  232. {pypsa-1.2.0 → pypsa-1.2.2}/docs/user-guide/optimization/overview.md +0 -0
  233. {pypsa-1.2.0 → pypsa-1.2.2}/docs/user-guide/optimization/pathway-planning.md +0 -0
  234. {pypsa-1.2.0 → pypsa-1.2.2}/docs/user-guide/optimization/power-flow.md +0 -0
  235. {pypsa-1.2.0 → pypsa-1.2.2}/docs/user-guide/optimization/stochastic.md +0 -0
  236. {pypsa-1.2.0 → pypsa-1.2.2}/docs/user-guide/optimization/storage.md +0 -0
  237. {pypsa-1.2.0 → pypsa-1.2.2}/docs/user-guide/optimization/unit-commitment.md +0 -0
  238. {pypsa-1.2.0 → pypsa-1.2.2}/docs/user-guide/options.md +0 -0
  239. {pypsa-1.2.0 → pypsa-1.2.2}/docs/user-guide/plotting/charts.md +0 -0
  240. {pypsa-1.2.0 → pypsa-1.2.2}/docs/user-guide/plotting/explore.ipynb +0 -0
  241. {pypsa-1.2.0 → pypsa-1.2.2}/docs/user-guide/plotting/static-map.ipynb +0 -0
  242. {pypsa-1.2.0 → pypsa-1.2.2}/docs/user-guide/power-flow.md +0 -0
  243. {pypsa-1.2.0 → pypsa-1.2.2}/docs/user-guide/statistics.md +0 -0
  244. {pypsa-1.2.0 → pypsa-1.2.2}/docs/user-guide/support.md +0 -0
  245. {pypsa-1.2.0 → pypsa-1.2.2}/docs/user-guide/troubleshooting.md +0 -0
  246. {pypsa-1.2.0 → pypsa-1.2.2}/docs/user-guide/user-guide.md +0 -0
  247. {pypsa-1.2.0 → pypsa-1.2.2}/docs/user-guide/v1-guide.md +0 -0
  248. {pypsa-1.2.0 → pypsa-1.2.2}/docs/user-guide/warnings.md +0 -0
  249. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/ac-dc-meshed/ac-dc-meshed/buses.csv +0 -0
  250. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/ac-dc-meshed/ac-dc-meshed/carriers.csv +0 -0
  251. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/ac-dc-meshed/ac-dc-meshed/crs.json +0 -0
  252. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/ac-dc-meshed/ac-dc-meshed/generators-p_max_pu.csv +0 -0
  253. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/ac-dc-meshed/ac-dc-meshed/generators.csv +0 -0
  254. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/ac-dc-meshed/ac-dc-meshed/global_constraints.csv +0 -0
  255. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/ac-dc-meshed/ac-dc-meshed/investment_periods.csv +0 -0
  256. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/ac-dc-meshed/ac-dc-meshed/lines.csv +0 -0
  257. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/ac-dc-meshed/ac-dc-meshed/links.csv +0 -0
  258. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/ac-dc-meshed/ac-dc-meshed/loads-p_set.csv +0 -0
  259. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/ac-dc-meshed/ac-dc-meshed/loads.csv +0 -0
  260. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/ac-dc-meshed/ac-dc-meshed/meta.json +0 -0
  261. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/ac-dc-meshed/ac-dc-meshed/network.csv +0 -0
  262. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/ac-dc-meshed/ac-dc-meshed/snapshots.csv +0 -0
  263. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/ac-dc-meshed/ac-dc-meshed.nc +0 -0
  264. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/model-energy/model-energy/buses.csv +0 -0
  265. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/model-energy/model-energy/carriers.csv +0 -0
  266. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/model-energy/model-energy/crs.json +0 -0
  267. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/model-energy/model-energy/generators-p_max_pu.csv +0 -0
  268. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/model-energy/model-energy/generators.csv +0 -0
  269. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/model-energy/model-energy/investment_periods.csv +0 -0
  270. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/model-energy/model-energy/links.csv +0 -0
  271. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/model-energy/model-energy/loads-p_set.csv +0 -0
  272. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/model-energy/model-energy/loads.csv +0 -0
  273. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/model-energy/model-energy/meta.json +0 -0
  274. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/model-energy/model-energy/network.csv +0 -0
  275. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/model-energy/model-energy/snapshots.csv +0 -0
  276. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/model-energy/model-energy/storage_units.csv +0 -0
  277. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/model-energy/model-energy/stores.csv +0 -0
  278. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/model-energy/model-energy.nc +0 -0
  279. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/scigrid-de/scigrid-de/buses.csv +0 -0
  280. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/scigrid-de/scigrid-de/carriers.csv +0 -0
  281. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/scigrid-de/scigrid-de/crs.json +0 -0
  282. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/scigrid-de/scigrid-de/generators-p_max_pu.csv +0 -0
  283. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/scigrid-de/scigrid-de/generators.csv +0 -0
  284. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/scigrid-de/scigrid-de/investment_periods.csv +0 -0
  285. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/scigrid-de/scigrid-de/lines.csv +0 -0
  286. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/scigrid-de/scigrid-de/loads-p_set.csv +0 -0
  287. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/scigrid-de/scigrid-de/loads.csv +0 -0
  288. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/scigrid-de/scigrid-de/meta.json +0 -0
  289. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/scigrid-de/scigrid-de/network.csv +0 -0
  290. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/scigrid-de/scigrid-de/snapshots.csv +0 -0
  291. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/scigrid-de/scigrid-de/storage_units.csv +0 -0
  292. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/scigrid-de/scigrid-de/transformers.csv +0 -0
  293. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/scigrid-de/scigrid-de.nc +0 -0
  294. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/stochastic-network/stochastic-network.nc +0 -0
  295. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/storage-hvdc/storage-hvdc/buses.csv +0 -0
  296. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/storage-hvdc/storage-hvdc/carriers.csv +0 -0
  297. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/storage-hvdc/storage-hvdc/crs.json +0 -0
  298. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/storage-hvdc/storage-hvdc/generators-p_max_pu.csv +0 -0
  299. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/storage-hvdc/storage-hvdc/generators.csv +0 -0
  300. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/storage-hvdc/storage-hvdc/global_constraints.csv +0 -0
  301. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/storage-hvdc/storage-hvdc/investment_periods.csv +0 -0
  302. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/storage-hvdc/storage-hvdc/lines.csv +0 -0
  303. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/storage-hvdc/storage-hvdc/links.csv +0 -0
  304. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/storage-hvdc/storage-hvdc/loads-p_set.csv +0 -0
  305. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/storage-hvdc/storage-hvdc/loads.csv +0 -0
  306. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/storage-hvdc/storage-hvdc/meta.json +0 -0
  307. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/storage-hvdc/storage-hvdc/network.csv +0 -0
  308. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/storage-hvdc/storage-hvdc/snapshots.csv +0 -0
  309. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/storage-hvdc/storage-hvdc/storage_units-inflow.csv +0 -0
  310. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/storage-hvdc/storage-hvdc/storage_units-state_of_charge_set.csv +0 -0
  311. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/storage-hvdc/storage-hvdc/storage_units.csv +0 -0
  312. {pypsa-1.2.0 → pypsa-1.2.2}/examples/networks/storage-hvdc/storage-hvdc.nc +0 -0
  313. {pypsa-1.2.0 → pypsa-1.2.2}/mkdocs.yml +0 -0
  314. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/__init__.py +0 -0
  315. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/_options.py +0 -0
  316. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/clustering/__init__.py +0 -0
  317. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/clustering/spatial.py +0 -0
  318. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/clustering/temporal.py +0 -0
  319. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/collection.py +0 -0
  320. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/common.py +0 -0
  321. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/components/__init__.py +0 -0
  322. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/components/_types/__init__.py +0 -0
  323. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/components/_types/_patch.py +0 -0
  324. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/components/_types/buses.py +0 -0
  325. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/components/_types/carriers.py +0 -0
  326. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/components/_types/generators.py +0 -0
  327. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/components/_types/global_constraints.py +0 -0
  328. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/components/_types/line_types.py +0 -0
  329. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/components/_types/lines.py +0 -0
  330. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/components/_types/links.py +0 -0
  331. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/components/_types/loads.py +0 -0
  332. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/components/_types/mixin/__init__.py +0 -0
  333. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/components/_types/mixin/multiports.py +0 -0
  334. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/components/_types/processes.py +0 -0
  335. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/components/_types/shapes.py +0 -0
  336. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/components/_types/shunt_impedances.py +0 -0
  337. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/components/_types/storage_units.py +0 -0
  338. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/components/_types/stores.py +0 -0
  339. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/components/_types/sub_networks.py +0 -0
  340. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/components/_types/transformer_types.py +0 -0
  341. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/components/_types/transformers.py +0 -0
  342. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/components/abstract.py +0 -0
  343. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/components/array.py +0 -0
  344. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/components/common.py +0 -0
  345. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/components/components.py +0 -0
  346. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/components/descriptors.py +0 -0
  347. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/components/index.py +0 -0
  348. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/components/legacy.py +0 -0
  349. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/components/store.py +0 -0
  350. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/components/transform.py +0 -0
  351. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/consistency.py +0 -0
  352. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/constants.py +0 -0
  353. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/costs.py +0 -0
  354. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/data/component_attrs/buses.csv +0 -0
  355. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/data/component_attrs/carriers.csv +0 -0
  356. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/data/component_attrs/generators.csv +0 -0
  357. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/data/component_attrs/global_constraints.csv +0 -0
  358. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/data/component_attrs/line_types.csv +0 -0
  359. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/data/component_attrs/lines.csv +0 -0
  360. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/data/component_attrs/links.csv +0 -0
  361. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/data/component_attrs/loads.csv +0 -0
  362. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/data/component_attrs/networks.csv +0 -0
  363. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/data/component_attrs/processes.csv +0 -0
  364. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/data/component_attrs/shapes.csv +0 -0
  365. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/data/component_attrs/shunt_impedances.csv +0 -0
  366. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/data/component_attrs/storage_units.csv +0 -0
  367. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/data/component_attrs/stores.csv +0 -0
  368. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/data/component_attrs/sub_networks.csv +0 -0
  369. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/data/component_attrs/transformer_types.csv +0 -0
  370. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/data/component_attrs/transformers.csv +0 -0
  371. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/data/components.csv +0 -0
  372. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/data/standard_types/line_types.csv +0 -0
  373. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/data/standard_types/transformer_types.csv +0 -0
  374. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/data/variables.csv +0 -0
  375. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/definitions/components.py +0 -0
  376. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/definitions/structures.py +0 -0
  377. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/deprecations.py +0 -0
  378. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/descriptors.py +0 -0
  379. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/geo.py +0 -0
  380. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/guards.py +0 -0
  381. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/network/__init__.py +0 -0
  382. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/network/abstract.py +0 -0
  383. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/network/components.py +0 -0
  384. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/network/descriptors.py +0 -0
  385. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/network/graph.py +0 -0
  386. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/network/index.py +0 -0
  387. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/network/power_flow.py +0 -0
  388. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/network/transform.py +0 -0
  389. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/networks.py +0 -0
  390. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/optimization/__init__.py +0 -0
  391. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/optimization/abstract.py +0 -0
  392. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/optimization/common.py +0 -0
  393. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/optimization/expressions.py +0 -0
  394. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/optimization/global_constraints.py +0 -0
  395. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/optimization/mga.py +0 -0
  396. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/optimization/variables.py +0 -0
  397. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/plot/__init__.py +0 -0
  398. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/plot/accessor.py +0 -0
  399. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/plot/maps/__init__.py +0 -0
  400. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/plot/maps/common.py +0 -0
  401. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/plot/maps/interactive.py +0 -0
  402. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/plot/maps/static.py +0 -0
  403. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/plot/statistics/__init__.py +0 -0
  404. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/plot/statistics/base.py +0 -0
  405. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/plot/statistics/charts.py +0 -0
  406. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/plot/statistics/maps.py +0 -0
  407. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/plot/statistics/plotter.py +0 -0
  408. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/plot/statistics/schema.py +0 -0
  409. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/py.typed +0 -0
  410. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/statistics/__init__.py +0 -0
  411. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/statistics/abstract.py +0 -0
  412. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/statistics/grouping.py +0 -0
  413. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/type_utils.py +0 -0
  414. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa/version.py +0 -0
  415. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa.egg-info/SOURCES.txt +0 -0
  416. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa.egg-info/dependency_links.txt +0 -0
  417. {pypsa-1.2.0 → pypsa-1.2.2}/pypsa.egg-info/top_level.txt +0 -0
  418. {pypsa-1.2.0 → pypsa-1.2.2}/setup.cfg +0 -0
  419. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_area-capacity_factor.png +0 -0
  420. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_area-capex.png +0 -0
  421. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_area-curtailment.png +0 -0
  422. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_area-energy_balance.png +0 -0
  423. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_area-expanded_capacity.png +0 -0
  424. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_area-expanded_capex.png +0 -0
  425. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_area-installed_capacity.png +0 -0
  426. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_area-installed_capex.png +0 -0
  427. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_area-market_value.png +0 -0
  428. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_area-opex.png +0 -0
  429. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_area-optimal_capacity.png +0 -0
  430. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_area-prices.png +0 -0
  431. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_area-revenue.png +0 -0
  432. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_area-supply.png +0 -0
  433. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_area-system_cost.png +0 -0
  434. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_area-transmission.png +0 -0
  435. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_area-withdrawal.png +0 -0
  436. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_area_capacity_factor.png +0 -0
  437. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_area_capex.png +0 -0
  438. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_area_curtailment.png +0 -0
  439. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_area_energy_balance.png +0 -0
  440. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_area_expanded_capacity.png +0 -0
  441. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_area_expanded_capex.png +0 -0
  442. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_area_installed_capacity.png +0 -0
  443. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_area_installed_capex.png +0 -0
  444. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_area_market_value.png +0 -0
  445. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_area_opex.png +0 -0
  446. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_area_optimal_capacity.png +0 -0
  447. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_area_revenue.png +0 -0
  448. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_area_supply.png +0 -0
  449. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_area_system_cost.png +0 -0
  450. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_area_transmission.png +0 -0
  451. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_area_withdrawal.png +0 -0
  452. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_bar-capacity_factor.png +0 -0
  453. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_bar-capex.png +0 -0
  454. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_bar-curtailment.png +0 -0
  455. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_bar-energy_balance.png +0 -0
  456. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_bar-expanded_capacity.png +0 -0
  457. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_bar-expanded_capex.png +0 -0
  458. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_bar-installed_capacity.png +0 -0
  459. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_bar-installed_capex.png +0 -0
  460. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_bar-market_value.png +0 -0
  461. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_bar-opex.png +0 -0
  462. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_bar-optimal_capacity.png +0 -0
  463. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_bar-prices.png +0 -0
  464. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_bar-revenue.png +0 -0
  465. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_bar-supply.png +0 -0
  466. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_bar-system_cost.png +0 -0
  467. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_bar-transmission.png +0 -0
  468. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_bar-withdrawal.png +0 -0
  469. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_bar_capacity_factor.png +0 -0
  470. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_bar_capex.png +0 -0
  471. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_bar_curtailment.png +0 -0
  472. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_bar_energy_balance.png +0 -0
  473. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_bar_expanded_capacity.png +0 -0
  474. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_bar_expanded_capex.png +0 -0
  475. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_bar_installed_capacity.png +0 -0
  476. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_bar_installed_capex.png +0 -0
  477. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_bar_market_value.png +0 -0
  478. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_bar_opex.png +0 -0
  479. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_bar_optimal_capacity.png +0 -0
  480. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_bar_revenue.png +0 -0
  481. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_bar_supply.png +0 -0
  482. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_bar_system_cost.png +0 -0
  483. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_bar_transmission.png +0 -0
  484. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_bar_withdrawal.png +0 -0
  485. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_box-capacity_factor.png +0 -0
  486. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_box-capex.png +0 -0
  487. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_box-curtailment.png +0 -0
  488. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_box-energy_balance.png +0 -0
  489. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_box-expanded_capacity.png +0 -0
  490. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_box-expanded_capex.png +0 -0
  491. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_box-installed_capacity.png +0 -0
  492. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_box-installed_capex.png +0 -0
  493. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_box-market_value.png +0 -0
  494. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_box-opex.png +0 -0
  495. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_box-optimal_capacity.png +0 -0
  496. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_box-prices.png +0 -0
  497. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_box-revenue.png +0 -0
  498. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_box-supply.png +0 -0
  499. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_box-system_cost.png +0 -0
  500. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_box-transmission.png +0 -0
  501. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_box-withdrawal.png +0 -0
  502. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_histogram-capacity_factor.png +0 -0
  503. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_histogram-capex.png +0 -0
  504. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_histogram-curtailment.png +0 -0
  505. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_histogram-energy_balance.png +0 -0
  506. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_histogram-expanded_capacity.png +0 -0
  507. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_histogram-expanded_capex.png +0 -0
  508. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_histogram-installed_capacity.png +0 -0
  509. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_histogram-installed_capex.png +0 -0
  510. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_histogram-market_value.png +0 -0
  511. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_histogram-opex.png +0 -0
  512. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_histogram-optimal_capacity.png +0 -0
  513. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_histogram-prices.png +0 -0
  514. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_histogram-revenue.png +0 -0
  515. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_histogram-supply.png +0 -0
  516. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_histogram-system_cost.png +0 -0
  517. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_histogram-transmission.png +0 -0
  518. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_histogram-withdrawal.png +0 -0
  519. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_line-capacity_factor.png +0 -0
  520. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_line-capex.png +0 -0
  521. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_line-curtailment.png +0 -0
  522. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_line-energy_balance.png +0 -0
  523. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_line-expanded_capacity.png +0 -0
  524. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_line-expanded_capex.png +0 -0
  525. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_line-installed_capacity.png +0 -0
  526. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_line-installed_capex.png +0 -0
  527. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_line-market_value.png +0 -0
  528. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_line-opex.png +0 -0
  529. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_line-optimal_capacity.png +0 -0
  530. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_line-prices.png +0 -0
  531. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_line-revenue.png +0 -0
  532. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_line-supply.png +0 -0
  533. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_line-system_cost.png +0 -0
  534. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_line-transmission.png +0 -0
  535. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_line-withdrawal.png +0 -0
  536. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_line_capacity_factor.png +0 -0
  537. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_line_capex.png +0 -0
  538. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_line_curtailment.png +0 -0
  539. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_line_energy_balance.png +0 -0
  540. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_line_expanded_capacity.png +0 -0
  541. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_line_expanded_capex.png +0 -0
  542. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_line_installed_capacity.png +0 -0
  543. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_line_installed_capex.png +0 -0
  544. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_line_market_value.png +0 -0
  545. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_line_opex.png +0 -0
  546. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_line_optimal_capacity.png +0 -0
  547. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_line_revenue.png +0 -0
  548. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_line_supply.png +0 -0
  549. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_line_system_cost.png +0 -0
  550. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_line_transmission.png +0 -0
  551. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_line_withdrawal.png +0 -0
  552. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_map-capacity_factor.png +0 -0
  553. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_map-capex.png +0 -0
  554. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_map-curtailment.png +0 -0
  555. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_map-energy_balance.png +0 -0
  556. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_map-expanded_capacity.png +0 -0
  557. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_map-expanded_capex.png +0 -0
  558. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_map-installed_capacity.png +0 -0
  559. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_map-installed_capex.png +0 -0
  560. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_map-market_value.png +0 -0
  561. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_map-opex.png +0 -0
  562. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_map-optimal_capacity.png +0 -0
  563. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_map-revenue.png +0 -0
  564. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_map-supply.png +0 -0
  565. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_map-system_cost.png +0 -0
  566. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_map-transmission.png +0 -0
  567. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_map-withdrawal.png +0 -0
  568. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_map_capacity_factor.png +0 -0
  569. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_map_capex.png +0 -0
  570. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_map_curtailment.png +0 -0
  571. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_map_energy_balance.png +0 -0
  572. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_map_expanded_capacity.png +0 -0
  573. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_map_expanded_capex.png +0 -0
  574. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_map_installed_capacity.png +0 -0
  575. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_map_installed_capex.png +0 -0
  576. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_map_market_value.png +0 -0
  577. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_map_opex.png +0 -0
  578. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_map_optimal_capacity.png +0 -0
  579. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_map_revenue.png +0 -0
  580. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_map_supply.png +0 -0
  581. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_map_transmission.png +0 -0
  582. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_map_withdrawal.png +0 -0
  583. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_scatter-capacity_factor.png +0 -0
  584. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_scatter-capex.png +0 -0
  585. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_scatter-curtailment.png +0 -0
  586. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_scatter-energy_balance.png +0 -0
  587. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_scatter-expanded_capacity.png +0 -0
  588. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_scatter-expanded_capex.png +0 -0
  589. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_scatter-installed_capacity.png +0 -0
  590. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_scatter-installed_capex.png +0 -0
  591. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_scatter-market_value.png +0 -0
  592. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_scatter-opex.png +0 -0
  593. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_scatter-optimal_capacity.png +0 -0
  594. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_scatter-prices.png +0 -0
  595. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_scatter-revenue.png +0 -0
  596. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_scatter-supply.png +0 -0
  597. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_scatter-system_cost.png +0 -0
  598. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_scatter-transmission.png +0 -0
  599. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_scatter-withdrawal.png +0 -0
  600. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_violin-capacity_factor.png +0 -0
  601. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_violin-capex.png +0 -0
  602. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_violin-curtailment.png +0 -0
  603. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_violin-energy_balance.png +0 -0
  604. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_violin-expanded_capacity.png +0 -0
  605. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_violin-expanded_capex.png +0 -0
  606. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_violin-installed_capacity.png +0 -0
  607. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_violin-installed_capex.png +0 -0
  608. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_violin-market_value.png +0 -0
  609. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_violin-opex.png +0 -0
  610. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_violin-optimal_capacity.png +0 -0
  611. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_violin-prices.png +0 -0
  612. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_violin-revenue.png +0 -0
  613. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_violin-supply.png +0 -0
  614. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_violin-system_cost.png +0 -0
  615. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_violin-transmission.png +0 -0
  616. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_plot_types_violin-withdrawal.png +0 -0
  617. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_simple_plot_capacity_factor.png +0 -0
  618. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_simple_plot_capex.png +0 -0
  619. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_simple_plot_curtailment.png +0 -0
  620. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_simple_plot_energy_balance.png +0 -0
  621. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_simple_plot_expanded_capacity.png +0 -0
  622. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_simple_plot_expanded_capex.png +0 -0
  623. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_simple_plot_installed_capacity.png +0 -0
  624. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_simple_plot_installed_capex.png +0 -0
  625. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_simple_plot_market_value.png +0 -0
  626. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_simple_plot_opex.png +0 -0
  627. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_simple_plot_optimal_capacity.png +0 -0
  628. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_simple_plot_prices.png +0 -0
  629. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_simple_plot_revenue.png +0 -0
  630. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_simple_plot_supply.png +0 -0
  631. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_simple_plot_system_cost.png +0 -0
  632. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_simple_plot_transmission.png +0 -0
  633. {pypsa-1.2.0 → pypsa-1.2.2}/test/baseline/test_simple_plot_withdrawal.png +0 -0
  634. {pypsa-1.2.0 → pypsa-1.2.2}/test/conftest.py +0 -0
  635. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lopf/buses-marginal_price.csv +0 -0
  636. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lopf/buses-p.csv +0 -0
  637. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lopf/buses-v_ang.csv +0 -0
  638. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lopf/buses-v_mag_pu.csv +0 -0
  639. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lopf/buses.csv +0 -0
  640. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lopf/carriers.csv +0 -0
  641. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lopf/crs.json +0 -0
  642. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lopf/generators-p.csv +0 -0
  643. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lopf/generators-p_max_pu.csv +0 -0
  644. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lopf/generators.csv +0 -0
  645. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lopf/global_constraints.csv +0 -0
  646. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lopf/investment_periods.csv +0 -0
  647. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lopf/lines-p0.csv +0 -0
  648. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lopf/lines-p1.csv +0 -0
  649. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lopf/lines.csv +0 -0
  650. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lopf/links-p0.csv +0 -0
  651. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lopf/links-p1.csv +0 -0
  652. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lopf/links.csv +0 -0
  653. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lopf/loads-p.csv +0 -0
  654. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lopf/loads-p_set.csv +0 -0
  655. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lopf/loads.csv +0 -0
  656. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lopf/meta.json +0 -0
  657. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lopf/network.csv +0 -0
  658. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lopf/snapshots.csv +0 -0
  659. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lpf/buses-p.csv +0 -0
  660. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lpf/buses-v_ang.csv +0 -0
  661. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lpf/buses-v_mag_pu.csv +0 -0
  662. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lpf/buses.csv +0 -0
  663. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lpf/carriers.csv +0 -0
  664. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lpf/generators-p.csv +0 -0
  665. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lpf/generators-p_max_pu.csv +0 -0
  666. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lpf/generators.csv +0 -0
  667. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lpf/global_constraints.csv +0 -0
  668. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lpf/lines-p0.csv +0 -0
  669. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lpf/lines-p1.csv +0 -0
  670. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lpf/lines.csv +0 -0
  671. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lpf/links-p0.csv +0 -0
  672. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lpf/links-p1.csv +0 -0
  673. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lpf/links-p_set.csv +0 -0
  674. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lpf/links.csv +0 -0
  675. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lpf/loads-p.csv +0 -0
  676. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lpf/loads-p_set.csv +0 -0
  677. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lpf/loads.csv +0 -0
  678. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lpf/network.csv +0 -0
  679. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lpf/snapshots.csv +0 -0
  680. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/benchmark-sp/buses-marginal_price.csv +0 -0
  681. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/benchmark-sp/buses-p.csv +0 -0
  682. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/benchmark-sp/buses.csv +0 -0
  683. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/benchmark-sp/crs.json +0 -0
  684. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/benchmark-sp/generators-p-high.csv +0 -0
  685. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/benchmark-sp/generators-p-med.csv +0 -0
  686. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/benchmark-sp/generators-p.csv +0 -0
  687. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/benchmark-sp/generators-p_max_pu.csv +0 -0
  688. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/benchmark-sp/generators.csv +0 -0
  689. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/benchmark-sp/investment_periods.csv +0 -0
  690. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/benchmark-sp/loads-p.csv +0 -0
  691. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/benchmark-sp/loads.csv +0 -0
  692. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/benchmark-sp/meta.json +0 -0
  693. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/benchmark-sp/network.csv +0 -0
  694. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/benchmark-sp/snapshots.csv +0 -0
  695. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/buses-marginal_price.csv +0 -0
  696. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/buses-p.csv +0 -0
  697. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/buses-v_ang.csv +0 -0
  698. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/buses.csv +0 -0
  699. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/carriers.csv +0 -0
  700. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/generators-p.csv +0 -0
  701. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/generators-p_max_pu.csv +0 -0
  702. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/generators.csv +0 -0
  703. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/global_constraints.csv +0 -0
  704. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/lines-p0.csv +0 -0
  705. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/lines-p1.csv +0 -0
  706. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/lines.csv +0 -0
  707. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/links-p0.csv +0 -0
  708. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/links-p1.csv +0 -0
  709. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/links.csv +0 -0
  710. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/loads-p.csv +0 -0
  711. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/loads-p_set.csv +0 -0
  712. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/loads.csv +0 -0
  713. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/network.csv +0 -0
  714. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/snapshots.csv +0 -0
  715. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/storage_units-inflow.csv +0 -0
  716. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/storage_units-p.csv +0 -0
  717. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/storage_units-spill.csv +0 -0
  718. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/storage_units-state_of_charge.csv +0 -0
  719. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/storage_units-state_of_charge_set.csv +0 -0
  720. {pypsa-1.2.0 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/storage_units.csv +0 -0
  721. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_bugs.py +0 -0
  722. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_buses.py +0 -0
  723. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_capital_cost_split.py +0 -0
  724. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_carriers.py +0 -0
  725. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_collection.py +0 -0
  726. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_collection_statistics.py +0 -0
  727. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_committable_extendable.py +0 -0
  728. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_common.py +0 -0
  729. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_common_deprecations.py +0 -0
  730. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_compatibility_ext_and_com.py +0 -0
  731. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_components.py +0 -0
  732. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_components_array.py +0 -0
  733. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_components_custom.py +0 -0
  734. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_components_store.py +0 -0
  735. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_components_utils.py +0 -0
  736. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_consistency_check.py +0 -0
  737. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_constants.py +0 -0
  738. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_deprecations.py +0 -0
  739. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_descriptors.py +0 -0
  740. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_docs.py +0 -0
  741. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_graph.py +0 -0
  742. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_guards.py +0 -0
  743. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_indices.py +0 -0
  744. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_io.py +0 -0
  745. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_io_cloudpathlib.py +0 -0
  746. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_link_post_discretization.py +0 -0
  747. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_lopf_ac_dc.py +0 -0
  748. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_lopf_activity_mask.py +0 -0
  749. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_lopf_and_subsequent_power_flow.py +0 -0
  750. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_lopf_global_constraints.py +0 -0
  751. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_lopf_iteratively.py +0 -0
  752. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_lopf_losses.py +0 -0
  753. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_lopf_mga.py +0 -0
  754. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_lopf_modularity.py +0 -0
  755. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_lopf_multiinvest.py +0 -0
  756. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_lopf_multilink.py +0 -0
  757. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_lopf_process.py +0 -0
  758. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_lopf_quadratic_costs.py +0 -0
  759. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_lopf_rolling_horizon.py +0 -0
  760. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_lopf_storage.py +0 -0
  761. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_lopf_varying_inputs.py +0 -0
  762. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_lpf_ac_dc.py +0 -0
  763. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_lpf_against_pypower.py +0 -0
  764. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_meshed_threshold.py +0 -0
  765. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_network_cycles.py +0 -0
  766. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_network_index.py +0 -0
  767. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_network_transform.py +0 -0
  768. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_objective_constant.py +0 -0
  769. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_optimization_expressions.py +0 -0
  770. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_optional_dependencies.py +0 -0
  771. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_options.py +0 -0
  772. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_pf_activity_mask.py +0 -0
  773. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_pf_against_pandapower.py +0 -0
  774. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_pf_against_pypower.py +0 -0
  775. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_pf_distributed_slack.py +0 -0
  776. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_plot_maps_common.py +0 -0
  777. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_plot_maps_interactive.py +0 -0
  778. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_plot_maps_static.py +0 -0
  779. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_riskaversion.py +0 -0
  780. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_sclopf_scigrid.py +0 -0
  781. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_snapshot_weightings.py +0 -0
  782. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_spatial_clustering.py +0 -0
  783. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_stand_by_cost.py +0 -0
  784. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_statistics.py +0 -0
  785. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_statistics_plot.py +0 -0
  786. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_statistics_plot_interactive.py +0 -0
  787. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_statistics_plot_schema.py +0 -0
  788. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_stochastic.py +0 -0
  789. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_stochastic_not_implemented.py +0 -0
  790. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_subnetwork.py +0 -0
  791. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_temporal_clustering.py +0 -0
  792. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_transmission_losses.py +0 -0
  793. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_transport_delay.py +0 -0
  794. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_version.py +0 -0
  795. {pypsa-1.2.0 → pypsa-1.2.2}/test/test_warnings_cyclic_storage.py +0 -0
@@ -14,6 +14,8 @@ body:
14
14
  Thanks for taking the time to fill out this bug report!
15
15
  Please do not post usage questions here. Ask them on the [PyPSA Discord server](https://discord.gg/AnuJBk23FU).
16
16
 
17
+ Please write this issue description yourself. Any potentially verbose AI-generated content should be marked. See [Contributing guidelines](https://docs.pypsa.org/latest/contributing/contributing/).
18
+
17
19
  - type: checkboxes
18
20
  id: checks
19
21
  attributes:
@@ -10,6 +10,8 @@ assignees: ''
10
10
 
11
11
  <!-- Please do not post usage questions here. Ask them on the PyPSA Discord server: https://discord.gg/AnuJBk23FU -->
12
12
 
13
+ <!-- Please write this issue description yourself. Any potentially verbose AI-generated content should be marked. See Contributing guidelines: https://docs.pypsa.org/latest/contributing/contributing/ -->
14
+
13
15
  ## Describe the feature you'd like to see
14
16
 
15
17
  *Please give a clear and concise description and provide context why the feature would be useful.*
@@ -8,4 +8,5 @@ Closes # (if applicable).
8
8
  - [ ] Code changes are sufficiently documented; i.e. new functions contain docstrings and further explanations may be given in `docs`.
9
9
  - [ ] Unit tests for new features were added (if applicable).
10
10
  - [ ] A note for the release notes `docs/release-notes.md` of the upcoming release is included.
11
+ - [ ] PR description is written by me. Any potentially verbose AI-generated content is marked (see [Contributing guidelines](https://docs.pypsa.org/latest/contributing/contributing/)).
11
12
  - [ ] I consent to the release of this PR's code under the MIT license.
@@ -92,8 +92,14 @@ jobs:
92
92
  print(f"repointed {dst_key} -> {src_key}")
93
93
  shell: python
94
94
 
95
+ test:
96
+ needs: [publish-examples]
97
+ uses: ./.github/workflows/test.yml
98
+ secrets: inherit
99
+
95
100
  build:
96
101
  name: Build and verify package
102
+ needs: [test]
97
103
  runs-on: ubuntu-latest
98
104
  steps:
99
105
  - uses: actions/checkout@v6
@@ -105,7 +111,7 @@ jobs:
105
111
  runs-on: ubuntu-latest
106
112
  steps:
107
113
  - uses: actions/checkout@v6
108
- - uses: softprops/action-gh-release@v2
114
+ - uses: softprops/action-gh-release@v3
109
115
  with:
110
116
  body: |
111
117
  Revised release notes are available in the [documentation](https://docs.pypsa.org/latest/release-notes/).
@@ -84,7 +84,7 @@ jobs:
84
84
  if: steps.filter.outputs.src == 'true' || github.event_name == 'schedule'
85
85
  uses: prefix-dev/setup-pixi@v0.9.5
86
86
  with:
87
- pixi-version: v0.59.0
87
+ pixi-version: v0.68.1
88
88
  cache: true
89
89
  # Do not cache in branches
90
90
  cache-write: ${{ github.event_name == 'push' && github.ref_name == 'main' }}
@@ -120,7 +120,10 @@ jobs:
120
120
  - name: Install package from ref
121
121
  if: (steps.filter.outputs.src == 'true' || github.event_name == 'schedule') && env.pinned == 'false'
122
122
  run: |
123
+ # Allow upgrading internal packages without exclude-newer cap
124
+ sed -i '/^exclude-newer\s*=/d' pixi.toml
123
125
  pixi remove ${{ env.PACKAGE_NAME }}
126
+ pixi upgrade linopy
124
127
  pixi add --pypi --git https://github.com/${{ github.repository }}.git ${{ github.event.repository.name }} --rev ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
125
128
 
126
129
  - name: Run snakemake test workflows
@@ -13,6 +13,7 @@ on:
13
13
  branches: ["*"]
14
14
  schedule:
15
15
  - cron: "0 5 * * *"
16
+ workflow_call:
16
17
 
17
18
  # Cancel any in-progress runs when a new run is triggered
18
19
  concurrency:
@@ -0,0 +1,14 @@
1
+ <!--
2
+ SPDX-FileCopyrightText: PyPSA Contributors
3
+
4
+ SPDX-License-Identifier: MIT
5
+ -->
6
+
7
+ 🎉 Thank you for your interest in contributing to PyPSA! 🎉
8
+
9
+ We strongly welcome anyone interested in contributing to PyPSA and its related projects. All types of contributions are encouraged and valued!
10
+
11
+ For detailed instructions on how to contribute, please refer to the [Contributing](https://docs.pypsa.org/latest/contributing/contributing/) section of our documentation. This includes guidelines for code contributions, documentation improvements, and example submissions.
12
+
13
+ To handle the influx of AI-assisted contributions, we have established some basic principles.
14
+ See the [AI-based Contributions](https://docs.pypsa.org/latest/contributing/contributing/#ai-based-contributions) section in our documentation for more details.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pypsa
3
- Version: 1.2.0
3
+ Version: 1.2.2
4
4
  Summary: Python for Power Systems Analysis
5
5
  Author-email: "PyPSA Developers, see https://docs.pypsa.org/latest/contributing/contributors.html" <t.brown@tu-berlin.de>
6
6
  License: MIT License
@@ -42,9 +42,9 @@ License-File: LICENSE
42
42
  Requires-Dist: numpy
43
43
  Requires-Dist: scipy
44
44
  Requires-Dist: pandas>=2.0
45
- Requires-Dist: xarray<2026.4
45
+ Requires-Dist: xarray
46
46
  Requires-Dist: netcdf4
47
- Requires-Dist: linopy>=0.6.1
47
+ Requires-Dist: linopy>=0.7.0
48
48
  Requires-Dist: matplotlib
49
49
  Requires-Dist: plotly
50
50
  Requires-Dist: pydeck>=0.6
@@ -320,7 +320,7 @@ on [Zenodo](https://zenodo.org/) with a release-specific DOI:
320
320
 
321
321
  ## Licence
322
322
 
323
- Copyright [PyPSA Contributors](https://docs.pypsa.org/latest/developers.html)
323
+ Copyright [PyPSA Contributors](https://docs.pypsa.org/latest/contributing/contributors/)
324
324
 
325
325
  PyPSA is licensed under the open source [MIT License](LICENSES/MIT.txt).
326
326
  The documentation is licensed under [CC-BY-4.0](LICENSES/CC-BY-4.0.txt).
@@ -206,7 +206,7 @@ on [Zenodo](https://zenodo.org/) with a release-specific DOI:
206
206
 
207
207
  ## Licence
208
208
 
209
- Copyright [PyPSA Contributors](https://docs.pypsa.org/latest/developers.html)
209
+ Copyright [PyPSA Contributors](https://docs.pypsa.org/latest/contributing/contributors/)
210
210
 
211
211
  PyPSA is licensed under the open source [MIT License](LICENSES/MIT.txt).
212
212
  The documentation is licensed under [CC-BY-4.0](LICENSES/CC-BY-4.0.txt).
@@ -154,6 +154,24 @@ For simple changes, you can also edit the documentation directly on GitHub:
154
154
  2. Make your changes in the file.
155
155
  3. Commit your changes and create a pull request.
156
156
 
157
+ ## AI-based Contributions
158
+
159
+ We do not impose general restrictions on the use of AI for contributions.
160
+ But we require that all contributions, whether AI-assisted or not, adhere to the same standards of quality, relevance, and maintainability.
161
+ This boils down to:
162
+
163
+ 1. PR and issue descriptions should read like you wrote them. Keep them concise and human. Any potentially verbose AI-generated content should be marked, e.g. in a collapsed `<details>` block. Please don't mix both.
164
+ 2. Take responsibility for the content and quality of your contribution, even if you used AI.
165
+ 3. Keep the code simple. AI tools often produce verbose or over-engineered code. Review and trim it back before submitting.
166
+ 4. Before you submit large contributions, coordinate with the maintainers to ensure they align with the project's goals and roadmap.
167
+ 4. Minimize the review burden on us by keeping your contributions focused, don't solve multiple tangential issues in one PR.
168
+
169
+ We may close AI-based contributions without further review if we consider them to bind up excessive maintainer time.
170
+
171
+ Why?
172
+ Because the PyPSA project has limited maintainer capacity.
173
+ Let's respect everyone's time and token budget.
174
+
157
175
  ## Examples
158
176
 
159
177
  Nice examples are always welcome.
@@ -167,11 +167,7 @@
167
167
  "cell_type": "markdown",
168
168
  "id": "d3a8d32d",
169
169
  "metadata": {},
170
- "source": [
171
- "## Tracing the Infeasibility\n",
172
- "\n",
173
- "When the optimization fails due to infeasibility, PyPSA provides a convenient method to diagnose the problem. The `print_infeasibilities()` method on the optimization model will show us exactly which constraints are causing the infeasibility."
174
- ]
170
+ "source": "## Tracing the Infeasibility\n\nWhen the optimization fails due to infeasibility, PyPSA provides a convenient method to diagnose the problem. The `format_infeasibilities()` method on the optimization model will show us exactly which constraints are causing the infeasibility."
175
171
  },
176
172
  {
177
173
  "cell_type": "code",
@@ -179,34 +175,13 @@
179
175
  "id": "4989a457",
180
176
  "metadata": {},
181
177
  "outputs": [],
182
- "source": [
183
- "n.model.print_infeasibilities()"
184
- ]
178
+ "source": "print(n.model.format_infeasibilities())"
185
179
  },
186
180
  {
187
181
  "cell_type": "markdown",
188
182
  "id": "ee963ad8",
189
183
  "metadata": {},
190
- "source": [
191
- "### Interpreting the Infeasibility Output\n",
192
- "\n",
193
- "The infeasibility trace above shows us exactly what's wrong:\n",
194
- "\n",
195
- "1. **`Link-fix-p-lower[2015-01-01 00:00:00, DC link]: +1 Link-p[2015-01-01 00:00:00, DC link] ≥ -0`**\n",
196
- " - This constraint says the DC link power flow must be ≥ 0 (can't flow negative)\n",
197
- " - But we set the DC link capacity to 0, so Link-p value is bounded to 0\n",
198
- "\n",
199
- "2. **`Bus-nodal_balance[London, 2015-01-01 00:00:00]: -1 Link-p[2015-01-01 00:00:00, DC link] = 35.7962441027`**\n",
200
- " - This is London's nodal balance equation: generation ± trade ± storage = load\n",
201
- " - London has no generation, 35.8 MW load, and no AC interconnectors\n",
202
- " - The DC link (the only remaining connection) can't provide any power because its capacity is 0\n",
203
- "\n",
204
- "Under the hood, `print_infeasibilities()` uses Gurobi's infeasibility analysis to identify conflicting constraints.\n",
205
- " **Irreducible Inconsistent Set (IIS)** identified by Gurobi shows these two constraints are fundamentally incompatible:\n",
206
- "- London needs power inflow via the DC link to meet its load\n",
207
- "- But the DC link is constrained to zero power\n",
208
- "- This creates an impossible situation that no solution can satisfy"
209
- ]
184
+ "source": "### Interpreting the Infeasibility Output\n\nThe infeasibility trace above shows us exactly what's wrong:\n\n1. **`Link-fix-p-lower[2015-01-01 00:00:00, DC link]: +1 Link-p[2015-01-01 00:00:00, DC link] ≥ -0`**\n - This constraint says the DC link power flow must be ≥ 0 (can't flow negative)\n - But we set the DC link capacity to 0, so Link-p value is bounded to 0\n\n2. **`Bus-nodal_balance[London, 2015-01-01 00:00:00]: -1 Link-p[2015-01-01 00:00:00, DC link] = 35.7962441027`**\n - This is London's nodal balance equation: generation ± trade ± storage = load\n - London has no generation, 35.8 MW load, and no AC interconnectors\n - The DC link (the only remaining connection) can't provide any power because its capacity is 0\n\nUnder the hood, `format_infeasibilities()` uses Gurobi's infeasibility analysis to identify conflicting constraints.\n **Irreducible Inconsistent Set (IIS)** identified by Gurobi shows these two constraints are fundamentally incompatible:\n- London needs power inflow via the DC link to meet its load\n- But the DC link is constrained to zero power\n- This creates an impossible situation that no solution can satisfy"
210
185
  }
211
186
  ],
212
187
  "metadata": {
@@ -146,7 +146,7 @@ Interactive **network visualization** of SciGRID example network clustered by fe
146
146
  Interactive area plot of **electricity balance time series** in a highly-renewable sector-coupled example network, showing temporal generation (positive values) and consumption (negative values) of different technologies:
147
147
 
148
148
  <div style="width: 100%; height: 550px;">
149
- <iframe src="../../../assets/interactive/carbon_management-energy_balance-area_iplot-AC-bus_carrier.html"
149
+ <iframe src="../../assets/interactive/carbon_management-energy_balance-area_iplot-AC-bus_carrier.html"
150
150
  width="100%" height="100%" frameborder="0" style="border: 0px solid #ccc;">
151
151
  </iframe>
152
152
  </div>
@@ -42,6 +42,8 @@ open source and actively maintained. Below is a list of some known models.
42
42
  - **[:flag_br: PyPSA-Brazil](https://gitlab.com/dlr-ve/esy/open-brazil-energy-data/open-brazilian-energy-data)**: Brazilian power system model (see [paper](https://doi.org/10.1038/s41597-023-01992-9)), developed by the German Aerospace Center (DLR)
43
43
  - **[:flag_ca: PyPSA-BC](https://github.com/DeltaE/PyPSA_BC)**: BC PyPSA work for the PICS Decarbonization project, maintained by Simon Fraser University
44
44
  - **[:flag_us: pypsa-illinois](https://github.com/ucsusa/pypsa-illinois)**: Using PyPSA to model the Illinois electricity system for storage requirement analysis maintained by Union of Concerned Scientists (UCS).
45
+ - **[:flag_ar: PyPSA-AR](https://github.com/FTDT-PyPSA/PyPSA-AR)**: Reproducible model of the Argentine high-voltage power grid using PyPSA maintained by Fundación Torcuato Di Tella (FTDT).
46
+ - **[:flag_ca: PyPSA-Canada](https://github.com/NRCan/pypsa-canada)**: used PyPSA for a workflow-based modeling framework for power system analysis in Canada maintained by Natural Resources Canada (NRCan).
45
47
 
46
48
  ### Africa
47
49
  - **[:flag_za: PyPSA-RSA](https://github.com/MeridianEconomics/pypsa-rsa)**: South-African electricity model, maintained by [Meridian Economics](https://meridianeconomics.co.za/)
@@ -99,6 +99,8 @@ The following universities, research institutes, companies, governmental and non
99
99
 
100
100
  - **[:flag_us: Union of Concerned Scientists (UCS)](https://www.ucs.org/)**: used PyPSA to assess the storage needs for Illinois electricity system.
101
101
 
102
+ - **[:flag_ca: Natural Resources Canada (NRCan)](https://natural-resources.canada.ca/science-data/science-research/research-centres/canmetenergy)**: used PyPSA create a workflow-based modeling framework for power system analysis in Canada.
103
+
102
104
  ## Companies
103
105
 
104
106
  * **[:flag_de: TransnetBW](https://www.transnetbw.de/)**, the electricity transmission system operator in southwest Germany, **[:flag_de: ONTRAS](https://www.ontras.com/)**, the gas transmission system operator in eastern Germany and **[:flag_de: d-fine](https://www.d-fine.com/)**, a consultancy firm, used PyPSA-Eur-Sec for a study in 2020 of the grid requirements in 2050 with a 90% reduction of carbon dioxide emissions in electricity, buildings and transport, see [Stromnetz 2050](https://www.transnetbw.de/de/stromnetz2050/), for an article in a 2021 issue of Energiewirtschaftliche Tagesfragen [Die Rolle von Wasserstoff in einem klimaneutralen europäischen Energiesystem – eine modellbasierte Analyse bis 2050](https://www.d-fine.com/fileadmin/user_upload/Wasserstoff_et_0102-2021.pdf), and for their 2022 study [Energy System 2050 - Towards a decarbonised Europe](https://www.energysystem2050.net/).
@@ -166,3 +168,5 @@ The following universities, research institutes, companies, governmental and non
166
168
  * **[:flag_gb: ClimateXChange](https://www.climatexchange.org.uk/)** commissioned a report for the Scottish Government on [Electricity system security of supply in Scotland](https://www.climatexchange.org.uk/projects/electricity-system-security-of-supply-in-scotland/) using PyPSA-GB.
167
169
 
168
170
  - **[:flag_kr: PLANiT Institute](https://planit.institute)** A non-profit research institute based in Seoul developed [PyPSA_KR](https://github.com/PLANiT-Institute/PyPSA_KR), a comprehensive power system analysis toolkit for modeling and optimizing electricity networks in South Korea with multi-node network modeling at different granularities, and [pyPPA](https://github.com/PLANiT-Institute/pyPPA), a Power Purchase Agreement modeling and optimization framework for evaluating renewable energy procurement strategies.
171
+
172
+ - **[:flag_ar: FTDT (Fundación Torcuato Di Tella)](https://ftdt.cc/)** A non-profit research institute based in Argentina developed [PyPSA-AR](https://github.com/FTDT-PyPSA/PyPSA-AR), a comprehensive power system model of the Argentine high-voltage power grid.
@@ -6,13 +6,38 @@ SPDX-License-Identifier: CC-BY-4.0
6
6
 
7
7
  # Release Notes
8
8
 
9
- <!--## Upcoming Release
9
+ ## [**v1.2.2**](https://github.com/PyPSA/PyPSA/releases/tag/v1.2.2) <small>25th May 2026</small> { id="v1.2.2" }
10
10
 
11
+ <!--
11
12
  !!! info "Upcoming Release"
12
13
 
13
14
  The features listed below have not yet been released, but will be included in the
14
15
  next update! If you would like to use these features in the meantime, you will need
15
- to install the `master` branch, e.g. `pip install git+https://github.com/pypsa/pypsa`.-->
16
+ to install the `master` branch, e.g. `pip install git+https://github.com/pypsa/pypsa`.
17
+ -->
18
+
19
+ ### Bug Fixes
20
+
21
+ - Fix the sign of [Loads](./user-guide/components/loads.md) not being taken into account in the nodal balance constraint when calling [`n.optimize()`][pypsa.optimization.OptimizationAccessor.__call__]. (<!-- md:pr 1685 -->)
22
+
23
+ - Fix operational constraints for non-extendable components producing `NaN` bounds when `p_nom` is infinite and `p_min_pu`/`p_max_pu` is zero. The bound now falls back to zero in this case. Relevant for linopy versions `>=0.7` where `NaN` bounds are not dropped explicitly. (<!-- md:pr 1683 -->)
24
+
25
+ - Lift `xarray<2026.4` upper bound and bump `linopy>=0.7.0` floor. (<!-- md:pr 1686 -->)
26
+
27
+
28
+ ## [**v1.2.1**](https://github.com/PyPSA/PyPSA/releases/tag/v1.2.1) <small>19th May 2026</small> { id="v1.2.1" }
29
+
30
+ ### Documentation
31
+
32
+ - Updated our contribution guidelines outline what we expect from AI-based contributions. See [AI-based Contributions](https://docs.pypsa.org/latest/contributing/contributing/#ai-based-contributions) in our documentation for more details. (<!-- md:pr 1672 -->)
33
+
34
+ ### Bug Fixes
35
+
36
+ - Fix ramp limit constraints leaking another [Generator](./user-guide/components/generators.md)'s `p_nom` variable into the constraint when a component held both fixed and extendable generators. (<!-- md:pr 1677 -->)
37
+
38
+ - Fix [`n.statistics.transmission()`][pypsa.statistics.StatisticsAccessor.transmission] returning zero flows when `bus_carrier` is set. (<!-- md:pr 1662 -->)
39
+
40
+ - Fix [`n.add(..., overwrite=True)`][pypsa.Network.add] leaving stale dynamic attributes from the previously existing component, which silently shadowed the new static values at solve time. `overwrite=True` now behaves consistently with [`n.remove(...)`][pypsa.Network.remove] followed by `n.add(...)`. (<!-- md:pr 1666 -->)
16
41
 
17
42
 
18
43
  ## [**v1.2.0**](https://github.com/PyPSA/PyPSA/releases/tag/v1.2.0) <small>21st April 2026</small> { id="v1.2.0" }
@@ -13,7 +13,7 @@ babel==2.18.0
13
13
  # via
14
14
  # mkdocs-git-revision-date-localized-plugin
15
15
  # mkdocs-material
16
- backrefs==6.2
16
+ backrefs==7.0
17
17
  # via mkdocs-material
18
18
  beautifulsoup4==4.14.3
19
19
  # via nbconvert
@@ -27,7 +27,7 @@ cairosvg==2.9.0
27
27
  # via pypsa
28
28
  cartopy==0.25.0
29
29
  # via pypsa
30
- certifi==2026.2.25
30
+ certifi==2026.4.22
31
31
  # via
32
32
  # netcdf4
33
33
  # pyogrio
@@ -36,13 +36,12 @@ certifi==2026.2.25
36
36
  cffi==2.0.0
37
37
  # via
38
38
  # cairocffi
39
- # cryptography
40
39
  # pyzmq
41
40
  cftime==1.6.5
42
41
  # via netcdf4
43
42
  charset-normalizer==3.4.7
44
43
  # via requests
45
- click==8.3.2
44
+ click==8.4.0
46
45
  # via
47
46
  # dask
48
47
  # mkdocs
@@ -62,8 +61,6 @@ comm==0.2.3
62
61
  # via ipykernel
63
62
  contourpy==1.3.3
64
63
  # via matplotlib
65
- cryptography==46.0.7
66
- # via google-auth
67
64
  cssselect2==0.9.0
68
65
  # via cairosvg
69
66
  cycler==0.12.1
@@ -72,7 +69,7 @@ dask==2026.3.0
72
69
  # via linopy
73
70
  debugpy==1.8.20
74
71
  # via ipykernel
75
- decorator==5.2.1
72
+ decorator==5.3.1
76
73
  # via ipython
77
74
  defusedxml==0.7.1
78
75
  # via
@@ -90,9 +87,9 @@ executing==2.2.1
90
87
  # via stack-data
91
88
  fastjsonschema==2.21.2
92
89
  # via nbformat
93
- fonttools==4.62.1
90
+ fonttools==4.63.0
94
91
  # via matplotlib
95
- fsspec==2026.3.0
92
+ fsspec==2026.4.0
96
93
  # via dask
97
94
  geopandas==1.1.3
98
95
  # via pypsa
@@ -102,38 +99,17 @@ ghp-import==2.1.0
102
99
  # properdocs
103
100
  gitdb==4.0.12
104
101
  # via gitpython
105
- gitpython==3.1.46
102
+ gitpython==3.1.50
106
103
  # via mkdocs-git-revision-date-localized-plugin
107
- google-api-core==2.30.3
108
- # via
109
- # google-cloud-core
110
- # google-cloud-storage
111
- google-auth==2.49.2
112
- # via
113
- # google-api-core
114
- # google-cloud-core
115
- # google-cloud-storage
116
- google-cloud-core==2.5.1
117
- # via google-cloud-storage
118
- google-cloud-storage==3.10.1
119
- # via linopy
120
- google-crc32c==1.8.0
121
- # via
122
- # google-cloud-storage
123
- # google-resumable-media
124
- google-resumable-media==2.8.2
125
- # via google-cloud-storage
126
- googleapis-common-protos==1.74.0
127
- # via google-api-core
128
104
  griffelib==2.0.2
129
105
  # via mkdocstrings-python
130
- gurobipy==13.0.1
106
+ gurobipy==13.0.2
131
107
  # via pypsa
132
- highspy==1.13.1
108
+ highspy==1.14.0
133
109
  # via
134
110
  # pypsa
135
111
  # tsam
136
- idna==3.12
112
+ idna==3.15
137
113
  # via requests
138
114
  importlib-metadata==9.0.0 ; python_full_version < '3.12'
139
115
  # via dask
@@ -141,13 +117,11 @@ iniconfig==2.3.0
141
117
  # via pytest
142
118
  ipykernel==7.2.0
143
119
  # via mkdocs-jupyter
144
- ipython==9.10.1 ; python_full_version < '3.12'
145
- # via ipykernel
146
- ipython==9.12.0 ; python_full_version >= '3.12'
120
+ ipython==9.13.0
147
121
  # via ipykernel
148
122
  ipython-pygments-lexers==1.1.1
149
123
  # via ipython
150
- jedi==0.19.2
124
+ jedi==0.20.0
151
125
  # via ipython
152
126
  jinja2==3.1.6
153
127
  # via
@@ -176,17 +150,17 @@ jupyter-core==5.9.1
176
150
  # nbformat
177
151
  jupyterlab-pygments==0.3.0
178
152
  # via nbconvert
179
- jupytext==1.19.1
153
+ jupytext==1.19.3
180
154
  # via mkdocs-jupyter
181
155
  kiwisolver==1.5.0
182
156
  # via matplotlib
183
157
  levenshtein==0.27.3
184
158
  # via pypsa
185
- linopy==0.6.7
159
+ linopy==0.7.0
186
160
  # via pypsa
187
161
  locket==1.0.0
188
162
  # via partd
189
- lxml==6.1.0
163
+ lxml==6.1.1
190
164
  # via mkdocs-video
191
165
  markdown==3.10.2
192
166
  # via
@@ -196,7 +170,7 @@ markdown==3.10.2
196
170
  # mkdocstrings
197
171
  # properdocs
198
172
  # pymdown-extensions
199
- markdown-it-py==4.0.0
173
+ markdown-it-py==4.2.0
200
174
  # via
201
175
  # jupytext
202
176
  # mdit-py-plugins
@@ -208,17 +182,17 @@ markupsafe==3.0.3
208
182
  # mkdocstrings
209
183
  # nbconvert
210
184
  # properdocs
211
- matplotlib==3.10.8
185
+ matplotlib==3.10.9
212
186
  # via
213
187
  # cartopy
214
188
  # pypsa
215
189
  # salib
216
190
  # seaborn
217
- matplotlib-inline==0.2.1
191
+ matplotlib-inline==0.2.2
218
192
  # via
219
193
  # ipykernel
220
194
  # ipython
221
- mdit-py-plugins==0.5.0
195
+ mdit-py-plugins==0.6.1
222
196
  # via jupytext
223
197
  mdurl==0.1.2
224
198
  # via markdown-it-py
@@ -226,7 +200,7 @@ mergedeep==1.3.4
226
200
  # via
227
201
  # mkdocs
228
202
  # mkdocs-get-deps
229
- mistune==3.2.0
203
+ mistune==3.2.1
230
204
  # via nbconvert
231
205
  mkdocs==1.6.1
232
206
  # via
@@ -250,7 +224,7 @@ mkdocs-ezlinks-plugin==0.1.14
250
224
  # via pypsa
251
225
  mkdocs-get-deps==0.2.2
252
226
  # via mkdocs
253
- mkdocs-git-revision-date-localized-plugin==1.5.1
227
+ mkdocs-git-revision-date-localized-plugin==1.5.2
254
228
  # via pypsa
255
229
  mkdocs-jupyter==0.26.3
256
230
  # via pypsa
@@ -272,7 +246,7 @@ mkdocstrings-python==2.0.3
272
246
  # via pypsa
273
247
  multiprocess==0.70.19
274
248
  # via salib
275
- narwhals==2.20.0
249
+ narwhals==2.21.2
276
250
  # via plotly
277
251
  nbclient==0.10.4
278
252
  # via nbconvert
@@ -293,7 +267,7 @@ networkx==3.6.1
293
267
  # tsam
294
268
  numexpr==2.14.1
295
269
  # via linopy
296
- numpy==2.4.4
270
+ numpy==2.4.6
297
271
  # via
298
272
  # bottleneck
299
273
  # cartopy
@@ -348,11 +322,11 @@ pandas==2.3.3
348
322
  # xarray
349
323
  pandocfilters==1.5.1
350
324
  # via nbconvert
351
- parso==0.8.6
325
+ parso==0.8.7
352
326
  # via jedi
353
327
  partd==1.4.2
354
328
  # via dask
355
- pathspec==1.0.4
329
+ pathspec==1.1.1
356
330
  # via
357
331
  # mkdocs
358
332
  # properdocs
@@ -373,31 +347,22 @@ plotly==6.7.0
373
347
  # via pypsa
374
348
  pluggy==1.6.0
375
349
  # via pytest
376
- polars==1.40.0
350
+ polars==1.40.1
377
351
  # via linopy
378
- polars-runtime-32==1.40.0
352
+ polars-runtime-32==1.40.1
379
353
  # via polars
380
354
  prompt-toolkit==3.0.52
381
355
  # via ipython
382
356
  properdocs==1.6.7
383
357
  # via mkdocs-redirects
384
- proto-plus==1.27.2
385
- # via google-api-core
386
- protobuf==7.34.1
387
- # via
388
- # google-api-core
389
- # googleapis-common-protos
390
- # proto-plus
391
358
  psutil==7.2.2
392
- # via ipykernel
359
+ # via
360
+ # ipykernel
361
+ # ipython
393
362
  ptyprocess==0.7.0 ; sys_platform != 'emscripten' and sys_platform != 'win32'
394
363
  # via pexpect
395
364
  pure-eval==0.2.3
396
365
  # via stack-data
397
- pyasn1==0.6.3
398
- # via pyasn1-modules
399
- pyasn1-modules==0.4.2
400
- # via google-auth
401
366
  pycparser==3.0 ; implementation_name != 'PyPy'
402
367
  # via cffi
403
368
  pydeck==0.9.2
@@ -412,7 +377,7 @@ pygments==2.20.0
412
377
  # pytest
413
378
  pygtrie==2.5.0
414
379
  # via mkdocs-ezlinks-plugin
415
- pymdown-extensions==10.21.2
380
+ pymdown-extensions==10.21.3
416
381
  # via
417
382
  # mkdocs-material
418
383
  # mkdocstrings
@@ -426,7 +391,7 @@ pyproj==3.7.2
426
391
  # via
427
392
  # cartopy
428
393
  # geopandas
429
- pyshp==3.0.3
394
+ pyshp==3.0.5
430
395
  # via cartopy
431
396
  pytest==9.0.3
432
397
  # via pypsa
@@ -438,7 +403,7 @@ python-dateutil==2.9.0.post0
438
403
  # jupyter-client
439
404
  # matplotlib
440
405
  # pandas
441
- pytz==2026.1.post1
406
+ pytz==2026.2
442
407
  # via pandas
443
408
  pyyaml==6.0.3
444
409
  # via
@@ -464,12 +429,8 @@ referencing==0.37.0
464
429
  # via
465
430
  # jsonschema
466
431
  # jsonschema-specifications
467
- requests==2.33.1
468
- # via
469
- # google-api-core
470
- # google-cloud-storage
471
- # linopy
472
- # mkdocs-material
432
+ requests==2.34.2
433
+ # via mkdocs-material
473
434
  rpds-py==0.30.0
474
435
  # via
475
436
  # jsonschema
@@ -521,7 +482,7 @@ tqdm==4.67.3
521
482
  # via
522
483
  # linopy
523
484
  # tsam
524
- traitlets==5.14.3
485
+ traitlets==5.15.0
525
486
  # via
526
487
  # ipykernel
527
488
  # ipython
@@ -531,18 +492,18 @@ traitlets==5.14.3
531
492
  # nbclient
532
493
  # nbconvert
533
494
  # nbformat
534
- tsam==3.3.0
495
+ tsam==2.3.9
535
496
  # via pypsa
536
497
  typing-extensions==4.15.0
537
498
  # via
538
499
  # beautifulsoup4
539
500
  # ipython
540
501
  # referencing
541
- tzdata==2026.1
502
+ tzdata==2026.2
542
503
  # via
543
504
  # mkdocs-git-revision-date-localized-plugin
544
505
  # pandas
545
- urllib3==2.6.3
506
+ urllib3==2.7.0
546
507
  # via requests
547
508
  validators==0.35.0
548
509
  # via pypsa
@@ -550,7 +511,7 @@ watchdog==6.0.0
550
511
  # via
551
512
  # mkdocs
552
513
  # properdocs
553
- wcwidth==0.6.0
514
+ wcwidth==0.7.0
554
515
  # via prompt-toolkit
555
516
  webencodings==0.5.1
556
517
  # via
@@ -561,5 +522,5 @@ xarray==2026.2.0
561
522
  # via
562
523
  # linopy
563
524
  # pypsa
564
- zipp==3.23.1 ; python_full_version < '3.12'
525
+ zipp==4.1.0 ; python_full_version < '3.12'
565
526
  # via importlib-metadata
@@ -33,9 +33,9 @@ dependencies = [
33
33
  "numpy",
34
34
  "scipy",
35
35
  "pandas>=2.0",
36
- "xarray<2026.4", # See https://github.com/PyPSA/linopy/pull/647
36
+ "xarray",
37
37
  "netcdf4",
38
- "linopy>=0.6.1",
38
+ "linopy>=0.7.0",
39
39
  "matplotlib",
40
40
  "plotly",
41
41
  "pydeck>=0.6",
@@ -27,7 +27,7 @@ _standard_types_path = Path(__file__).parent.parent / "data" / "standard_types"
27
27
  component_types_df = pd.read_csv(_components_path, index_col=0)
28
28
  default_components = component_types_df.index.to_list()
29
29
 
30
- all_components = {}
30
+ all_components: dict[str, ComponentType] = {}
31
31
 
32
32
 
33
33
  def add_component_type(