pypsa 1.2.3__tar.gz → 1.2.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pypsa-1.2.3 → pypsa-1.2.4}/.github/workflows/test.yml +47 -13
- {pypsa-1.2.3 → pypsa-1.2.4}/LICENSE +1 -1
- {pypsa-1.2.3/pypsa.egg-info → pypsa-1.2.4}/PKG-INFO +4 -2
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/examples/imperfect-competition.ipynb +1 -1
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/release-notes.md +43 -2
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/user-guide/power-flow.md +3 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pyproject.toml +6 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/clustering/temporal.py +26 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/common.py +5 -1
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/components/_types/buses.py +1 -1
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/components/_types/carriers.py +1 -1
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/components/_types/generators.py +1 -1
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/components/_types/global_constraints.py +1 -1
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/components/_types/line_types.py +1 -1
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/components/_types/lines.py +1 -1
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/components/_types/links.py +1 -1
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/components/_types/loads.py +1 -1
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/components/_types/processes.py +1 -1
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/components/_types/shapes.py +1 -1
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/components/_types/shunt_impedances.py +1 -1
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/components/_types/storage_units.py +1 -1
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/components/_types/stores.py +1 -1
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/components/_types/sub_networks.py +1 -1
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/components/_types/transformer_types.py +1 -1
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/components/_types/transformers.py +1 -1
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/components/transform.py +4 -3
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/components/types.py +15 -9
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/constants.py +3 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/data/component_attrs/processes.csv +7 -7
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/data/component_attrs/transformers.csv +11 -11
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/network/index.py +7 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/network/io.py +44 -4
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/network/power_flow.py +31 -3
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/network/transform.py +36 -23
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/networks.py +0 -6
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/optimization/common.py +21 -3
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/optimization/constraints.py +21 -26
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/optimization/optimize.py +2 -3
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/plot/maps/static.py +1 -1
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/plot/statistics/base.py +22 -1
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/plot/statistics/charts.py +113 -54
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/plot/statistics/maps.py +1 -1
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/plot/statistics/plotter.py +66 -35
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/plot/statistics/schema.py +84 -53
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/statistics/abstract.py +2 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/statistics/expressions.py +68 -18
- {pypsa-1.2.3 → pypsa-1.2.4/pypsa.egg-info}/PKG-INFO +4 -2
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa.egg-info/SOURCES.txt +3 -63
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa.egg-info/requires.txt +2 -0
- pypsa-1.2.4/pypsa.egg-info/scm_file_list.json +730 -0
- pypsa-1.2.4/pypsa.egg-info/scm_version.json +8 -0
- pypsa-1.2.4/test/baseline/test_plot_types_area-curtailment.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_area-prices.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_area-system_cost.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_bar-prices.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_bar-system_cost.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_box-capacity_factor.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_box-capex.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_box-curtailment.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_box-energy_balance.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_box-expanded_capacity.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_box-expanded_capex.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_box-installed_capacity.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_box-installed_capex.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_box-market_value.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_box-opex.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_box-optimal_capacity.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_box-prices.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_box-revenue.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_box-supply.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_box-system_cost.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_box-transmission.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_box-withdrawal.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_histogram-capacity_factor.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_histogram-capex.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_histogram-curtailment.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_histogram-energy_balance.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_histogram-expanded_capacity.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_histogram-expanded_capex.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_histogram-installed_capacity.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_histogram-installed_capex.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_histogram-market_value.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_histogram-opex.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_histogram-optimal_capacity.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_histogram-prices.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_histogram-revenue.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_histogram-supply.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_histogram-system_cost.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_histogram-transmission.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_histogram-withdrawal.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_line-capacity_factor.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_line-curtailment.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_line-energy_balance.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_line-market_value.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_line-prices.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_line-revenue.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_line-supply.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_line-system_cost.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_line-withdrawal.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_map-capacity_factor.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_map-capex.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_map-curtailment.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_map-energy_balance.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_map-expanded_capacity.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_map-expanded_capex.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_map-installed_capacity.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_map-installed_capex.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_map-market_value.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_map-opex.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_map-optimal_capacity.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_map-revenue.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_map-supply.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_map-system_cost.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_map-transmission.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_map-withdrawal.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_scatter-capacity_factor.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_scatter-capex.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_scatter-curtailment.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_scatter-energy_balance.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_scatter-expanded_capacity.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_scatter-expanded_capex.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_scatter-installed_capacity.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_scatter-installed_capex.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_scatter-market_value.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_scatter-opex.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_scatter-optimal_capacity.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_scatter-prices.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_scatter-revenue.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_scatter-supply.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_scatter-system_cost.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_scatter-transmission.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_scatter-withdrawal.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_violin-capacity_factor.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_violin-capex.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_violin-curtailment.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_violin-energy_balance.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_violin-expanded_capacity.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_violin-expanded_capex.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_violin-installed_capacity.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_violin-installed_capex.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_violin-market_value.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_violin-opex.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_violin-optimal_capacity.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_violin-prices.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_violin-revenue.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_violin-supply.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_violin-system_cost.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_violin-transmission.png +0 -0
- pypsa-1.2.4/test/baseline/test_plot_types_violin-withdrawal.png +0 -0
- pypsa-1.2.4/test/baseline/test_simple_plot_prices.png +0 -0
- pypsa-1.2.4/test/baseline/test_simple_plot_system_cost.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/conftest.py +30 -1
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_collection_statistics.py +7 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_io.py +63 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_lopf_multiinvest.py +36 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_lpf_ac_dc.py +19 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_network.py +68 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_network_index.py +18 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_optimization_common.py +3 -1
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_pf_against_pandapower.py +16 -3
- pypsa-1.2.4/test/test_standard_types.py +48 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_statistics.py +30 -5
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_statistics_plot.py +162 -19
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_statistics_plot_interactive.py +70 -0
- pypsa-1.2.4/test/test_statistics_plot_schema.py +81 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_temporal_clustering.py +46 -8
- pypsa-1.2.3/test/baseline/test_plot_types_area-capacity_factor.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_area-capex.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_area-curtailment.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_area-energy_balance.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_area-expanded_capacity.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_area-expanded_capex.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_area-installed_capacity.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_area-installed_capex.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_area-opex.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_area-optimal_capacity.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_area-prices.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_area-revenue.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_area-supply.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_area-system_cost.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_area-transmission.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_area-withdrawal.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_area_curtailment.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_area_market_value.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_area_system_cost.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_bar-capacity_factor.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_bar-capex.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_bar-curtailment.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_bar-energy_balance.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_bar-expanded_capacity.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_bar-expanded_capex.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_bar-installed_capacity.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_bar-installed_capex.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_bar-opex.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_bar-optimal_capacity.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_bar-prices.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_bar-revenue.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_bar-supply.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_bar-system_cost.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_bar-transmission.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_bar-withdrawal.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_bar_market_value.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_bar_system_cost.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_box-capacity_factor.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_box-capex.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_box-curtailment.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_box-energy_balance.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_box-expanded_capacity.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_box-expanded_capex.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_box-installed_capacity.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_box-installed_capex.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_box-market_value.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_box-opex.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_box-optimal_capacity.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_box-prices.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_box-revenue.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_box-supply.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_box-system_cost.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_box-transmission.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_box-withdrawal.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_histogram-capacity_factor.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_histogram-capex.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_histogram-curtailment.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_histogram-energy_balance.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_histogram-expanded_capacity.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_histogram-expanded_capex.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_histogram-installed_capacity.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_histogram-installed_capex.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_histogram-market_value.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_histogram-opex.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_histogram-optimal_capacity.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_histogram-prices.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_histogram-revenue.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_histogram-supply.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_histogram-system_cost.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_histogram-transmission.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_histogram-withdrawal.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_line-capacity_factor.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_line-capex.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_line-curtailment.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_line-energy_balance.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_line-expanded_capacity.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_line-expanded_capex.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_line-installed_capacity.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_line-installed_capex.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_line-market_value.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_line-opex.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_line-optimal_capacity.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_line-prices.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_line-revenue.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_line-supply.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_line-system_cost.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_line-transmission.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_line-withdrawal.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_line_capacity_factor.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_line_curtailment.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_line_energy_balance.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_line_market_value.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_line_revenue.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_line_supply.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_line_system_cost.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_line_withdrawal.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_map-capacity_factor.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_map-capex.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_map-curtailment.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_map-energy_balance.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_map-expanded_capacity.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_map-expanded_capex.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_map-installed_capacity.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_map-installed_capex.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_map-market_value.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_map-opex.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_map-optimal_capacity.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_map-revenue.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_map-supply.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_map-system_cost.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_map-transmission.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_map-withdrawal.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_map_capacity_factor.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_map_capex.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_map_curtailment.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_map_energy_balance.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_map_expanded_capacity.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_map_expanded_capex.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_map_installed_capacity.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_map_installed_capex.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_map_market_value.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_map_opex.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_map_optimal_capacity.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_map_revenue.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_map_supply.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_map_transmission.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_map_withdrawal.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_scatter-capacity_factor.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_scatter-capex.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_scatter-curtailment.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_scatter-energy_balance.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_scatter-expanded_capacity.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_scatter-expanded_capex.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_scatter-installed_capacity.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_scatter-installed_capex.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_scatter-market_value.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_scatter-opex.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_scatter-optimal_capacity.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_scatter-prices.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_scatter-revenue.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_scatter-supply.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_scatter-system_cost.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_scatter-transmission.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_scatter-withdrawal.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_violin-capacity_factor.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_violin-capex.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_violin-curtailment.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_violin-energy_balance.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_violin-expanded_capacity.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_violin-expanded_capex.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_violin-installed_capacity.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_violin-installed_capex.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_violin-market_value.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_violin-opex.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_violin-optimal_capacity.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_violin-prices.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_violin-revenue.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_violin-supply.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_violin-system_cost.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_violin-transmission.png +0 -0
- pypsa-1.2.3/test/baseline/test_plot_types_violin-withdrawal.png +0 -0
- pypsa-1.2.3/test/baseline/test_simple_plot_prices.png +0 -0
- pypsa-1.2.3/test/baseline/test_simple_plot_system_cost.png +0 -0
- pypsa-1.2.3/test/test_statistics_plot_schema.py +0 -30
- {pypsa-1.2.3 → pypsa-1.2.4}/.codespell.ignore +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/.git-blame-ignore-revs +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/.github/ISSUE_TEMPLATE/bug_report.yaml +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/.github/ISSUE_TEMPLATE/documentation_improvement.yaml +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/.github/dependabot.yml +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/.github/pull_request_template.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/.github/workflows/codeql.yml +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/.github/workflows/release.yml +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/.github/workflows/test-models.yml +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/.gitignore +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/.pre-commit-config.yaml +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/.readthedocs.yml +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/CITATION.cff +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/CONTRIBUTING.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/LICENSES/CC-BY-4.0.txt +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/LICENSES/MIT.txt +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/MANIFEST.in +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/README.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/REUSE.toml +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/codecov.yml +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/CODE_OF_CONDUCT.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/SECURITY.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/api/components/common.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/api/components/components.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/api/components/types/buses.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/api/components/types/carriers.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/api/components/types/generators.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/api/components/types/global-constraints.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/api/components/types/lines.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/api/components/types/links.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/api/components/types/loads.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/api/components/types/processes.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/api/components/types/shapes.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/api/components/types/shunt-impedances.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/api/components/types/storage-units.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/api/components/types/stores.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/api/components/types/sub-networks.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/api/components/types/transformers.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/api/networks/cluster.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/api/networks/collection.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/api/networks/components.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/api/networks/constraints.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/api/networks/descriptors.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/api/networks/indexing.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/api/networks/io.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/api/networks/network.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/api/networks/optimize.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/api/networks/plot.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/api/networks/power-flow.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/api/networks/statistics.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/api/networks/subnetwork.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/api/networks/transform.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/api/other/api-examples.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/api/other/common.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/api/other/consistency.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/api/other/costs.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/api/other/options.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/images/ac_dc_meshed-energy_balance-area_plot.jpg +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/images/ac_dc_meshed-energy_balance-area_plot.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/images/ac_dc_meshed-energy_balance-bar_plot.jpg +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/images/ac_dc_meshed-energy_balance-bar_plot.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/images/ac_dc_meshed-energy_balance-box_plot.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/images/ac_dc_meshed-energy_balance-custom_area_plot.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/images/ac_dc_meshed-energy_balance-histogram_plot.jpg +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/images/ac_dc_meshed-energy_balance-histogram_plot.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/images/ac_dc_meshed-energy_balance-line_plot.jpg +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/images/ac_dc_meshed-energy_balance-line_plot.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/images/ac_dc_meshed-energy_balance-map_plot.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/images/ac_dc_meshed-energy_balance-scatter_plot.jpg +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/images/ac_dc_meshed-energy_balance-scatter_plot.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/images/ac_dc_meshed-energy_balance-violin_plot.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/images/ac_dc_meshed-installed_capacity-bar_plot.jpg +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/images/ac_dc_meshed-installed_capacity-bar_plot.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/images/ac_dc_meshed.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/images/buses.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/images/carbon_management-energy_balance-area_plot-AC-bus_carrier.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/images/carbon_management-energy_balance-area_plot.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/images/elec_s_256_lv1.09_Co2L-3H.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/images/line-equivalent.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/images/lmp_and_line-loading.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/images/load-distribution.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/images/p_max_pu.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/images/pypsa-animation.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/images/pypsa-logo.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/images/reactive-power.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/images/reserve-power-funding.gif +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/images/reserve-power-graph.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/images/scigrid-curtailment.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/images/stacked-gen.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/images/stacked-gen_and_storage-scigrid.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/images/statistics_advanced_usage.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/images/storage-scigrid.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/images/transformer-pi-equivalent-tap-hv.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/images/transformer-pi-equivalent-tap-lv.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/images/transformer-t-equivalent-tap-hv.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/images/transformer-t-equivalent-tap-lv.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/interactive/ac_dc_meshed-energy_balance-area_iplot.html +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/interactive/carbon_management-energy_balance-area_iplot-AC-bus_carrier.html +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/interactive/carbon_management-energy_balance-area_iplot.html +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/javascripts/gurubase-widget.js +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/javascripts/mathjax.js +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/javascripts/readthedocs.js +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/logo/logo-primary-dark.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/logo/logo-primary-dark.svg +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/logo/logo-primary-light-white-bg.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/logo/logo-primary-light.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/logo/logo-primary-light.svg +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/logo/logo-secondary-dark.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/logo/logo-secondary-dark.svg +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/logo/logo-secondary-light.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/logo/logo-secondary-light.svg +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/logo/logo-white-bg.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/logo/logo.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/logo/logo.svg +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/overrides/main.html +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/assets/stylesheets/extra.css +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/contributing/contributing.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/contributing/contributors.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/examples/3-node-cem.ipynb +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/examples/ac-dc-lopf.ipynb +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/examples/battery-electric-vehicle-charging.ipynb +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/examples/biomass-synthetic-fuels-carbon-management.ipynb +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/examples/capacity-expansion-planning-single-node.ipynb +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/examples/chained-hydro-reservoirs.ipynb +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/examples/chp-fixed-heat-power-ratio.ipynb +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/examples/committable-extendable.ipynb +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/examples/demand-elasticity.ipynb +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/examples/demand-supply-bids.ipynb +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/examples/example-1.ipynb +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/examples/example-2.ipynb +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/examples/example-3.ipynb +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/examples/examples.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/examples/generation-investment-screening-curve.ipynb +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/examples/gsa.ipynb +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/examples/islanded-methanol-production.ipynb +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/examples/mga.ipynb +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/examples/minimal-example-pf.ipynb +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/examples/modular-committable.ipynb +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/examples/modular-expansion.ipynb +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/examples/multi-investment-optimisation.ipynb +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/examples/myopic-pathway.ipynb +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/examples/near-opt-space.ipynb +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/examples/negative-prices-kvl-baker.ipynb +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/examples/periodic-operational-limits.ipynb +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/examples/power-to-gas-boiler-chp.ipynb +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/examples/power-to-heat-water-tank.ipynb +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/examples/replace-generator-storage-units-with-store.ipynb +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/examples/reserve-power.ipynb +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/examples/rh_example.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/examples/rolling-horizon.ipynb +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/examples/scigrid-lopf-then-pf.ipynb +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/examples/scigrid-redispatch.ipynb +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/examples/scigrid-sclopf.ipynb +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/examples/sector-coupling-single-node.ipynb +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/examples/simple-electricity-market-examples.ipynb +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/examples/stochastic-optimization.ipynb +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/examples/time-series-aggregation.ipynb +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/examples/tracing-infeasibilities.ipynb +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/examples/transformer-example.ipynb +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/examples/transport-delay.ipynb +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/examples/uc-prices.ipynb +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/examples/unit-commitment.ipynb +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/examples/water-value.ipynb +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/home/citing.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/home/features.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/home/installation.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/home/license.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/home/models.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/home/users.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/hooks/cleanup.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/hooks/dynamic_inspect.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/hooks/notebook_timing.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/hooks/path_aliases.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/hooks/shortcodes.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/index.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/requirements.txt +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/user-guide/clustering.ipynb +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/user-guide/collection.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/user-guide/components/buses.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/user-guide/components/carriers.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/user-guide/components/generators.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/user-guide/components/global-constraints.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/user-guide/components/line-types.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/user-guide/components/lines.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/user-guide/components/links.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/user-guide/components/loads.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/user-guide/components/processes.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/user-guide/components/shapes.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/user-guide/components/shunt-impedances.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/user-guide/components/storage-units.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/user-guide/components/stores.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/user-guide/components/sub-networks.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/user-guide/components/transformer-types.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/user-guide/components/transformers.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/user-guide/components.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/user-guide/design.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/user-guide/faq.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/user-guide/import-export.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/user-guide/learning-materials.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/user-guide/linear-power-flow.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/user-guide/logging.ipynb +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/user-guide/network-optimization.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/user-guide/optimization/capacity-limits.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/user-guide/optimization/contingencies.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/user-guide/optimization/custom-constraints.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/user-guide/optimization/dispatch-limits.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/user-guide/optimization/energy-balance.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/user-guide/optimization/global-constraints.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/user-guide/optimization/modelling-to-generate-alternatives.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/user-guide/optimization/objective.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/user-guide/optimization/overview.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/user-guide/optimization/pathway-planning.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/user-guide/optimization/power-flow.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/user-guide/optimization/stochastic.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/user-guide/optimization/storage.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/user-guide/optimization/unit-commitment.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/user-guide/options.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/user-guide/plotting/charts.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/user-guide/plotting/explore.ipynb +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/user-guide/plotting/static-map.ipynb +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/user-guide/statistics.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/user-guide/support.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/user-guide/troubleshooting.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/user-guide/user-guide.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/user-guide/v1-guide.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/docs/user-guide/warnings.md +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/ac-dc-meshed/ac-dc-meshed/buses.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/ac-dc-meshed/ac-dc-meshed/carriers.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/ac-dc-meshed/ac-dc-meshed/crs.json +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/ac-dc-meshed/ac-dc-meshed/generators-p_max_pu.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/ac-dc-meshed/ac-dc-meshed/generators.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/ac-dc-meshed/ac-dc-meshed/global_constraints.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/ac-dc-meshed/ac-dc-meshed/investment_periods.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/ac-dc-meshed/ac-dc-meshed/lines.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/ac-dc-meshed/ac-dc-meshed/links.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/ac-dc-meshed/ac-dc-meshed/loads-p_set.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/ac-dc-meshed/ac-dc-meshed/loads.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/ac-dc-meshed/ac-dc-meshed/meta.json +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/ac-dc-meshed/ac-dc-meshed/network.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/ac-dc-meshed/ac-dc-meshed/snapshots.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/ac-dc-meshed/ac-dc-meshed.nc +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/model-energy/model-energy/buses.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/model-energy/model-energy/carriers.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/model-energy/model-energy/crs.json +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/model-energy/model-energy/generators-p_max_pu.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/model-energy/model-energy/generators.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/model-energy/model-energy/investment_periods.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/model-energy/model-energy/links.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/model-energy/model-energy/loads-p_set.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/model-energy/model-energy/loads.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/model-energy/model-energy/meta.json +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/model-energy/model-energy/network.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/model-energy/model-energy/snapshots.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/model-energy/model-energy/storage_units.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/model-energy/model-energy/stores.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/model-energy/model-energy.nc +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/scigrid-de/scigrid-de/buses.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/scigrid-de/scigrid-de/carriers.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/scigrid-de/scigrid-de/crs.json +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/scigrid-de/scigrid-de/generators-p_max_pu.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/scigrid-de/scigrid-de/generators.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/scigrid-de/scigrid-de/investment_periods.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/scigrid-de/scigrid-de/lines.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/scigrid-de/scigrid-de/loads-p_set.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/scigrid-de/scigrid-de/loads.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/scigrid-de/scigrid-de/meta.json +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/scigrid-de/scigrid-de/network.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/scigrid-de/scigrid-de/snapshots.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/scigrid-de/scigrid-de/storage_units.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/scigrid-de/scigrid-de/transformers.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/scigrid-de/scigrid-de.nc +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/stochastic-network/stochastic-network.nc +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/storage-hvdc/storage-hvdc/buses.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/storage-hvdc/storage-hvdc/carriers.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/storage-hvdc/storage-hvdc/crs.json +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/storage-hvdc/storage-hvdc/generators-p_max_pu.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/storage-hvdc/storage-hvdc/generators.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/storage-hvdc/storage-hvdc/global_constraints.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/storage-hvdc/storage-hvdc/investment_periods.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/storage-hvdc/storage-hvdc/lines.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/storage-hvdc/storage-hvdc/links.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/storage-hvdc/storage-hvdc/loads-p_set.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/storage-hvdc/storage-hvdc/loads.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/storage-hvdc/storage-hvdc/meta.json +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/storage-hvdc/storage-hvdc/network.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/storage-hvdc/storage-hvdc/snapshots.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/storage-hvdc/storage-hvdc/storage_units-inflow.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/storage-hvdc/storage-hvdc/storage_units-state_of_charge_set.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/storage-hvdc/storage-hvdc/storage_units.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/examples/networks/storage-hvdc/storage-hvdc.nc +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/mkdocs.yml +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/__init__.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/_options.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/clustering/__init__.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/clustering/spatial.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/collection.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/components/__init__.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/components/_types/__init__.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/components/_types/_patch.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/components/_types/mixin/__init__.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/components/_types/mixin/multiports.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/components/abstract.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/components/array.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/components/common.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/components/components.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/components/descriptors.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/components/index.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/components/legacy.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/components/store.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/consistency.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/costs.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/data/component_attrs/buses.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/data/component_attrs/carriers.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/data/component_attrs/generators.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/data/component_attrs/global_constraints.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/data/component_attrs/line_types.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/data/component_attrs/lines.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/data/component_attrs/links.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/data/component_attrs/loads.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/data/component_attrs/networks.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/data/component_attrs/shapes.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/data/component_attrs/shunt_impedances.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/data/component_attrs/storage_units.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/data/component_attrs/stores.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/data/component_attrs/sub_networks.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/data/component_attrs/transformer_types.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/data/components.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/data/standard_types/line_types.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/data/standard_types/transformer_types.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/data/variables.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/definitions/components.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/definitions/structures.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/deprecations.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/descriptors.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/examples.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/geo.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/guards.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/network/__init__.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/network/abstract.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/network/components.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/network/descriptors.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/network/graph.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/optimization/__init__.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/optimization/abstract.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/optimization/expressions.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/optimization/global_constraints.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/optimization/mga.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/optimization/variables.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/plot/__init__.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/plot/accessor.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/plot/maps/__init__.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/plot/maps/common.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/plot/maps/interactive.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/plot/statistics/__init__.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/py.typed +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/statistics/__init__.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/statistics/grouping.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/type_utils.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa/version.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa.egg-info/dependency_links.txt +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/pypsa.egg-info/top_level.txt +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/setup.cfg +0 -0
- /pypsa-1.2.3/test/baseline/test_plot_types_area_capacity_factor.png → /pypsa-1.2.4/test/baseline/test_plot_types_area-capacity_factor.png +0 -0
- /pypsa-1.2.3/test/baseline/test_plot_types_area_capex.png → /pypsa-1.2.4/test/baseline/test_plot_types_area-capex.png +0 -0
- /pypsa-1.2.3/test/baseline/test_plot_types_area_energy_balance.png → /pypsa-1.2.4/test/baseline/test_plot_types_area-energy_balance.png +0 -0
- /pypsa-1.2.3/test/baseline/test_plot_types_area_expanded_capacity.png → /pypsa-1.2.4/test/baseline/test_plot_types_area-expanded_capacity.png +0 -0
- /pypsa-1.2.3/test/baseline/test_plot_types_area_expanded_capex.png → /pypsa-1.2.4/test/baseline/test_plot_types_area-expanded_capex.png +0 -0
- /pypsa-1.2.3/test/baseline/test_plot_types_area_installed_capacity.png → /pypsa-1.2.4/test/baseline/test_plot_types_area-installed_capacity.png +0 -0
- /pypsa-1.2.3/test/baseline/test_plot_types_area_installed_capex.png → /pypsa-1.2.4/test/baseline/test_plot_types_area-installed_capex.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/baseline/test_plot_types_area-market_value.png +0 -0
- /pypsa-1.2.3/test/baseline/test_plot_types_area_opex.png → /pypsa-1.2.4/test/baseline/test_plot_types_area-opex.png +0 -0
- /pypsa-1.2.3/test/baseline/test_plot_types_area_optimal_capacity.png → /pypsa-1.2.4/test/baseline/test_plot_types_area-optimal_capacity.png +0 -0
- /pypsa-1.2.3/test/baseline/test_plot_types_area_revenue.png → /pypsa-1.2.4/test/baseline/test_plot_types_area-revenue.png +0 -0
- /pypsa-1.2.3/test/baseline/test_plot_types_area_supply.png → /pypsa-1.2.4/test/baseline/test_plot_types_area-supply.png +0 -0
- /pypsa-1.2.3/test/baseline/test_plot_types_area_transmission.png → /pypsa-1.2.4/test/baseline/test_plot_types_area-transmission.png +0 -0
- /pypsa-1.2.3/test/baseline/test_plot_types_area_withdrawal.png → /pypsa-1.2.4/test/baseline/test_plot_types_area-withdrawal.png +0 -0
- /pypsa-1.2.3/test/baseline/test_plot_types_bar_capacity_factor.png → /pypsa-1.2.4/test/baseline/test_plot_types_bar-capacity_factor.png +0 -0
- /pypsa-1.2.3/test/baseline/test_plot_types_bar_capex.png → /pypsa-1.2.4/test/baseline/test_plot_types_bar-capex.png +0 -0
- /pypsa-1.2.3/test/baseline/test_plot_types_bar_curtailment.png → /pypsa-1.2.4/test/baseline/test_plot_types_bar-curtailment.png +0 -0
- /pypsa-1.2.3/test/baseline/test_plot_types_bar_energy_balance.png → /pypsa-1.2.4/test/baseline/test_plot_types_bar-energy_balance.png +0 -0
- /pypsa-1.2.3/test/baseline/test_plot_types_bar_expanded_capacity.png → /pypsa-1.2.4/test/baseline/test_plot_types_bar-expanded_capacity.png +0 -0
- /pypsa-1.2.3/test/baseline/test_plot_types_bar_expanded_capex.png → /pypsa-1.2.4/test/baseline/test_plot_types_bar-expanded_capex.png +0 -0
- /pypsa-1.2.3/test/baseline/test_plot_types_bar_installed_capacity.png → /pypsa-1.2.4/test/baseline/test_plot_types_bar-installed_capacity.png +0 -0
- /pypsa-1.2.3/test/baseline/test_plot_types_bar_installed_capex.png → /pypsa-1.2.4/test/baseline/test_plot_types_bar-installed_capex.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/baseline/test_plot_types_bar-market_value.png +0 -0
- /pypsa-1.2.3/test/baseline/test_plot_types_bar_opex.png → /pypsa-1.2.4/test/baseline/test_plot_types_bar-opex.png +0 -0
- /pypsa-1.2.3/test/baseline/test_plot_types_bar_optimal_capacity.png → /pypsa-1.2.4/test/baseline/test_plot_types_bar-optimal_capacity.png +0 -0
- /pypsa-1.2.3/test/baseline/test_plot_types_bar_revenue.png → /pypsa-1.2.4/test/baseline/test_plot_types_bar-revenue.png +0 -0
- /pypsa-1.2.3/test/baseline/test_plot_types_bar_supply.png → /pypsa-1.2.4/test/baseline/test_plot_types_bar-supply.png +0 -0
- /pypsa-1.2.3/test/baseline/test_plot_types_bar_transmission.png → /pypsa-1.2.4/test/baseline/test_plot_types_bar-transmission.png +0 -0
- /pypsa-1.2.3/test/baseline/test_plot_types_bar_withdrawal.png → /pypsa-1.2.4/test/baseline/test_plot_types_bar-withdrawal.png +0 -0
- /pypsa-1.2.3/test/baseline/test_plot_types_line_capex.png → /pypsa-1.2.4/test/baseline/test_plot_types_line-capex.png +0 -0
- /pypsa-1.2.3/test/baseline/test_plot_types_line_expanded_capacity.png → /pypsa-1.2.4/test/baseline/test_plot_types_line-expanded_capacity.png +0 -0
- /pypsa-1.2.3/test/baseline/test_plot_types_line_expanded_capex.png → /pypsa-1.2.4/test/baseline/test_plot_types_line-expanded_capex.png +0 -0
- /pypsa-1.2.3/test/baseline/test_plot_types_line_installed_capacity.png → /pypsa-1.2.4/test/baseline/test_plot_types_line-installed_capacity.png +0 -0
- /pypsa-1.2.3/test/baseline/test_plot_types_line_installed_capex.png → /pypsa-1.2.4/test/baseline/test_plot_types_line-installed_capex.png +0 -0
- /pypsa-1.2.3/test/baseline/test_plot_types_line_opex.png → /pypsa-1.2.4/test/baseline/test_plot_types_line-opex.png +0 -0
- /pypsa-1.2.3/test/baseline/test_plot_types_line_optimal_capacity.png → /pypsa-1.2.4/test/baseline/test_plot_types_line-optimal_capacity.png +0 -0
- /pypsa-1.2.3/test/baseline/test_plot_types_line_transmission.png → /pypsa-1.2.4/test/baseline/test_plot_types_line-transmission.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/baseline/test_simple_plot_capacity_factor.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/baseline/test_simple_plot_capex.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/baseline/test_simple_plot_curtailment.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/baseline/test_simple_plot_energy_balance.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/baseline/test_simple_plot_expanded_capacity.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/baseline/test_simple_plot_expanded_capex.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/baseline/test_simple_plot_installed_capacity.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/baseline/test_simple_plot_installed_capex.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/baseline/test_simple_plot_market_value.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/baseline/test_simple_plot_opex.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/baseline/test_simple_plot_optimal_capacity.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/baseline/test_simple_plot_revenue.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/baseline/test_simple_plot_supply.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/baseline/test_simple_plot_transmission.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/baseline/test_simple_plot_withdrawal.png +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/ac-dc-meshed/results-lopf/buses-marginal_price.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/ac-dc-meshed/results-lopf/buses-p.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/ac-dc-meshed/results-lopf/buses-v_ang.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/ac-dc-meshed/results-lopf/buses-v_mag_pu.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/ac-dc-meshed/results-lopf/buses.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/ac-dc-meshed/results-lopf/carriers.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/ac-dc-meshed/results-lopf/crs.json +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/ac-dc-meshed/results-lopf/generators-p.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/ac-dc-meshed/results-lopf/generators-p_max_pu.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/ac-dc-meshed/results-lopf/generators.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/ac-dc-meshed/results-lopf/global_constraints.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/ac-dc-meshed/results-lopf/investment_periods.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/ac-dc-meshed/results-lopf/lines-p0.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/ac-dc-meshed/results-lopf/lines-p1.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/ac-dc-meshed/results-lopf/lines.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/ac-dc-meshed/results-lopf/links-p0.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/ac-dc-meshed/results-lopf/links-p1.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/ac-dc-meshed/results-lopf/links.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/ac-dc-meshed/results-lopf/loads-p.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/ac-dc-meshed/results-lopf/loads-p_set.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/ac-dc-meshed/results-lopf/loads.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/ac-dc-meshed/results-lopf/meta.json +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/ac-dc-meshed/results-lopf/network.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/ac-dc-meshed/results-lopf/snapshots.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/ac-dc-meshed/results-lpf/buses-p.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/ac-dc-meshed/results-lpf/buses-v_ang.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/ac-dc-meshed/results-lpf/buses-v_mag_pu.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/ac-dc-meshed/results-lpf/buses.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/ac-dc-meshed/results-lpf/carriers.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/ac-dc-meshed/results-lpf/generators-p.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/ac-dc-meshed/results-lpf/generators-p_max_pu.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/ac-dc-meshed/results-lpf/generators.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/ac-dc-meshed/results-lpf/global_constraints.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/ac-dc-meshed/results-lpf/lines-p0.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/ac-dc-meshed/results-lpf/lines-p1.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/ac-dc-meshed/results-lpf/lines.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/ac-dc-meshed/results-lpf/links-p0.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/ac-dc-meshed/results-lpf/links-p1.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/ac-dc-meshed/results-lpf/links-p_set.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/ac-dc-meshed/results-lpf/links.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/ac-dc-meshed/results-lpf/loads-p.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/ac-dc-meshed/results-lpf/loads-p_set.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/ac-dc-meshed/results-lpf/loads.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/ac-dc-meshed/results-lpf/network.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/ac-dc-meshed/results-lpf/snapshots.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/benchmark-sp/buses-marginal_price.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/benchmark-sp/buses-p.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/benchmark-sp/buses.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/benchmark-sp/crs.json +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/benchmark-sp/generators-p-high.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/benchmark-sp/generators-p-med.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/benchmark-sp/generators-p.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/benchmark-sp/generators-p_max_pu.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/benchmark-sp/generators.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/benchmark-sp/investment_periods.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/benchmark-sp/loads-p.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/benchmark-sp/loads.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/benchmark-sp/meta.json +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/benchmark-sp/network.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/benchmark-sp/snapshots.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/storage-hvdc/results-lopf/buses-marginal_price.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/storage-hvdc/results-lopf/buses-p.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/storage-hvdc/results-lopf/buses-v_ang.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/storage-hvdc/results-lopf/buses.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/storage-hvdc/results-lopf/carriers.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/storage-hvdc/results-lopf/generators-p.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/storage-hvdc/results-lopf/generators-p_max_pu.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/storage-hvdc/results-lopf/generators.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/storage-hvdc/results-lopf/global_constraints.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/storage-hvdc/results-lopf/lines-p0.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/storage-hvdc/results-lopf/lines-p1.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/storage-hvdc/results-lopf/lines.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/storage-hvdc/results-lopf/links-p0.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/storage-hvdc/results-lopf/links-p1.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/storage-hvdc/results-lopf/links.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/storage-hvdc/results-lopf/loads-p.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/storage-hvdc/results-lopf/loads-p_set.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/storage-hvdc/results-lopf/loads.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/storage-hvdc/results-lopf/network.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/storage-hvdc/results-lopf/snapshots.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/storage-hvdc/results-lopf/storage_units-inflow.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/storage-hvdc/results-lopf/storage_units-p.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/storage-hvdc/results-lopf/storage_units-spill.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/storage-hvdc/results-lopf/storage_units-state_of_charge.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/storage-hvdc/results-lopf/storage_units-state_of_charge_set.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/data/storage-hvdc/results-lopf/storage_units.csv +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_bugs.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_buses.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_capital_cost_split.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_carriers.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_collection.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_committable_extendable.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_common.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_common_deprecations.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_compatibility_ext_and_com.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_components.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_components_array.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_components_custom.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_components_store.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_components_utils.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_consistency_check.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_constants.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_deprecations.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_descriptors.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_docs.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_examples.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_graph.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_guards.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_indices.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_io_cloudpathlib.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_link_post_discretization.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_lopf_ac_dc.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_lopf_activity_mask.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_lopf_and_subsequent_power_flow.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_lopf_basic_constraints.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_lopf_global_constraints.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_lopf_iteratively.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_lopf_losses.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_lopf_mga.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_lopf_modularity.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_lopf_multilink.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_lopf_process.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_lopf_quadratic_costs.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_lopf_rolling_horizon.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_lopf_storage.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_lopf_unit_commitment.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_lopf_varying_inputs.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_lpf_against_pypower.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_meshed_threshold.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_network_cycles.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_network_transform.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_objective_constant.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_optimization_expressions.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_optional_dependencies.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_options.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_pf_activity_mask.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_pf_against_pypower.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_pf_distributed_slack.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_plot_maps_common.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_plot_maps_interactive.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_plot_maps_static.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_riskaversion.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_sclopf_scigrid.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_snapshot_weightings.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_spatial_clustering.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_stand_by_cost.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_stochastic.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_stochastic_not_implemented.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_subnetwork.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_transmission_losses.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_transport_delay.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_version.py +0 -0
- {pypsa-1.2.3 → pypsa-1.2.4}/test/test_warnings_cyclic_storage.py +0 -0
|
@@ -107,14 +107,14 @@ jobs:
|
|
|
107
107
|
- name: Run unit tests (old API)
|
|
108
108
|
if: matrix.api == 'default'
|
|
109
109
|
run: >
|
|
110
|
-
uv run pytest
|
|
110
|
+
uv run pytest
|
|
111
111
|
--cov=pypsa --junitxml=junit.xml -o junit_family=legacy
|
|
112
112
|
&& uv run coverage xml
|
|
113
113
|
|
|
114
114
|
- name: Run unit tests (pandas 3)
|
|
115
115
|
if: matrix.api == 'pandas3'
|
|
116
116
|
run: >
|
|
117
|
-
uv run --no-sync pytest
|
|
117
|
+
uv run --no-sync pytest
|
|
118
118
|
--cov=pypsa --junitxml=junit.xml -o junit_family=legacy
|
|
119
119
|
&& uv run --no-sync coverage xml
|
|
120
120
|
|
|
@@ -123,20 +123,9 @@ jobs:
|
|
|
123
123
|
run: >
|
|
124
124
|
uv run pytest
|
|
125
125
|
--new-components-api
|
|
126
|
-
--mpl --mpl-generate-summary=html --mpl-results-path=mpl-results
|
|
127
126
|
--cov=pypsa --junitxml=junit.xml -o junit_family=legacy
|
|
128
127
|
&& uv run coverage xml
|
|
129
128
|
|
|
130
|
-
- name: Upload artifacts
|
|
131
|
-
if: matrix.api == 'default' && matrix.os == 'macos-latest' && matrix.python-version == '3.13'
|
|
132
|
-
uses: actions/upload-artifact@v7
|
|
133
|
-
with:
|
|
134
|
-
name: results-plotting
|
|
135
|
-
path: |
|
|
136
|
-
mpl-results
|
|
137
|
-
retention-days: 14
|
|
138
|
-
if-no-files-found: ignore
|
|
139
|
-
|
|
140
129
|
- name: Upload code coverage report
|
|
141
130
|
if: ${{ !cancelled() }}
|
|
142
131
|
uses: codecov/codecov-action@v6
|
|
@@ -159,6 +148,51 @@ jobs:
|
|
|
159
148
|
python${{ matrix.python-version }},
|
|
160
149
|
api-${{ matrix.api }}
|
|
161
150
|
|
|
151
|
+
test-plots:
|
|
152
|
+
# Run the matplotlib image-comparison tests once, on a single instance.
|
|
153
|
+
# Baselines are generated on Linux; see test/test_statistics_plot.py.
|
|
154
|
+
name: Test plots
|
|
155
|
+
needs: [build]
|
|
156
|
+
runs-on: ubuntu-latest
|
|
157
|
+
env:
|
|
158
|
+
MPLBACKEND: Agg # https://github.com/orgs/community/discussions/26434
|
|
159
|
+
steps:
|
|
160
|
+
- uses: actions/checkout@v6
|
|
161
|
+
with:
|
|
162
|
+
fetch-depth: 0 # Needed for setuptools_scm
|
|
163
|
+
|
|
164
|
+
- name: Set up Python 3.13
|
|
165
|
+
uses: actions/setup-python@v6
|
|
166
|
+
with:
|
|
167
|
+
python-version: 3.13
|
|
168
|
+
|
|
169
|
+
- name: Download package
|
|
170
|
+
uses: actions/download-artifact@v8
|
|
171
|
+
with:
|
|
172
|
+
name: Packages
|
|
173
|
+
path: dist
|
|
174
|
+
|
|
175
|
+
- name: Install package and dependencies
|
|
176
|
+
run: |
|
|
177
|
+
python -m pip install uv
|
|
178
|
+
uv sync --all-extras --no-install-project
|
|
179
|
+
uv pip install "$(ls dist/*.whl)"
|
|
180
|
+
|
|
181
|
+
- name: Run image comparison tests
|
|
182
|
+
run: >
|
|
183
|
+
uv run pytest --run-plot-tests -m mpl_image_compare
|
|
184
|
+
--mpl --mpl-generate-summary=html --mpl-results-path=mpl-results
|
|
185
|
+
|
|
186
|
+
- name: Upload artifacts
|
|
187
|
+
if: ${{ !cancelled() }}
|
|
188
|
+
uses: actions/upload-artifact@v7
|
|
189
|
+
with:
|
|
190
|
+
name: results-plotting
|
|
191
|
+
path: |
|
|
192
|
+
mpl-results
|
|
193
|
+
retention-days: 14
|
|
194
|
+
if-no-files-found: ignore
|
|
195
|
+
|
|
162
196
|
check-docs:
|
|
163
197
|
name: Check docs
|
|
164
198
|
needs: [build]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (c)
|
|
3
|
+
Copyright (c) 2015-2026 PyPSA contributors
|
|
4
4
|
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
|
|
6
6
|
associated documentation files (the "Software"), to deal in the Software without restriction, including
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pypsa
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.4
|
|
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
|
|
7
7
|
|
|
8
|
-
Copyright (c)
|
|
8
|
+
Copyright (c) 2015-2026 PyPSA contributors
|
|
9
9
|
|
|
10
10
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
|
|
11
11
|
associated documentation files (the "Software"), to deal in the Software without restriction, including
|
|
@@ -77,11 +77,13 @@ Requires-Dist: pytest; extra == "test"
|
|
|
77
77
|
Requires-Dist: pytest-cov; extra == "test"
|
|
78
78
|
Requires-Dist: pytest-mpl; extra == "test"
|
|
79
79
|
Requires-Dist: coverage; extra == "test"
|
|
80
|
+
Requires-Dist: pyarrow; extra == "test"
|
|
80
81
|
Provides-Extra: dev
|
|
81
82
|
Requires-Dist: pytest; extra == "dev"
|
|
82
83
|
Requires-Dist: pytest-cov; extra == "dev"
|
|
83
84
|
Requires-Dist: pytest-mpl; extra == "dev"
|
|
84
85
|
Requires-Dist: coverage; extra == "dev"
|
|
86
|
+
Requires-Dist: pyarrow; extra == "dev"
|
|
85
87
|
Requires-Dist: matplotlib<3.11; extra == "dev"
|
|
86
88
|
Requires-Dist: pypower; extra == "dev"
|
|
87
89
|
Requires-Dist: pandapower>=2.14.11; extra == "dev"
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
"\n",
|
|
63
63
|
"The Cournot equilibrium among $N$ players can be characterised as the solution to a **single optimisation problem**. Margaret Slade's [1994 paper](https://www.jstor.org/stable/2950588) calls it a \"fictitious-objective function\" that reproduces equilibrium game results. The paper shows that for the homogeneous Cournot game, linear demand is sufficient for the existence of such a fictitious objective.\n",
|
|
64
64
|
"\n",
|
|
65
|
-
"Ben Hobbs also explored this topic in [2001 paper](https://hobbsgroup.johnshopkins.edu/docs/papers/IEEE_Hobbs_2001_LCP00918286.pdf) by studying properties of MCP and LCP (Linear Complementarity Problem) formulations. The paper concludes: \"The key assumption that permits their [KKT-based equilibrium] formulation as LCPs is that each producer naively assumes that its output will not affect transmission prices\" - so another condition for the existence of a fictitious objective is that
|
|
65
|
+
"Ben Hobbs also explored this topic in [2001 paper](https://hobbsgroup.johnshopkins.edu/docs/papers/IEEE_Hobbs_2001_LCP00918286.pdf) by studying properties of MCP and LCP (Linear Complementarity Problem) formulations. The paper concludes: \"The key assumption that permits their [KKT-based equilibrium] formulation as LCPs is that each producer naively assumes that its output will not affect transmission prices\" - so another condition for the existence of a fictitious objective is that players treat transmission prices as fixed (the player's perceived derivative of the transmission shadow price with respect to its own output is zero), so congestion enters every player's problem as a linear term.\n",
|
|
66
66
|
"\n",
|
|
67
67
|
"Let's work through the math, then see it in action in PyPSA."
|
|
68
68
|
]
|
|
@@ -6,9 +6,9 @@ SPDX-License-Identifier: CC-BY-4.0
|
|
|
6
6
|
|
|
7
7
|
# Release Notes
|
|
8
8
|
|
|
9
|
-
## [**v1.2.3**](https://github.com/PyPSA/PyPSA/releases/tag/v1.2.3) <small>12th June 2026</small> { id="v1.2.3" }
|
|
10
|
-
|
|
11
9
|
<!--
|
|
10
|
+
## Upcoming Release
|
|
11
|
+
|
|
12
12
|
!!! info "Upcoming Release"
|
|
13
13
|
|
|
14
14
|
The features listed below have not yet been released, but will be included in the
|
|
@@ -16,6 +16,47 @@ SPDX-License-Identifier: CC-BY-4.0
|
|
|
16
16
|
to install the `master` branch, e.g. `pip install git+https://github.com/pypsa/pypsa`.
|
|
17
17
|
-->
|
|
18
18
|
|
|
19
|
+
## [**v1.2.4**](https://github.com/PyPSA/PyPSA/releases/tag/v1.2.4) <small>27th June 2026</small> { id="v1.2.4" }
|
|
20
|
+
|
|
21
|
+
### Bug Fixes
|
|
22
|
+
|
|
23
|
+
- Fix `optimize()` and [`export_to_netcdf()`][pypsa.Network.export_to_netcdf] failing under pandas `>= 3.0` / `future.infer_string`. String labels are now converted back to `object` on both import and export. (<!-- md:pr 1687 -->)
|
|
24
|
+
|
|
25
|
+
- Fixed the `suffix` argument of [`n.add`][pypsa.Network.add] and [`n.remove`][pypsa.Network.remove]. Passing a list to both `name` and `suffix` now raises an error instead of silently pairing them. (<!-- md:pr 1682 -->)
|
|
26
|
+
|
|
27
|
+
- Fixed a collection of issues in the [`n.statistics.*.plot`/`.iplot`][pypsa.statistics.StatisticsAccessor] accessors (<!-- md:pr 1721 -->):
|
|
28
|
+
- `color=None` now disables color grouping instead of falling back to `"carrier"`.
|
|
29
|
+
- Passing an unsupported filter (e.g. `carrier` to `prices`) now raises a clear error instead of being silently dropped.
|
|
30
|
+
- Distribution plots (`box`/`violin`/`histogram`) default to the full time series so they show real distributions.
|
|
31
|
+
- `box`/`violin` figure height scales with the number of categorical rows (capped at 30 inches).
|
|
32
|
+
- Static `line`/`scatter` plots honor carrier colors via the palette.
|
|
33
|
+
- Requested but empty facets stay visible instead of being silently dropped.
|
|
34
|
+
- `sharex=False`/`sharey=False` keeps tick labels on all faceted subplots.
|
|
35
|
+
- Interactive plots with a categorical y-axis label every bar and scale the figure height with the number of rows (capped at 2000 pixels), instead of thinning tick labels.
|
|
36
|
+
- Static faceted plots now accept `col_wrap` to wrap facets across rows.
|
|
37
|
+
- Multi-period statistics (e.g. `optimal_capacity`) name their per-period columns `period`, so line/area plots no longer fail with `KeyError: 'period'`.
|
|
38
|
+
- A dimension mapped to `x`/`y`/`color` (e.g. `x="period"`) is no longer also used as an automatic facet.
|
|
39
|
+
- Filtering by `carrier`/`bus_carrier` on a [`NetworkCollection`][pypsa.NetworkCollection] (or stochastic network) with `nice_names=True` no longer raises `NotImplementedError`.
|
|
40
|
+
- Non-bar plots of a collection (or stochastic network) of multi-period networks now facet by both the collection/scenario dimension and the period, instead of dropping the period (which made area plots fail with `cannot reshape` and line plots overlap periods).
|
|
41
|
+
- [`n.statistics.prices`][pypsa.statistics.StatisticsAccessor.prices] accepts any static bus attribute (e.g. `country`) in `groupby`, and its plot accessors support these as dimensions (e.g. `prices.plot.box(facet_row="country")`) instead of failing with a `KeyError`.
|
|
42
|
+
- Interactive plots render LaTeX carrier names and categorical axes correctly with `pandas>=3` (string-dtype columns).
|
|
43
|
+
- Passing `groupby_time=False` to [`n.statistics.system_cost`][pypsa.statistics.StatisticsAccessor.system_cost] is deprecated and will raise in v2.0; it has no per-snapshot resolution as it includes static capital expenditure. Use `opex(groupby_time=False)` for the time-resolved operational cost. (<!-- md:pr 1721 -->)
|
|
44
|
+
|
|
45
|
+
- Fix ramp limit constraints spuriously linking across investment period boundaries in multi-investment optimization. Ramp constraints now reset at the first snapshot of each period instead of only at the global first snapshot, which could render feasible pathway models infeasible. (<!-- md:pr 1746 -->)
|
|
46
|
+
|
|
47
|
+
- Fix temporal clustering producing `*_min_pu > *_max_pu` for some snapshots. Aggregated lower bounds are now clipped to their paired upper bound, both for the floating-point drift in [`segment()`][pypsa.clustering.temporal.TemporalClusteringMixin.segment] and the `e_min_pu`/`e_max_pu` crossover from min/max aggregation rules. (<!-- md:pr 1752 -->)
|
|
48
|
+
|
|
49
|
+
- Fix `KeyError` in [`n.pf()`][pypsa.network.power_flow.NetworkPowerFlowMixin.pf] and [`n.lpf()`][pypsa.network.power_flow.NetworkPowerFlowMixin.lpf] when a network contains multiple sub-networks and one of them has no transformers (or otherwise lacks a passive branch component present in another sub-network). (<!-- md:pr 1754 -->)
|
|
50
|
+
|
|
51
|
+
- Fix the sign of the shunt susceptance when importing from pandapower. A shunt with `q_mvar > 0` (inductive) was previously imported with the wrong sign, causing the power flow to diverge from pandapower. (<!-- md:pr 1758 -->)
|
|
52
|
+
|
|
53
|
+
- A warning is now logged when manually set impedance parameters (`r`, `x`, `g`, `b`, `s_nom`) on transformers or lines with a standard `type` are overridden by the type during [`n.calculate_dependent_values()`][pypsa.network.power_flow.NetworkPowerFlowMixin.calculate_dependent_values], instead of silently discarding them. (<!-- md:pr 1759 -->)
|
|
54
|
+
|
|
55
|
+
- Fix the `snapshot` index name being dropped from dynamic data when reassigning [`n.snapshots`][pypsa.Network.snapshots]. (<!-- md:pr 1745 -->)
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
## [**v1.2.3**](https://github.com/PyPSA/PyPSA/releases/tag/v1.2.3) <small>12th June 2026</small> { id="v1.2.3" }
|
|
59
|
+
|
|
19
60
|
### Features
|
|
20
61
|
|
|
21
62
|
- Added compatibility with the stricter dimension alignment handling in the upcoming linopy `>=0.8`. (<!-- md:pr 1708 -->)
|
|
@@ -115,6 +115,9 @@ v_0 \\ v_1
|
|
|
115
115
|
|
|
116
116
|
The transformer models here are largely based on the implementation in [pandapower](https://github.com/panda-power/pandapower), which is loosely based on [DIgSILENT PowerFactory](http://www.digsilent.de/index.php/products-powerfactory.html).
|
|
117
117
|
|
|
118
|
+
!!! note "Impedance units"
|
|
119
|
+
Transformer `r`, `x`, `g`, `b` are given in per unit (base power `s_nom`, base voltage `v_nom`), as found on transformer datasheets, whereas line impedances are given in physical units (Ω and S). PyPSA rescales the transformer impedances to a common 1 MVA base via `x_pu = x / s_nom`.
|
|
120
|
+
|
|
118
121
|
Transformers are modelled either with the equivalent T model (the default, since this represents the physics better) or with the equivalent PI model. The can be controlled by setting transformer attribute `model` to either "t" or "pi".
|
|
119
122
|
|
|
120
123
|
The tap changer can either be modelled on the primary, high voltage side 0 (the default) or on the secondary, low voltage side 1. This is set with attribute `tap_side`.
|
|
@@ -68,12 +68,14 @@ test = [
|
|
|
68
68
|
"pytest-cov",
|
|
69
69
|
"pytest-mpl",
|
|
70
70
|
"coverage",
|
|
71
|
+
"pyarrow",
|
|
71
72
|
]
|
|
72
73
|
dev = [
|
|
73
74
|
"pytest",
|
|
74
75
|
"pytest-cov",
|
|
75
76
|
"pytest-mpl",
|
|
76
77
|
"coverage",
|
|
78
|
+
"pyarrow",
|
|
77
79
|
"matplotlib<3.11", # remove when uv.lock is tracked
|
|
78
80
|
"pypower",
|
|
79
81
|
"pandapower>=2.14.11",
|
|
@@ -138,6 +140,10 @@ filterwarnings = [
|
|
|
138
140
|
|
|
139
141
|
# Ignore pandas<3.0.3 usage of the deprecated `locs` attribute of matplotlib>=3.11
|
|
140
142
|
"ignore:The locs attribute was deprecated:DeprecationWarning",
|
|
143
|
+
|
|
144
|
+
# numpy>=2.5 deprecations not yet handled by netCDF4 and matplotlib
|
|
145
|
+
"ignore:Setting the shape on a NumPy array has been deprecated:DeprecationWarning",
|
|
146
|
+
"ignore:The 'generic' unit for NumPy timedelta is deprecated:DeprecationWarning",
|
|
141
147
|
]
|
|
142
148
|
markers = [
|
|
143
149
|
"mpl_image_compare",
|
|
@@ -57,6 +57,28 @@ TEMPORAL_AGGREGATION_DEFAULTS: dict[str, str] = {
|
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
|
|
60
|
+
def _enforce_pu_bounds(n: Network) -> None:
|
|
61
|
+
"""Clip aggregated `*_min_pu` series so they never exceed `*_max_pu`.
|
|
62
|
+
|
|
63
|
+
Aggregation can lift a lower bound above its paired upper bound, either from
|
|
64
|
+
floating-point error (segmentation normalises per column) or from min/max
|
|
65
|
+
aggregation rules (`e_min_pu` uses `max`, `e_max_pu` uses `min`).
|
|
66
|
+
"""
|
|
67
|
+
for c in n.components:
|
|
68
|
+
for min_attr in [a for a in c.dynamic if a.endswith("_min_pu")]:
|
|
69
|
+
max_attr = min_attr.replace("_min_pu", "_max_pu")
|
|
70
|
+
if max_attr not in c.dynamic:
|
|
71
|
+
continue
|
|
72
|
+
min_df = c.dynamic[min_attr]
|
|
73
|
+
max_df = c.dynamic[max_attr]
|
|
74
|
+
common = min_df.columns.intersection(max_df.columns)
|
|
75
|
+
if common.empty:
|
|
76
|
+
continue
|
|
77
|
+
c.dynamic[min_attr].loc[:, common] = min_df[common].clip(
|
|
78
|
+
upper=max_df[common]
|
|
79
|
+
)
|
|
80
|
+
|
|
81
|
+
|
|
60
82
|
@dataclass
|
|
61
83
|
class TemporalClustering:
|
|
62
84
|
"""Result of temporal clustering.
|
|
@@ -74,6 +96,10 @@ class TemporalClustering:
|
|
|
74
96
|
n: Network
|
|
75
97
|
snapshot_map: pd.Series
|
|
76
98
|
|
|
99
|
+
def __post_init__(self) -> None:
|
|
100
|
+
"""Sanitize time clustered data."""
|
|
101
|
+
_enforce_pu_bounds(self.n)
|
|
102
|
+
|
|
77
103
|
|
|
78
104
|
def _get_aggregation_rule(
|
|
79
105
|
attr: str,
|
|
@@ -384,7 +384,11 @@ def equals(
|
|
|
384
384
|
try:
|
|
385
385
|
if isinstance(a, pd.DataFrame):
|
|
386
386
|
pd_testing.assert_frame_equal(
|
|
387
|
-
a,
|
|
387
|
+
a,
|
|
388
|
+
b,
|
|
389
|
+
check_dtype=False,
|
|
390
|
+
check_index_type=False,
|
|
391
|
+
check_column_type=False,
|
|
388
392
|
)
|
|
389
393
|
elif isinstance(a, pd.Series):
|
|
390
394
|
pd_testing.assert_series_equal(
|
|
@@ -42,7 +42,7 @@ class ComponentsTransformMixin:
|
|
|
42
42
|
def add(
|
|
43
43
|
self,
|
|
44
44
|
name: str | int | Sequence[int | str],
|
|
45
|
-
suffix: str = "",
|
|
45
|
+
suffix: str | Sequence[str] = "",
|
|
46
46
|
overwrite: bool = False,
|
|
47
47
|
return_names: bool | None = None,
|
|
48
48
|
**kwargs: Any,
|
|
@@ -72,8 +72,9 @@ class ComponentsTransformMixin:
|
|
|
72
72
|
----------
|
|
73
73
|
name : str or int or list of str or list of int
|
|
74
74
|
Component name(s)
|
|
75
|
-
suffix : str, default ""
|
|
76
|
-
|
|
75
|
+
suffix : str or list of str, default ""
|
|
76
|
+
Suffix added to each name. Pass a list together with a single `name`
|
|
77
|
+
to add one component per suffix.
|
|
77
78
|
overwrite : bool, default False
|
|
78
79
|
If True, existing components with the same names as in `name` will be
|
|
79
80
|
overwritten. Otherwise only new components will be added and others will be
|
|
@@ -10,19 +10,23 @@ Additional types can be added by the user.
|
|
|
10
10
|
|
|
11
11
|
from __future__ import annotations
|
|
12
12
|
|
|
13
|
-
from
|
|
13
|
+
from typing import TYPE_CHECKING
|
|
14
14
|
|
|
15
15
|
import numpy as np
|
|
16
16
|
import pandas as pd
|
|
17
17
|
|
|
18
18
|
from pypsa.common import list_as_string
|
|
19
|
+
from pypsa.constants import PYPSA_DATA_DIR
|
|
19
20
|
from pypsa.definitions.components import ComponentType
|
|
20
21
|
from pypsa.deprecations import COMPONENT_ALIAS_DICT
|
|
21
22
|
|
|
23
|
+
if TYPE_CHECKING:
|
|
24
|
+
from importlib.resources.abc import Traversable
|
|
25
|
+
|
|
22
26
|
# TODO better path handeling, integrate custom components
|
|
23
|
-
_components_path =
|
|
24
|
-
_attrs_path =
|
|
25
|
-
_standard_types_path =
|
|
27
|
+
_components_path = PYPSA_DATA_DIR / "components.csv"
|
|
28
|
+
_attrs_path = PYPSA_DATA_DIR / "component_attrs"
|
|
29
|
+
_standard_types_path = PYPSA_DATA_DIR / "standard_types"
|
|
26
30
|
|
|
27
31
|
component_types_df = pd.read_csv(_components_path, index_col=0)
|
|
28
32
|
default_components = component_types_df.index.to_list()
|
|
@@ -136,7 +140,9 @@ def add_component_type(
|
|
|
136
140
|
|
|
137
141
|
|
|
138
142
|
def _load_default_component_types(
|
|
139
|
-
component_df: pd.DataFrame,
|
|
143
|
+
component_df: pd.DataFrame,
|
|
144
|
+
attrs_path: Traversable,
|
|
145
|
+
standard_types_path: Traversable,
|
|
140
146
|
) -> None:
|
|
141
147
|
"""Load default component types from package data.
|
|
142
148
|
|
|
@@ -146,16 +152,16 @@ def _load_default_component_types(
|
|
|
146
152
|
----------
|
|
147
153
|
component_df : pandas.DataFrame
|
|
148
154
|
DataFrame which lists all default components. E.g. `/pypsa/data/components.csv`.
|
|
149
|
-
attrs_path :
|
|
155
|
+
attrs_path : importlib.resources.abc.Traversable
|
|
150
156
|
Path to the default attributes dir. E.g. `/pypsa/data/default_components/`.
|
|
151
|
-
standard_types_path :
|
|
157
|
+
standard_types_path : importlib.resources.abc.Traversable
|
|
152
158
|
Path to the standard types dir. E.g. `/pypsa/data/standard_types/`.
|
|
153
159
|
|
|
154
160
|
"""
|
|
155
161
|
for c_name, row in component_df.iterrows():
|
|
156
162
|
# Read in defaults attributes
|
|
157
163
|
attrs_file_path = attrs_path / f"{row.list_name}.csv"
|
|
158
|
-
if not attrs_file_path.
|
|
164
|
+
if not attrs_file_path.is_file():
|
|
159
165
|
msg = (
|
|
160
166
|
f"Could not find {attrs_path}. For each component, there must be a "
|
|
161
167
|
"corresponding file for its attributes."
|
|
@@ -165,7 +171,7 @@ def _load_default_component_types(
|
|
|
165
171
|
|
|
166
172
|
# Read in standard types
|
|
167
173
|
types_paths = standard_types_path / f"{row.list_name}.csv"
|
|
168
|
-
if not types_paths.
|
|
174
|
+
if not types_paths.is_file():
|
|
169
175
|
standard_types = None
|
|
170
176
|
else:
|
|
171
177
|
standard_types = pd.read_csv(types_paths, index_col=0)
|
|
@@ -9,7 +9,7 @@ rate1,static or series,per unit,1,"Rate of energy transfer at `bus1` relative to
|
|
|
9
9
|
active,boolean,n/a,True,"Whether to consider the component in basic functionality or not",Input (optional)
|
|
10
10
|
build_year,int,year,0,Build year,Input (optional)
|
|
11
11
|
lifetime,float,years,inf,Lifetime,Input (optional)
|
|
12
|
-
p_nom,float,MW,0,Limit of power which can pass through process (in units of `bus0`). Ignored if `p_nom_extendable=True
|
|
12
|
+
p_nom,float,MW,0,"Limit of internal power `p` which can pass through process (in units of `p`, which equals the flow at any bus whose `rate` is set to ±1; with the default `rate0=-1` this is the flow at `bus0`). Ignored if `p_nom_extendable=True`.",Input (optional)
|
|
13
13
|
p_nom_mod,float,MW,0,Unit size of process module (e.g. fixed blocks of 100 MW).,Input (optional)
|
|
14
14
|
p_nom_extendable,boolean,n/a,False,Switch to allow capacity `p_nom` to be extended.,Input (optional)
|
|
15
15
|
p_nom_min,float,MW,0,"If `p_nom_extendable=True`, set its minimum value.",Input (optional)
|
|
@@ -19,16 +19,16 @@ p_set,static or series,MW,n/a,The dispatch set point for `p0` of the process (fo
|
|
|
19
19
|
p_init,static,MW,n/a,Active power used as a starting point for limiting the ramp in the very first snapshot (for optimisation),Input (optional)
|
|
20
20
|
p_min_pu,static or series,per unit of p_nom,0.,Minimal dispatch per unit of `p_nom` for the process. Can also be negative.,Input (optional)
|
|
21
21
|
p_max_pu,static or series,per unit of p_nom,1.,Maximal dispatch per unit of `p_nom` for the process. Can also be negative.,Input (optional)
|
|
22
|
-
capital_cost,float,currency/MW,0,"Fixed period costs of extending `p_nom` by 1 MW (unit of `
|
|
23
|
-
overnight_cost,float,currency/MW,NaN,"Overnight (upfront) investment cost per MW (unit of `
|
|
22
|
+
capital_cost,float,currency/MW,0,"Fixed period costs of extending `p_nom` by 1 MW (unit of internal power `p`, e.g. annuitized investment costs). Used directly unless `overnight_cost` is specified. Any `length` factor must already be included.",Input (optional)
|
|
23
|
+
overnight_cost,float,currency/MW,NaN,"Overnight (upfront) investment cost per MW (unit of internal power `p`). If specified, PyPSA calculates annuity using `discount_rate` and `lifetime`. Takes precedence over `capital_cost`.",Input (optional)
|
|
24
24
|
discount_rate,float,per unit,NaN,"Discount rate for annuity calculation when using `overnight_cost`. Supports 0% rate (simple depreciation).",Input (optional)
|
|
25
|
-
fom_cost,float,currency/MW,0,"Fixed period operation and maintenance costs per MW (unit of `
|
|
26
|
-
marginal_cost,static or series,currency/MWh,0.,Marginal cost of 1 MWh
|
|
27
|
-
marginal_cost_quadratic,static or series,currency/MWh,0.,Quadratic marginal cost for 1 MWh of
|
|
25
|
+
fom_cost,float,currency/MW,0,"Fixed period operation and maintenance costs per MW (unit of internal power `p`), added to annuitized investment cost.",Input (optional)
|
|
26
|
+
marginal_cost,static or series,currency/MWh,0.,Marginal cost of 1 MWh of internal power `p` (e.g. including variable operation and maintenance costs of an electrolyser but excluding electricity costs). Equals the cost per MWh at `bus0` when `rate0=-1`.,Input (optional)
|
|
27
|
+
marginal_cost_quadratic,static or series,currency/MWh,0.,Quadratic marginal cost for 1 MWh of internal power `p`.,Input (optional)
|
|
28
28
|
stand_by_cost,static or series,currency/h,0.,Stand-by cost for operating the process. This cost is incurred whenever the status is 1 (including when dispatch decision is zero).,Input (optional)
|
|
29
29
|
length,float,km,0,"Length of the process. Useful for calculating `capital_cost` for HVDC connections.",Input (optional)
|
|
30
30
|
terrain_factor,float,per unit,1,Terrain factor for increasing `capital_cost` calculated from `length`.,Input (optional)
|
|
31
|
-
committable,boolean,n/a,False,Apply unit commitment constraints
|
|
31
|
+
committable,boolean,n/a,False,Apply unit commitment constraints.,Input (optional)
|
|
32
32
|
start_up_cost,float,currency,0,Cost to start up the process. Only used if `committable=True`.,Input (optional)
|
|
33
33
|
shut_down_cost,float,currency,0,Cost to shut down the process. Only used if `committable=True`.,Input (optional)
|
|
34
34
|
min_up_time,int,snapshots,0,Minimum number of snapshots for status to be 1. Only used if `committable=True`. Does not consider snapshot weightings.,Input (optional)
|