pypsa 1.2.1__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.
- {pypsa-1.2.1 → pypsa-1.2.2}/.github/workflows/test-models.yml +3 -0
- {pypsa-1.2.1/pypsa.egg-info → pypsa-1.2.2}/PKG-INFO +3 -3
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/examples/tracing-infeasibilities.ipynb +3 -28
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/home/features.md +1 -1
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/release-notes.md +13 -2
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/requirements.txt +41 -80
- {pypsa-1.2.1 → pypsa-1.2.2}/pyproject.toml +2 -2
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/optimization/constraints.py +9 -6
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/optimization/optimize.py +1 -1
- {pypsa-1.2.1 → pypsa-1.2.2/pypsa.egg-info}/PKG-INFO +3 -3
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa.egg-info/requires.txt +2 -2
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_lopf_basic_constraints.py +76 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/.codespell.ignore +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/.git-blame-ignore-revs +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/.github/ISSUE_TEMPLATE/bug_report.yaml +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/.github/ISSUE_TEMPLATE/documentation_improvement.yaml +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/.github/dependabot.yml +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/.github/pull_request_template.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/.github/workflows/codeql.yml +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/.github/workflows/release.yml +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/.github/workflows/test.yml +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/.gitignore +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/.pre-commit-config.yaml +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/.readthedocs.yml +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/CITATION.cff +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/CONTRIBUTING.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/LICENSE +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/LICENSES/CC-BY-4.0.txt +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/LICENSES/MIT.txt +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/MANIFEST.in +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/README.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/REUSE.toml +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/codecov.yml +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/CODE_OF_CONDUCT.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/SECURITY.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/api/components/common.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/api/components/components.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/api/components/types/buses.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/api/components/types/carriers.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/api/components/types/generators.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/api/components/types/global-constraints.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/api/components/types/lines.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/api/components/types/links.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/api/components/types/loads.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/api/components/types/processes.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/api/components/types/shapes.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/api/components/types/shunt-impedances.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/api/components/types/storage-units.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/api/components/types/stores.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/api/components/types/sub-networks.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/api/components/types/transformers.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/api/networks/cluster.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/api/networks/collection.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/api/networks/components.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/api/networks/constraints.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/api/networks/descriptors.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/api/networks/indexing.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/api/networks/io.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/api/networks/network.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/api/networks/optimize.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/api/networks/plot.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/api/networks/power-flow.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/api/networks/statistics.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/api/networks/subnetwork.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/api/networks/transform.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/api/other/api-examples.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/api/other/common.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/api/other/consistency.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/api/other/costs.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/api/other/options.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/images/ac_dc_meshed-energy_balance-area_plot.jpg +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/images/ac_dc_meshed-energy_balance-area_plot.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/images/ac_dc_meshed-energy_balance-bar_plot.jpg +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/images/ac_dc_meshed-energy_balance-bar_plot.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/images/ac_dc_meshed-energy_balance-box_plot.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/images/ac_dc_meshed-energy_balance-custom_area_plot.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/images/ac_dc_meshed-energy_balance-histogram_plot.jpg +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/images/ac_dc_meshed-energy_balance-histogram_plot.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/images/ac_dc_meshed-energy_balance-line_plot.jpg +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/images/ac_dc_meshed-energy_balance-line_plot.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/images/ac_dc_meshed-energy_balance-map_plot.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/images/ac_dc_meshed-energy_balance-scatter_plot.jpg +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/images/ac_dc_meshed-energy_balance-scatter_plot.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/images/ac_dc_meshed-energy_balance-violin_plot.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/images/ac_dc_meshed-installed_capacity-bar_plot.jpg +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/images/ac_dc_meshed-installed_capacity-bar_plot.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/images/ac_dc_meshed.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/images/buses.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/images/carbon_management-energy_balance-area_plot-AC-bus_carrier.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/images/carbon_management-energy_balance-area_plot.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/images/elec_s_256_lv1.09_Co2L-3H.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/images/line-equivalent.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/images/lmp_and_line-loading.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/images/load-distribution.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/images/p_max_pu.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/images/pypsa-animation.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/images/pypsa-logo.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/images/reactive-power.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/images/reserve-power-funding.gif +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/images/reserve-power-graph.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/images/scigrid-curtailment.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/images/stacked-gen.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/images/stacked-gen_and_storage-scigrid.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/images/statistics_advanced_usage.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/images/storage-scigrid.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/images/transformer-pi-equivalent-tap-hv.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/images/transformer-pi-equivalent-tap-lv.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/images/transformer-t-equivalent-tap-hv.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/images/transformer-t-equivalent-tap-lv.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/interactive/ac_dc_meshed-energy_balance-area_iplot.html +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/interactive/carbon_management-energy_balance-area_iplot-AC-bus_carrier.html +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/interactive/carbon_management-energy_balance-area_iplot.html +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/javascripts/gurubase-widget.js +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/javascripts/mathjax.js +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/javascripts/readthedocs.js +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/logo/logo-primary-dark.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/logo/logo-primary-dark.svg +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/logo/logo-primary-light-white-bg.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/logo/logo-primary-light.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/logo/logo-primary-light.svg +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/logo/logo-secondary-dark.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/logo/logo-secondary-dark.svg +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/logo/logo-secondary-light.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/logo/logo-secondary-light.svg +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/logo/logo-white-bg.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/logo/logo.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/logo/logo.svg +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/overrides/main.html +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/assets/stylesheets/extra.css +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/contributing/contributing.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/contributing/contributors.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/examples/3-node-cem.ipynb +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/examples/ac-dc-lopf.ipynb +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/examples/battery-electric-vehicle-charging.ipynb +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/examples/biomass-synthetic-fuels-carbon-management.ipynb +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/examples/capacity-expansion-planning-single-node.ipynb +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/examples/chained-hydro-reservoirs.ipynb +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/examples/chp-fixed-heat-power-ratio.ipynb +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/examples/committable-extendable.ipynb +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/examples/demand-elasticity.ipynb +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/examples/demand-supply-bids.ipynb +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/examples/example-1.ipynb +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/examples/example-2.ipynb +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/examples/example-3.ipynb +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/examples/examples.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/examples/generation-investment-screening-curve.ipynb +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/examples/gsa.ipynb +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/examples/imperfect-competition.ipynb +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/examples/islanded-methanol-production.ipynb +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/examples/mga.ipynb +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/examples/minimal-example-pf.ipynb +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/examples/modular-committable.ipynb +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/examples/modular-expansion.ipynb +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/examples/multi-investment-optimisation.ipynb +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/examples/myopic-pathway.ipynb +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/examples/near-opt-space.ipynb +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/examples/negative-prices-kvl-baker.ipynb +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/examples/periodic-operational-limits.ipynb +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/examples/power-to-gas-boiler-chp.ipynb +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/examples/power-to-heat-water-tank.ipynb +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/examples/replace-generator-storage-units-with-store.ipynb +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/examples/reserve-power.ipynb +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/examples/rh_example.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/examples/rolling-horizon.ipynb +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/examples/scigrid-lopf-then-pf.ipynb +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/examples/scigrid-redispatch.ipynb +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/examples/scigrid-sclopf.ipynb +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/examples/sector-coupling-single-node.ipynb +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/examples/simple-electricity-market-examples.ipynb +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/examples/stochastic-optimization.ipynb +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/examples/time-series-aggregation.ipynb +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/examples/transformer-example.ipynb +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/examples/transport-delay.ipynb +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/examples/uc-prices.ipynb +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/examples/unit-commitment.ipynb +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/examples/water-value.ipynb +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/home/citing.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/home/installation.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/home/license.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/home/models.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/home/users.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/hooks/cleanup.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/hooks/dynamic_inspect.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/hooks/notebook_timing.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/hooks/path_aliases.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/hooks/shortcodes.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/index.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/user-guide/clustering.ipynb +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/user-guide/collection.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/user-guide/components/buses.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/user-guide/components/carriers.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/user-guide/components/generators.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/user-guide/components/global-constraints.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/user-guide/components/line-types.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/user-guide/components/lines.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/user-guide/components/links.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/user-guide/components/loads.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/user-guide/components/processes.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/user-guide/components/shapes.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/user-guide/components/shunt-impedances.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/user-guide/components/storage-units.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/user-guide/components/stores.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/user-guide/components/sub-networks.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/user-guide/components/transformer-types.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/user-guide/components/transformers.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/user-guide/components.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/user-guide/design.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/user-guide/faq.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/user-guide/import-export.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/user-guide/learning-materials.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/user-guide/linear-power-flow.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/user-guide/logging.ipynb +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/user-guide/network-optimization.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/user-guide/optimization/capacity-limits.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/user-guide/optimization/contingencies.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/user-guide/optimization/custom-constraints.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/user-guide/optimization/dispatch-limits.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/user-guide/optimization/energy-balance.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/user-guide/optimization/global-constraints.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/user-guide/optimization/modelling-to-generate-alternatives.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/user-guide/optimization/objective.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/user-guide/optimization/overview.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/user-guide/optimization/pathway-planning.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/user-guide/optimization/power-flow.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/user-guide/optimization/stochastic.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/user-guide/optimization/storage.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/user-guide/optimization/unit-commitment.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/user-guide/options.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/user-guide/plotting/charts.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/user-guide/plotting/explore.ipynb +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/user-guide/plotting/static-map.ipynb +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/user-guide/power-flow.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/user-guide/statistics.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/user-guide/support.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/user-guide/troubleshooting.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/user-guide/user-guide.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/user-guide/v1-guide.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/docs/user-guide/warnings.md +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/ac-dc-meshed/ac-dc-meshed/buses.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/ac-dc-meshed/ac-dc-meshed/carriers.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/ac-dc-meshed/ac-dc-meshed/crs.json +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/ac-dc-meshed/ac-dc-meshed/generators-p_max_pu.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/ac-dc-meshed/ac-dc-meshed/generators.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/ac-dc-meshed/ac-dc-meshed/global_constraints.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/ac-dc-meshed/ac-dc-meshed/investment_periods.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/ac-dc-meshed/ac-dc-meshed/lines.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/ac-dc-meshed/ac-dc-meshed/links.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/ac-dc-meshed/ac-dc-meshed/loads-p_set.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/ac-dc-meshed/ac-dc-meshed/loads.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/ac-dc-meshed/ac-dc-meshed/meta.json +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/ac-dc-meshed/ac-dc-meshed/network.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/ac-dc-meshed/ac-dc-meshed/snapshots.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/ac-dc-meshed/ac-dc-meshed.nc +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/model-energy/model-energy/buses.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/model-energy/model-energy/carriers.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/model-energy/model-energy/crs.json +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/model-energy/model-energy/generators-p_max_pu.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/model-energy/model-energy/generators.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/model-energy/model-energy/investment_periods.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/model-energy/model-energy/links.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/model-energy/model-energy/loads-p_set.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/model-energy/model-energy/loads.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/model-energy/model-energy/meta.json +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/model-energy/model-energy/network.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/model-energy/model-energy/snapshots.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/model-energy/model-energy/storage_units.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/model-energy/model-energy/stores.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/model-energy/model-energy.nc +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/scigrid-de/scigrid-de/buses.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/scigrid-de/scigrid-de/carriers.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/scigrid-de/scigrid-de/crs.json +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/scigrid-de/scigrid-de/generators-p_max_pu.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/scigrid-de/scigrid-de/generators.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/scigrid-de/scigrid-de/investment_periods.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/scigrid-de/scigrid-de/lines.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/scigrid-de/scigrid-de/loads-p_set.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/scigrid-de/scigrid-de/loads.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/scigrid-de/scigrid-de/meta.json +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/scigrid-de/scigrid-de/network.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/scigrid-de/scigrid-de/snapshots.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/scigrid-de/scigrid-de/storage_units.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/scigrid-de/scigrid-de/transformers.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/scigrid-de/scigrid-de.nc +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/stochastic-network/stochastic-network.nc +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/storage-hvdc/storage-hvdc/buses.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/storage-hvdc/storage-hvdc/carriers.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/storage-hvdc/storage-hvdc/crs.json +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/storage-hvdc/storage-hvdc/generators-p_max_pu.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/storage-hvdc/storage-hvdc/generators.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/storage-hvdc/storage-hvdc/global_constraints.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/storage-hvdc/storage-hvdc/investment_periods.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/storage-hvdc/storage-hvdc/lines.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/storage-hvdc/storage-hvdc/links.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/storage-hvdc/storage-hvdc/loads-p_set.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/storage-hvdc/storage-hvdc/loads.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/storage-hvdc/storage-hvdc/meta.json +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/storage-hvdc/storage-hvdc/network.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/storage-hvdc/storage-hvdc/snapshots.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/storage-hvdc/storage-hvdc/storage_units-inflow.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/storage-hvdc/storage-hvdc/storage_units-state_of_charge_set.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/storage-hvdc/storage-hvdc/storage_units.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/examples/networks/storage-hvdc/storage-hvdc.nc +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/mkdocs.yml +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/__init__.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/_options.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/clustering/__init__.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/clustering/spatial.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/clustering/temporal.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/collection.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/common.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/components/__init__.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/components/_types/__init__.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/components/_types/_patch.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/components/_types/buses.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/components/_types/carriers.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/components/_types/generators.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/components/_types/global_constraints.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/components/_types/line_types.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/components/_types/lines.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/components/_types/links.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/components/_types/loads.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/components/_types/mixin/__init__.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/components/_types/mixin/multiports.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/components/_types/processes.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/components/_types/shapes.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/components/_types/shunt_impedances.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/components/_types/storage_units.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/components/_types/stores.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/components/_types/sub_networks.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/components/_types/transformer_types.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/components/_types/transformers.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/components/abstract.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/components/array.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/components/common.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/components/components.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/components/descriptors.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/components/index.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/components/legacy.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/components/store.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/components/transform.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/components/types.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/consistency.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/constants.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/costs.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/data/component_attrs/buses.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/data/component_attrs/carriers.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/data/component_attrs/generators.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/data/component_attrs/global_constraints.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/data/component_attrs/line_types.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/data/component_attrs/lines.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/data/component_attrs/links.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/data/component_attrs/loads.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/data/component_attrs/networks.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/data/component_attrs/processes.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/data/component_attrs/shapes.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/data/component_attrs/shunt_impedances.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/data/component_attrs/storage_units.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/data/component_attrs/stores.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/data/component_attrs/sub_networks.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/data/component_attrs/transformer_types.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/data/component_attrs/transformers.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/data/components.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/data/standard_types/line_types.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/data/standard_types/transformer_types.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/data/variables.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/definitions/components.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/definitions/structures.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/deprecations.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/descriptors.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/examples.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/geo.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/guards.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/network/__init__.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/network/abstract.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/network/components.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/network/descriptors.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/network/graph.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/network/index.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/network/io.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/network/power_flow.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/network/transform.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/networks.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/optimization/__init__.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/optimization/abstract.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/optimization/common.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/optimization/expressions.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/optimization/global_constraints.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/optimization/mga.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/optimization/variables.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/plot/__init__.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/plot/accessor.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/plot/maps/__init__.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/plot/maps/common.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/plot/maps/interactive.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/plot/maps/static.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/plot/statistics/__init__.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/plot/statistics/base.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/plot/statistics/charts.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/plot/statistics/maps.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/plot/statistics/plotter.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/plot/statistics/schema.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/py.typed +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/statistics/__init__.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/statistics/abstract.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/statistics/expressions.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/statistics/grouping.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/type_utils.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa/version.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa.egg-info/SOURCES.txt +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa.egg-info/dependency_links.txt +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/pypsa.egg-info/top_level.txt +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/setup.cfg +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_area-capacity_factor.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_area-capex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_area-curtailment.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_area-energy_balance.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_area-expanded_capacity.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_area-expanded_capex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_area-installed_capacity.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_area-installed_capex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_area-market_value.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_area-opex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_area-optimal_capacity.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_area-prices.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_area-revenue.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_area-supply.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_area-system_cost.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_area-transmission.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_area-withdrawal.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_area_capacity_factor.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_area_capex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_area_curtailment.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_area_energy_balance.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_area_expanded_capacity.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_area_expanded_capex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_area_installed_capacity.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_area_installed_capex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_area_market_value.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_area_opex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_area_optimal_capacity.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_area_revenue.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_area_supply.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_area_system_cost.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_area_transmission.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_area_withdrawal.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_bar-capacity_factor.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_bar-capex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_bar-curtailment.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_bar-energy_balance.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_bar-expanded_capacity.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_bar-expanded_capex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_bar-installed_capacity.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_bar-installed_capex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_bar-market_value.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_bar-opex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_bar-optimal_capacity.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_bar-prices.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_bar-revenue.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_bar-supply.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_bar-system_cost.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_bar-transmission.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_bar-withdrawal.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_bar_capacity_factor.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_bar_capex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_bar_curtailment.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_bar_energy_balance.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_bar_expanded_capacity.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_bar_expanded_capex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_bar_installed_capacity.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_bar_installed_capex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_bar_market_value.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_bar_opex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_bar_optimal_capacity.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_bar_revenue.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_bar_supply.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_bar_system_cost.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_bar_transmission.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_bar_withdrawal.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_box-capacity_factor.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_box-capex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_box-curtailment.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_box-energy_balance.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_box-expanded_capacity.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_box-expanded_capex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_box-installed_capacity.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_box-installed_capex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_box-market_value.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_box-opex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_box-optimal_capacity.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_box-prices.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_box-revenue.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_box-supply.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_box-system_cost.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_box-transmission.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_box-withdrawal.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_histogram-capacity_factor.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_histogram-capex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_histogram-curtailment.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_histogram-energy_balance.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_histogram-expanded_capacity.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_histogram-expanded_capex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_histogram-installed_capacity.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_histogram-installed_capex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_histogram-market_value.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_histogram-opex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_histogram-optimal_capacity.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_histogram-prices.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_histogram-revenue.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_histogram-supply.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_histogram-system_cost.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_histogram-transmission.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_histogram-withdrawal.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_line-capacity_factor.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_line-capex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_line-curtailment.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_line-energy_balance.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_line-expanded_capacity.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_line-expanded_capex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_line-installed_capacity.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_line-installed_capex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_line-market_value.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_line-opex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_line-optimal_capacity.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_line-prices.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_line-revenue.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_line-supply.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_line-system_cost.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_line-transmission.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_line-withdrawal.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_line_capacity_factor.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_line_capex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_line_curtailment.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_line_energy_balance.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_line_expanded_capacity.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_line_expanded_capex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_line_installed_capacity.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_line_installed_capex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_line_market_value.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_line_opex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_line_optimal_capacity.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_line_revenue.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_line_supply.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_line_system_cost.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_line_transmission.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_line_withdrawal.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_map-capacity_factor.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_map-capex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_map-curtailment.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_map-energy_balance.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_map-expanded_capacity.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_map-expanded_capex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_map-installed_capacity.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_map-installed_capex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_map-market_value.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_map-opex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_map-optimal_capacity.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_map-revenue.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_map-supply.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_map-system_cost.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_map-transmission.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_map-withdrawal.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_map_capacity_factor.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_map_capex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_map_curtailment.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_map_energy_balance.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_map_expanded_capacity.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_map_expanded_capex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_map_installed_capacity.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_map_installed_capex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_map_market_value.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_map_opex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_map_optimal_capacity.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_map_revenue.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_map_supply.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_map_transmission.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_map_withdrawal.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_scatter-capacity_factor.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_scatter-capex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_scatter-curtailment.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_scatter-energy_balance.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_scatter-expanded_capacity.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_scatter-expanded_capex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_scatter-installed_capacity.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_scatter-installed_capex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_scatter-market_value.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_scatter-opex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_scatter-optimal_capacity.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_scatter-prices.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_scatter-revenue.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_scatter-supply.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_scatter-system_cost.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_scatter-transmission.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_scatter-withdrawal.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_violin-capacity_factor.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_violin-capex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_violin-curtailment.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_violin-energy_balance.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_violin-expanded_capacity.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_violin-expanded_capex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_violin-installed_capacity.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_violin-installed_capex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_violin-market_value.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_violin-opex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_violin-optimal_capacity.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_violin-prices.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_violin-revenue.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_violin-supply.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_violin-system_cost.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_violin-transmission.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_plot_types_violin-withdrawal.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_simple_plot_capacity_factor.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_simple_plot_capex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_simple_plot_curtailment.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_simple_plot_energy_balance.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_simple_plot_expanded_capacity.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_simple_plot_expanded_capex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_simple_plot_installed_capacity.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_simple_plot_installed_capex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_simple_plot_market_value.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_simple_plot_opex.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_simple_plot_optimal_capacity.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_simple_plot_prices.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_simple_plot_revenue.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_simple_plot_supply.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_simple_plot_system_cost.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_simple_plot_transmission.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/baseline/test_simple_plot_withdrawal.png +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/conftest.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lopf/buses-marginal_price.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lopf/buses-p.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lopf/buses-v_ang.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lopf/buses-v_mag_pu.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lopf/buses.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lopf/carriers.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lopf/crs.json +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lopf/generators-p.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lopf/generators-p_max_pu.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lopf/generators.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lopf/global_constraints.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lopf/investment_periods.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lopf/lines-p0.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lopf/lines-p1.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lopf/lines.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lopf/links-p0.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lopf/links-p1.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lopf/links.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lopf/loads-p.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lopf/loads-p_set.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lopf/loads.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lopf/meta.json +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lopf/network.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lopf/snapshots.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lpf/buses-p.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lpf/buses-v_ang.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lpf/buses-v_mag_pu.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lpf/buses.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lpf/carriers.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lpf/generators-p.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lpf/generators-p_max_pu.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lpf/generators.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lpf/global_constraints.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lpf/lines-p0.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lpf/lines-p1.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lpf/lines.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lpf/links-p0.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lpf/links-p1.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lpf/links-p_set.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lpf/links.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lpf/loads-p.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lpf/loads-p_set.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lpf/loads.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lpf/network.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/ac-dc-meshed/results-lpf/snapshots.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/benchmark-sp/buses-marginal_price.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/benchmark-sp/buses-p.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/benchmark-sp/buses.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/benchmark-sp/crs.json +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/benchmark-sp/generators-p-high.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/benchmark-sp/generators-p-med.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/benchmark-sp/generators-p.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/benchmark-sp/generators-p_max_pu.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/benchmark-sp/generators.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/benchmark-sp/investment_periods.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/benchmark-sp/loads-p.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/benchmark-sp/loads.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/benchmark-sp/meta.json +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/benchmark-sp/network.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/benchmark-sp/snapshots.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/buses-marginal_price.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/buses-p.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/buses-v_ang.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/buses.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/carriers.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/generators-p.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/generators-p_max_pu.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/generators.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/global_constraints.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/lines-p0.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/lines-p1.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/lines.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/links-p0.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/links-p1.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/links.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/loads-p.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/loads-p_set.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/loads.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/network.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/snapshots.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/storage_units-inflow.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/storage_units-p.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/storage_units-spill.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/storage_units-state_of_charge.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/storage_units-state_of_charge_set.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/data/storage-hvdc/results-lopf/storage_units.csv +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_bugs.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_buses.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_capital_cost_split.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_carriers.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_collection.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_collection_statistics.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_committable_extendable.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_common.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_common_deprecations.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_compatibility_ext_and_com.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_components.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_components_array.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_components_custom.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_components_store.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_components_utils.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_consistency_check.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_constants.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_deprecations.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_descriptors.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_docs.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_examples.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_graph.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_guards.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_indices.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_io.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_io_cloudpathlib.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_link_post_discretization.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_lopf_ac_dc.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_lopf_activity_mask.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_lopf_and_subsequent_power_flow.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_lopf_global_constraints.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_lopf_iteratively.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_lopf_losses.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_lopf_mga.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_lopf_modularity.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_lopf_multiinvest.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_lopf_multilink.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_lopf_process.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_lopf_quadratic_costs.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_lopf_rolling_horizon.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_lopf_storage.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_lopf_unit_commitment.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_lopf_varying_inputs.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_lpf_ac_dc.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_lpf_against_pypower.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_meshed_threshold.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_network.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_network_cycles.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_network_index.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_network_transform.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_objective_constant.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_optimization_expressions.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_optional_dependencies.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_options.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_pf_activity_mask.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_pf_against_pandapower.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_pf_against_pypower.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_pf_distributed_slack.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_plot_maps_common.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_plot_maps_interactive.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_plot_maps_static.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_riskaversion.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_sclopf_scigrid.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_snapshot_weightings.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_spatial_clustering.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_stand_by_cost.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_statistics.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_statistics_plot.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_statistics_plot_interactive.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_statistics_plot_schema.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_stochastic.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_stochastic_not_implemented.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_subnetwork.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_temporal_clustering.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_transmission_losses.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_transport_delay.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_version.py +0 -0
- {pypsa-1.2.1 → pypsa-1.2.2}/test/test_warnings_cyclic_storage.py +0 -0
|
@@ -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
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pypsa
|
|
3
|
-
Version: 1.2.
|
|
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
|
|
45
|
+
Requires-Dist: xarray
|
|
46
46
|
Requires-Dist: netcdf4
|
|
47
|
-
Requires-Dist: linopy>=0.
|
|
47
|
+
Requires-Dist: linopy>=0.7.0
|
|
48
48
|
Requires-Dist: matplotlib
|
|
49
49
|
Requires-Dist: plotly
|
|
50
50
|
Requires-Dist: pydeck>=0.6
|
|
@@ -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="
|
|
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>
|
|
@@ -6,13 +6,24 @@ SPDX-License-Identifier: CC-BY-4.0
|
|
|
6
6
|
|
|
7
7
|
# Release Notes
|
|
8
8
|
|
|
9
|
-
|
|
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
|
+
|
|
16
27
|
|
|
17
28
|
## [**v1.2.1**](https://github.com/PyPSA/PyPSA/releases/tag/v1.2.1) <small>19th May 2026</small> { id="v1.2.1" }
|
|
18
29
|
|
|
@@ -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==
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
90
|
+
fonttools==4.63.0
|
|
94
91
|
# via matplotlib
|
|
95
|
-
fsspec==2026.
|
|
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.
|
|
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.
|
|
106
|
+
gurobipy==13.0.2
|
|
131
107
|
# via pypsa
|
|
132
|
-
highspy==1.
|
|
108
|
+
highspy==1.14.0
|
|
133
109
|
# via
|
|
134
110
|
# pypsa
|
|
135
111
|
# tsam
|
|
136
|
-
idna==3.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
159
|
+
linopy==0.7.0
|
|
186
160
|
# via pypsa
|
|
187
161
|
locket==1.0.0
|
|
188
162
|
# via partd
|
|
189
|
-
lxml==6.1.
|
|
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.
|
|
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.
|
|
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.
|
|
191
|
+
matplotlib-inline==0.2.2
|
|
218
192
|
# via
|
|
219
193
|
# ipykernel
|
|
220
194
|
# ipython
|
|
221
|
-
mdit-py-plugins==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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
325
|
+
parso==0.8.7
|
|
352
326
|
# via jedi
|
|
353
327
|
partd==1.4.2
|
|
354
328
|
# via dask
|
|
355
|
-
pathspec==1.
|
|
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.
|
|
350
|
+
polars==1.40.1
|
|
377
351
|
# via linopy
|
|
378
|
-
polars-runtime-32==1.40.
|
|
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
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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==
|
|
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.
|
|
502
|
+
tzdata==2026.2
|
|
542
503
|
# via
|
|
543
504
|
# mkdocs-git-revision-date-localized-plugin
|
|
544
505
|
# pandas
|
|
545
|
-
urllib3==2.
|
|
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.
|
|
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==
|
|
525
|
+
zipp==4.1.0 ; python_full_version < '3.12'
|
|
565
526
|
# via importlib-metadata
|
|
@@ -14,7 +14,7 @@ import linopy
|
|
|
14
14
|
import pandas as pd
|
|
15
15
|
import xarray as xr
|
|
16
16
|
from linopy import merge
|
|
17
|
-
from numpy import inf, isfinite, maximum, sqrt, tile
|
|
17
|
+
from numpy import inf, isfinite, isinf, maximum, sqrt, tile
|
|
18
18
|
from xarray import DataArray, concat, where
|
|
19
19
|
|
|
20
20
|
from pypsa.common import as_index, expand_series
|
|
@@ -102,8 +102,12 @@ def define_operational_constraints_for_non_extendables(
|
|
|
102
102
|
min_pu = min_pu.sel(snapshot=sns)
|
|
103
103
|
max_pu = max_pu.sel(snapshot=sns)
|
|
104
104
|
|
|
105
|
-
|
|
106
|
-
|
|
105
|
+
is_inf = isinf(nominal_fix)
|
|
106
|
+
is_zero_min = min_pu == 0
|
|
107
|
+
is_zero_max = max_pu == 0
|
|
108
|
+
|
|
109
|
+
lower = (min_pu * nominal_fix).where(~(is_inf & is_zero_min), 0)
|
|
110
|
+
upper = (max_pu * nominal_fix).where(~(is_inf & is_zero_max), 0)
|
|
107
111
|
|
|
108
112
|
active = c.da.active.sel(name=fix_i, snapshot=sns)
|
|
109
113
|
|
|
@@ -1144,9 +1148,8 @@ def define_nodal_balance_constraints(
|
|
|
1144
1148
|
dims=["snapshot", "name"],
|
|
1145
1149
|
)
|
|
1146
1150
|
else:
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
)
|
|
1151
|
+
active_mask = loads.da.active.sel(name=loads.active_assets, snapshot=sns)
|
|
1152
|
+
loads_values = (-loads.da.p_set * loads.da.sign).where(active_mask)
|
|
1150
1153
|
loads_values = loads_values.reindex(name=loads.static.index.unique("name"))
|
|
1151
1154
|
load_buses = loads._as_xarray("bus").rename("Bus")
|
|
1152
1155
|
if n.has_scenarios:
|
|
@@ -594,7 +594,7 @@ class OptimizationAccessor(OptimizationAbstractMixin):
|
|
|
594
594
|
and compute_infeasibilities
|
|
595
595
|
and "gurobi" in available_solvers
|
|
596
596
|
):
|
|
597
|
-
n.model.
|
|
597
|
+
logger.info(n.model.format_infeasibilities())
|
|
598
598
|
|
|
599
599
|
return status, condition
|
|
600
600
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pypsa
|
|
3
|
-
Version: 1.2.
|
|
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
|
|
45
|
+
Requires-Dist: xarray
|
|
46
46
|
Requires-Dist: netcdf4
|
|
47
|
-
Requires-Dist: linopy>=0.
|
|
47
|
+
Requires-Dist: linopy>=0.7.0
|
|
48
48
|
Requires-Dist: matplotlib
|
|
49
49
|
Requires-Dist: plotly
|
|
50
50
|
Requires-Dist: pydeck>=0.6
|
|
@@ -404,3 +404,79 @@ def test_define_fixed_operational_constraints_extendable():
|
|
|
404
404
|
assert n.c.generators.dynamic.p["gen0"].eq(5).all()
|
|
405
405
|
assert n.c.generators.dynamic.p["gen1"].eq(5).all()
|
|
406
406
|
assert n.c.generators.dynamic.p["gen2"].eq(0).all()
|
|
407
|
+
|
|
408
|
+
|
|
409
|
+
def test_nodal_balance_respects_load_sign():
|
|
410
|
+
"""
|
|
411
|
+
The sign attribute of Load components must be considered in the
|
|
412
|
+
nodal balance constraint. With sign=-1 (default), a load consumes
|
|
413
|
+
power; with sign=+1, it represents a fixed supply injection.
|
|
414
|
+
|
|
415
|
+
Verifies both:
|
|
416
|
+
1. The nodal balance constraint RHS equals -p_set * sign.
|
|
417
|
+
2. The solved generator dispatch matches the resulting net demand.
|
|
418
|
+
"""
|
|
419
|
+
n = pypsa.Network()
|
|
420
|
+
n.add("Bus", "B1")
|
|
421
|
+
n.add("Generator", "gen", bus="B1", p_nom=200, marginal_cost=10)
|
|
422
|
+
n.add("Load", "L_consume", bus="B1", p_set=100, sign=-1)
|
|
423
|
+
n.add("Load", "L_supply", bus="B1", p_set=100, sign=1)
|
|
424
|
+
|
|
425
|
+
n.optimize(solver_name="highs")
|
|
426
|
+
|
|
427
|
+
# Constraint RHS check: -p_set * sign per load, summed per bus
|
|
428
|
+
# Expected for bus B1: -(100 * -1) + -(100 * 1) = 100 - 100 = 0
|
|
429
|
+
rhs = n.model.constraints["Bus-nodal_balance"].rhs.sel(name="B1")
|
|
430
|
+
assert (rhs == 0).all().item()
|
|
431
|
+
|
|
432
|
+
# Generator stays idle
|
|
433
|
+
assert n.c.generators.dynamic.p["gen"].abs().max() < TOLERANCE
|
|
434
|
+
assert n.objective < TOLERANCE
|
|
435
|
+
|
|
436
|
+
|
|
437
|
+
def test_nodal_balance_load_sign_rhs_values():
|
|
438
|
+
"""
|
|
439
|
+
Verify the per-load contribution to the nodal balance RHS for both
|
|
440
|
+
sign conventions, independently of solver behavior.
|
|
441
|
+
"""
|
|
442
|
+
n = pypsa.Network()
|
|
443
|
+
n.add("Bus", "B1")
|
|
444
|
+
n.add("Bus", "B2")
|
|
445
|
+
n.add("Generator", "gen1", bus="B1", p_nom=500, marginal_cost=1)
|
|
446
|
+
n.add("Generator", "gen2", bus="B2", p_nom=500, marginal_cost=1)
|
|
447
|
+
n.add("Load", "L_default", bus="B1", p_set=80) # default sign = -1
|
|
448
|
+
n.add("Load", "L_supply", bus="B2", p_set=30, sign=1)
|
|
449
|
+
|
|
450
|
+
n.optimize.create_model()
|
|
451
|
+
|
|
452
|
+
rhs = n.model.constraints["Bus-nodal_balance"].rhs
|
|
453
|
+
# Default sign=-1: RHS contribution = -p_set * (-1) = +p_set
|
|
454
|
+
assert rhs.sel(name="B1").item() == 80.0
|
|
455
|
+
# sign=+1: RHS contribution = -p_set * (+1) = -p_set
|
|
456
|
+
assert rhs.sel(name="B2").item() == -30.0
|
|
457
|
+
|
|
458
|
+
|
|
459
|
+
def test_define_fixed_operational_constraints_infinite_p_nom():
|
|
460
|
+
"""Non-extendable generator with p_nom=inf and p_min_pu=0 must not produce NaN bounds.
|
|
461
|
+
|
|
462
|
+
Without the inf*0 fallback, the lower bound would be NaN and the solve would fail.
|
|
463
|
+
"""
|
|
464
|
+
n = pypsa.Network()
|
|
465
|
+
n.add("Bus", "bus0")
|
|
466
|
+
n.add("Load", "load0", bus="bus0", p_set=10)
|
|
467
|
+
n.add(
|
|
468
|
+
"Generator",
|
|
469
|
+
"gen_inf",
|
|
470
|
+
bus="bus0",
|
|
471
|
+
p_nom=float("inf"),
|
|
472
|
+
p_min_pu=0,
|
|
473
|
+
p_max_pu=1,
|
|
474
|
+
marginal_cost=1,
|
|
475
|
+
)
|
|
476
|
+
|
|
477
|
+
n.optimize.create_model()
|
|
478
|
+
lower = n.model.constraints["Generator-fix-p-lower"].rhs
|
|
479
|
+
assert (lower == 0).all()
|
|
480
|
+
|
|
481
|
+
n.optimize.solve_model()
|
|
482
|
+
assert n.c.generators.dynamic.p["gen_inf"].eq(10).all()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|