oemof.solph 0.5.2.dev1__tar.gz → 0.5.2.dev2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (378) hide show
  1. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/.bumpversion.cfg +1 -1
  2. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/MANIFEST.in +0 -1
  3. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/PKG-INFO +21 -6
  4. oemof.solph-0.5.2.dev2/VERSION +1 -0
  5. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/conf.py +1 -1
  6. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/examples/index.rst +0 -1
  7. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-5-2.rst +11 -0
  8. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/pyproject.toml +1 -1
  9. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/setup.cfg +1 -1
  10. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/setup.py +1 -1
  11. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/__init__.py +1 -1
  12. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/_energy_system.py +7 -3
  13. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/_models.py +2 -3
  14. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/_options.py +14 -19
  15. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/_plumbing.py +2 -2
  16. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/buses/_bus.py +20 -3
  17. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/buses/experimental/_electrical_bus.py +20 -5
  18. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/components/_converter.py +5 -5
  19. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/components/_generic_storage.py +3 -3
  20. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/components/_link.py +10 -7
  21. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/components/experimental/_generic_caes.py +24 -10
  22. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/components/experimental/_piecewise_linear_converter.py +20 -5
  23. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/components/experimental/_sink_dsm.py +3 -3
  24. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/constraints/equate_variables.py +5 -2
  25. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/constraints/integral_limit.py +5 -2
  26. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/constraints/investment_limit.py +5 -2
  27. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/constraints/shared_limit.py +5 -2
  28. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/flows/_investment_flow_block.py +2 -5
  29. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/flows/_non_convex_flow_block.py +47 -27
  30. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof.solph.egg-info/PKG-INFO +21 -6
  31. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof.solph.egg-info/SOURCES.txt +1 -1
  32. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof.solph.egg-info/entry_points.txt +0 -1
  33. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/constraint_tests.py +7 -5
  34. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/converter_invest_multi_period.lp +71 -71
  35. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/dsm_module_DIW_invest_multi_period.lp +2 -2
  36. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/dsm_module_DIW_invest_multi_period_remaining_value.lp +2 -2
  37. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/dsm_module_DLR_invest_multi_period.lp +2 -2
  38. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/dsm_module_DLR_invest_multi_period_remaining_value.lp +2 -2
  39. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/dsm_module_oemof_extended.lp +1 -1
  40. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/dsm_module_oemof_invest_multi_period.lp +2 -2
  41. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/dsm_module_oemof_invest_multi_period_remaining_value.lp +2 -2
  42. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/min_max_runtime.lp +6 -44
  43. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/min_max_runtime_multi_period.lp +23 -60
  44. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/multi_period_period_length.lp +313 -313
  45. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_1_fixed_losses.lp +1 -1
  46. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_multi_period.lp +3 -3
  47. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/multi_period_constraint_tests.py +38 -19
  48. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_components.py +11 -0
  49. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_energy_system.py +15 -0
  50. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_models.py +14 -22
  51. oemof.solph-0.5.2.dev2/tests/test_plumbing.py +39 -0
  52. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_scripts/test_solph/test_lopf/test_lopf.py +22 -27
  53. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_scripts/test_solph/test_multi_period_model/test_multi_period_dispatch_model.py +8 -0
  54. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_scripts/test_solph/test_multi_period_model/test_multi_period_investment_model.py +8 -0
  55. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_scripts/test_solph/test_options/test_non_convex.py +0 -21
  56. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_scripts/test_solph/test_piecewiselineartransformer/test_piecewiselineartransformer.py +0 -2
  57. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_scripts/test_solph/test_simple_model/test_simple_dispatch_one.py +1 -1
  58. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_scripts/test_solph/test_simple_model/test_simple_dispatch_one_explicit_timemode.py +1 -1
  59. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_time_index.py +6 -0
  60. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tox.ini +1 -1
  61. oemof.solph-0.5.2.dev1/VERSION +0 -1
  62. oemof.solph-0.5.2.dev1/docs/examples/electrical.lopf.rst +0 -7
  63. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/.coveragerc +0 -0
  64. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/.editorconfig +0 -0
  65. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/.pep8speaks.yml +0 -0
  66. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/.prospector.yml +0 -0
  67. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/.readthedocs.yaml +0 -0
  68. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/AUTHORS.rst +0 -0
  69. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/CITATION.cff +0 -0
  70. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/CODE_OF_CONDUCT.md +0 -0
  71. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/CONTRIBUTING.rst +0 -0
  72. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/LICENSE +0 -0
  73. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/README.rst +0 -0
  74. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/ci/appveyor-with-compiler.cmd +0 -0
  75. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/ci/bootstrap.py +0 -0
  76. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/ci/requirements.txt +0 -0
  77. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/ci/templates/.appveyor.yml +0 -0
  78. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/ci/templates/.travis.yml +0 -0
  79. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/ci/templates/tox.ini +0 -0
  80. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_files/ExtractionTurbine_range_of_operation.svg +0 -0
  81. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_files/GenericCHP.svg +0 -0
  82. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_files/OffsetConverter_efficiency.svg +0 -0
  83. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_files/OffsetConverter_power_relation.svg +0 -0
  84. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_files/Plot_delay_2013-01-01.svg +0 -0
  85. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_files/diesel_genset_investment_flow.svg +0 -0
  86. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_files/diesel_genset_nonconvex_flow.svg +0 -0
  87. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_files/diesel_genset_nonconvex_invest_flow.svg +0 -0
  88. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_files/example_figures.png +0 -0
  89. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_files/example_network.svg +0 -0
  90. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_files/example_variable_chp.svg +0 -0
  91. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_files/framework_concept.svg +0 -0
  92. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_files/nonconvex_invest_investcosts_power.svg +0 -0
  93. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_files/nonconvex_invest_specific_costs.svg +0 -0
  94. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_files/oemof_solph_example.svg +0 -0
  95. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_files/pahesmf_init.py +0 -0
  96. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_files/variable_chp_plot.svg +0 -0
  97. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_logo/README.rst +0 -0
  98. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_logo/editable_fonts/logo_oemof_solph_COMPACT_editable_fonts.svg +0 -0
  99. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_logo/editable_fonts/logo_oemof_solph_FULL_editable_fonts.svg +0 -0
  100. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_logo/editable_fonts/logo_oemof_solph_ICON_editable_fonts.svg +0 -0
  101. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_logo/editable_fonts/logo_oemof_solph_NOTEXT_editable_fonts.svg +0 -0
  102. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_logo/logo_oemof_solph_COMPACT.svg +0 -0
  103. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_logo/logo_oemof_solph_COMPACT_bg.svg +0 -0
  104. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_logo/logo_oemof_solph_FULL.svg +0 -0
  105. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_logo/logo_oemof_solph_ICON.svg +0 -0
  106. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_logo/logo_oemof_solph_NOTEXT.svg +0 -0
  107. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/authors.rst +0 -0
  108. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/changelog.rst +0 -0
  109. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/contributing.rst +0 -0
  110. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/docutils.conf +0 -0
  111. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/examples/activity_costs.rst +0 -0
  112. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/examples/basic_example.rst +0 -0
  113. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/examples/cellular.rst +0 -0
  114. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/examples/custom_constraints.rst +0 -0
  115. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/examples/electrical.transshipment.rst +0 -0
  116. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/examples/emission_constraint.rst +0 -0
  117. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/examples/excel_reader.rst +0 -0
  118. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/examples/flow_count_limit.rst +0 -0
  119. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/examples/flow_gradient.rst +0 -0
  120. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/examples/invest_nonconvex.rst +0 -0
  121. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/examples/min_max_runtimes.rst +0 -0
  122. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/examples/minimal_investment.rst +0 -0
  123. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/examples/nametuple.rst +0 -0
  124. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/examples/offset_converter.rst +0 -0
  125. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/examples/shared_invest_limit.rst +0 -0
  126. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/examples/simple_dispatch.rst +0 -0
  127. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/examples/startup_costs.rst +0 -0
  128. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/examples/storage_costs.rst +0 -0
  129. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/examples/storage_investment.rst +0 -0
  130. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/examples/storage_level_constraint.rst +0 -0
  131. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/examples/time_index.rst +0 -0
  132. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/examples/unbalanced_storage.rst +0 -0
  133. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/examples/variable_chp.rst +0 -0
  134. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/index.rst +0 -0
  135. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/readme.rst +0 -0
  136. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/reference/index.rst +0 -0
  137. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/reference/oemof.solph.busses.rst +0 -0
  138. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/reference/oemof.solph.components.rst +0 -0
  139. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/reference/oemof.solph.console_scripts.rst +0 -0
  140. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/reference/oemof.solph.constraints.rst +0 -0
  141. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/reference/oemof.solph.energy_system.rst +0 -0
  142. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/reference/oemof.solph.flow.rst +0 -0
  143. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/reference/oemof.solph.groupings.rst +0 -0
  144. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/reference/oemof.solph.helpers.rst +0 -0
  145. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/reference/oemof.solph.models.rst +0 -0
  146. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/reference/oemof.solph.options.rst +0 -0
  147. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/reference/oemof.solph.plumbing.rst +0 -0
  148. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/reference/oemof.solph.processing.rst +0 -0
  149. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/reference/oemof.solph.views.rst +0 -0
  150. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/requirements.txt +0 -0
  151. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/spelling_wordlist.txt +0 -0
  152. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/usage.rst +0 -0
  153. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-0-1.rst +0 -0
  154. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-0-2.rst +0 -0
  155. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-0-3.rst +0 -0
  156. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-0-4.rst +0 -0
  157. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-0-5.rst +0 -0
  158. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-0-6.rst +0 -0
  159. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-0-7.rst +0 -0
  160. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-1-0.rst +0 -0
  161. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-1-1.rst +0 -0
  162. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-1-2.rst +0 -0
  163. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-1-4.rst +0 -0
  164. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-2-0.rst +0 -0
  165. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-2-1.rst +0 -0
  166. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-2-2.rst +0 -0
  167. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-2-3.rst +0 -0
  168. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-3-0.rst +0 -0
  169. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-3-1.rst +0 -0
  170. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-3-2.rst +0 -0
  171. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-4-0.rst +0 -0
  172. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-4-1.rst +0 -0
  173. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-4-2.rst +0 -0
  174. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-4-4.rst +0 -0
  175. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-4-5.rst +0 -0
  176. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-5-0.rst +0 -0
  177. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-5-1.rst +0 -0
  178. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/examples/basic_example/basic_example.csv +0 -0
  179. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/examples/excel_reader/scenario.xlsx +0 -0
  180. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/examples/invest_nonconvex_flow_examples/solar_generation.csv +0 -0
  181. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/examples/offset_converter_example/diesel_genset_data.csv +0 -0
  182. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/examples/simple_dispatch/input_data.csv +0 -0
  183. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/examples/storage_investment/storage_investment.csv +0 -0
  184. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/examples/tuple_as_labels/tuple_as_label.csv +0 -0
  185. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/examples/variable_chp/variable_chp.csv +0 -0
  186. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/_console_scripts.py +0 -0
  187. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/_groupings.py +0 -0
  188. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/_helpers.py +0 -0
  189. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/buses/__init__.py +0 -0
  190. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/buses/experimental/__init__.py +0 -0
  191. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/components/__init__.py +0 -0
  192. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/components/_extraction_turbine_chp.py +0 -0
  193. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/components/_generic_chp.py +0 -0
  194. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/components/_offset_converter.py +0 -0
  195. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/components/_sink.py +0 -0
  196. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/components/_source.py +0 -0
  197. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/components/experimental/__init__.py +0 -0
  198. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/constraints/__init__.py +0 -0
  199. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/constraints/equate_flows.py +0 -0
  200. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/constraints/flow_count_limit.py +0 -0
  201. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/constraints/storage_level.py +0 -0
  202. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/flows/__init__.py +0 -0
  203. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/flows/_flow.py +0 -0
  204. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/flows/_invest_non_convex_flow_block.py +0 -0
  205. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/flows/_simple_flow_block.py +0 -0
  206. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/flows/experimental/__init__.py +0 -0
  207. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/flows/experimental/_electrical_line.py +0 -0
  208. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/helpers.py +0 -0
  209. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/processing.py +0 -0
  210. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/views.py +0 -0
  211. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof.solph.egg-info/dependency_links.txt +0 -0
  212. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof.solph.egg-info/not-zip-safe +0 -0
  213. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof.solph.egg-info/requires.txt +0 -0
  214. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof.solph.egg-info/top_level.txt +0 -0
  215. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/flow_tests.py +0 -0
  216. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/activity_costs.lp +0 -0
  217. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/activity_costs_multi_period.lp +0 -0
  218. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/connect_investment.lp +0 -0
  219. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/connect_investment_multi_period.lp +0 -0
  220. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/converter.lp +0 -0
  221. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/converter_invest.lp +0 -0
  222. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/converter_invest_with_existing.lp +0 -0
  223. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/converter_invest_with_existing_multi_period.lp +0 -0
  224. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/converter_multi_period.lp +0 -0
  225. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/dsm_module_DIW.lp +0 -0
  226. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/dsm_module_DIW_extended.lp +0 -0
  227. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/dsm_module_DIW_extended_multi_period.lp +0 -0
  228. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/dsm_module_DIW_invest.lp +0 -0
  229. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/dsm_module_DIW_multi_period.lp +0 -0
  230. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/dsm_module_DLR.lp +0 -0
  231. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/dsm_module_DLR_delay_time.lp +0 -0
  232. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/dsm_module_DLR_extended.lp +0 -0
  233. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/dsm_module_DLR_extended_multi_period.lp +0 -0
  234. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/dsm_module_DLR_invest.lp +0 -0
  235. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/dsm_module_DLR_multi_period.lp +0 -0
  236. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/dsm_module_oemof.lp +0 -0
  237. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/dsm_module_oemof_extended_multi_period.lp +0 -0
  238. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/dsm_module_oemof_invest.lp +0 -0
  239. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/dsm_module_oemof_multi_period.lp +0 -0
  240. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/emission_budget_limit.lp +0 -0
  241. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/emission_limit.lp +0 -0
  242. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/emission_limit_no_error.lp +0 -0
  243. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/equate_flows.lp +0 -0
  244. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/fixed_costs_sources.lp +0 -0
  245. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/fixed_source_invest_sink.lp +0 -0
  246. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/fixed_source_invest_sink_multi_period.lp +0 -0
  247. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/fixed_source_variable_sink.lp +0 -0
  248. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/fixed_source_variable_sink_multi_period.lp +0 -0
  249. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/flow_count_limit.lp +0 -0
  250. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/flow_count_limit_multi_period.lp +0 -0
  251. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/flow_invest_with_offset.lp +0 -0
  252. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/flow_invest_with_offset_multi_period.lp +0 -0
  253. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/flow_invest_with_offset_multi_period_remaining_value.lp +0 -0
  254. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/flow_invest_with_offset_no_minimum.lp +0 -0
  255. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/flow_invest_with_offset_no_minimum_multi_period.lp +0 -0
  256. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/flow_invest_without_offset.lp +0 -0
  257. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/flow_invest_without_offset_multi_period.lp +0 -0
  258. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/flow_invest_without_offset_multi_period_remaining_value.lp +0 -0
  259. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/flow_nonconvex_invest_bounded_converter.lp +0 -0
  260. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/flow_reaching_lifetime.lp +0 -0
  261. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/flow_reaching_lifetime_initial_age.lp +0 -0
  262. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/generic_invest_limit.lp +0 -0
  263. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/inactivity_costs.lp +0 -0
  264. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/inactivity_costs_multi_period.lp +0 -0
  265. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/integer_source.lp +0 -0
  266. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/invest_non_convex_flow.lp +0 -0
  267. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/invest_source_fixed_sink.lp +0 -0
  268. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/invest_source_fixed_sink_multi_period.lp +0 -0
  269. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/investment_limit.lp +0 -0
  270. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/investment_limit_with_dsm_DIW.lp +0 -0
  271. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/investment_limit_with_dsm_DLR.lp +0 -0
  272. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/investment_limit_with_dsm_oemof.lp +0 -0
  273. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/linear_converter.lp +0 -0
  274. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/linear_converter_chp.lp +0 -0
  275. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/linear_converter_chp_invest.lp +0 -0
  276. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/linear_converter_chp_invest_multi_period.lp +0 -0
  277. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/linear_converter_chp_multi_period.lp +0 -0
  278. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/linear_converter_invest.lp +0 -0
  279. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/linear_converter_invest_multi_period.lp +0 -0
  280. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/linear_converter_invest_multi_period_old.lp +0 -0
  281. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/linear_converter_invest_multi_period_remaining_value.lp +0 -0
  282. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/linear_converter_multi_period.lp +0 -0
  283. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/link.lp +0 -0
  284. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/max_source_min_sink.lp +0 -0
  285. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/max_source_min_sink_multi_period.lp +0 -0
  286. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/maximum_shutdowns.lp +0 -0
  287. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/maximum_shutdowns_multi_period.lp +0 -0
  288. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/maximum_startups.lp +0 -0
  289. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/maximum_startups_multi_period.lp +0 -0
  290. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/nominal_value_to_zero.lp +0 -0
  291. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/nominal_value_to_zero_multi_period.lp +0 -0
  292. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/nonequidistant_timeindex.lp +0 -0
  293. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/offsetconverter.lp +0 -0
  294. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/offsetconverter_multi_period.lp +0 -0
  295. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/offsetconverter_nonconvex.lp +0 -0
  296. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/offsetconverter_nonconvex_investment.lp +0 -0
  297. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/periodical_emission_limit.lp +0 -0
  298. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/periodical_investment_limit.lp +0 -0
  299. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/periodical_investment_limit_with_dsm_DIW.lp +0 -0
  300. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/periodical_investment_limit_with_dsm_DLR.lp +0 -0
  301. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/periodical_investment_limit_with_dsm_oemof.lp +0 -0
  302. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/piecewise_linear_converter_cc.lp +0 -0
  303. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/piecewise_linear_converter_cc_multi_period.lp +0 -0
  304. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/piecewise_linear_converter_dcc.lp +0 -0
  305. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/piecewise_linear_converter_dcc_multi_period.lp +0 -0
  306. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/shared_limit.lp +0 -0
  307. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/shared_limit_multi_period.lp +0 -0
  308. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/source_with_gradient.lp +0 -0
  309. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/source_with_gradient_multi_period.lp +0 -0
  310. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/source_with_nonconvex_gradient.lp +0 -0
  311. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/source_with_nonconvex_gradient_multi_period.lp +0 -0
  312. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage.lp +0 -0
  313. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_fixed_losses.lp +0 -0
  314. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_fixed_losses_multi_period.lp +0 -0
  315. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_1.lp +0 -0
  316. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_1_multi_period.lp +0 -0
  317. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_1_multi_period_remaining_value.lp +0 -0
  318. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_2.lp +0 -0
  319. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_2_multi_period.lp +0 -0
  320. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_3.lp +0 -0
  321. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_3_multi_period.lp +0 -0
  322. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_4.lp +0 -0
  323. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_4_multi_period.lp +0 -0
  324. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_5.lp +0 -0
  325. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_5_multi_period.lp +0 -0
  326. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_6.lp +0 -0
  327. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_6_multi_period.lp +0 -0
  328. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_all_nonconvex.lp +0 -0
  329. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_all_nonconvex_multi_period.lp +0 -0
  330. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_minimum.lp +0 -0
  331. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_minimum_multi_period.lp +0 -0
  332. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_unbalanced.lp +0 -0
  333. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_with_offset.lp +0 -0
  334. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_with_offset_multi_period.lp +0 -0
  335. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_with_offset_multi_period_remaining_value.lp +0 -0
  336. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_without_offset.lp +0 -0
  337. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_without_offset_multi_period.lp +0 -0
  338. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_without_offset_multi_period_remaining_value.lp +0 -0
  339. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_level_constraint.lp +0 -0
  340. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_multi_period.lp +0 -0
  341. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_unbalanced.lp +0 -0
  342. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_unbalanced_multi_period.lp +0 -0
  343. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/summed_min_source.lp +0 -0
  344. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/summed_min_source_multi_period.lp +0 -0
  345. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/variable_chp.lp +0 -0
  346. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/variable_chp_multi_period.lp +0 -0
  347. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/regression_tests.py +0 -0
  348. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_console_scripts.py +0 -0
  349. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_constraints_module.py +0 -0
  350. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_grouping.py +0 -0
  351. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_helpers.py +0 -0
  352. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_non_equidistant_time_index.py +0 -0
  353. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_oemof_installation_test.py +0 -0
  354. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_options.py +0 -0
  355. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_outputlib/__init__.py +0 -0
  356. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_outputlib/input_data.csv +0 -0
  357. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_outputlib/test_views.py +0 -0
  358. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_processing.py +0 -0
  359. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_scripts/test_solph/test_connect_invest/connect_invest.csv +0 -0
  360. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_scripts/test_solph/test_connect_invest/test_connect_invest.py +0 -0
  361. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_scripts/test_solph/test_flexible_modelling/test_add_constraints.py +0 -0
  362. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_scripts/test_solph/test_generic_caes/generic_caes.csv +0 -0
  363. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_scripts/test_solph/test_generic_caes/test_generic_caes.py +0 -0
  364. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_scripts/test_solph/test_generic_chp/ccet.csv +0 -0
  365. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_scripts/test_solph/test_generic_chp/test_generic_chp.py +0 -0
  366. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_scripts/test_solph/test_invest_fix_flow/input_data.csv +0 -0
  367. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_scripts/test_solph/test_invest_fix_flow/test_simple_invest_fixed.py +0 -0
  368. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_scripts/test_solph/test_simple_model/input_data.csv +0 -0
  369. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_scripts/test_solph/test_simple_model/test_simple_dispatch.py +0 -0
  370. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_scripts/test_solph/test_simple_model/test_simple_invest.py +0 -0
  371. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_scripts/test_solph/test_storage_investment/storage_investment.csv +0 -0
  372. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_scripts/test_solph/test_storage_investment/test_invest_storage_regression.py +0 -0
  373. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_scripts/test_solph/test_storage_investment/test_storage_investment.py +0 -0
  374. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_scripts/test_solph/test_storage_investment/test_storage_with_tuple_label.py +0 -0
  375. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_scripts/test_solph/test_variable_chp/test_variable_chp.py +0 -0
  376. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_scripts/test_solph/test_variable_chp/variable_chp.csv +0 -0
  377. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_solph_network_classes.py +0 -0
  378. {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_warnings.py +0 -0
@@ -1,5 +1,5 @@
1
1
  [bumpversion]
2
- current_version = 0.5.2dev1
2
+ current_version = 0.5.2.dev2
3
3
  commit = True
4
4
  tag = True
5
5
 
@@ -5,7 +5,6 @@ graft tests
5
5
 
6
6
  include .bumpversion.cfg
7
7
  include .coveragerc
8
- include .cookiecutterrc
9
8
  include .editorconfig
10
9
 
11
10
  include AUTHORS.rst
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: oemof.solph
3
- Version: 0.5.2.dev1
3
+ Version: 0.5.2.dev2
4
4
  Summary: A model generator for energy system modelling and optimisation.
5
5
  Home-page: https://oemof.org
6
6
  Author: oemof developer group
@@ -9,7 +9,6 @@ License: MIT
9
9
  Project-URL: Documentation, https://oemof-solph.readthedocs.io/
10
10
  Project-URL: Changelog, https://oemof-solph.readthedocs.io/en/latest/changelog.html
11
11
  Project-URL: Issue Tracker, https://github.com/oemof/oemof-solph/issues
12
- Platform: UNKNOWN
13
12
  Classifier: Development Status :: 5 - Production/Stable
14
13
  Classifier: Intended Audience :: Developers
15
14
  Classifier: Intended Audience :: Science/Research
@@ -28,11 +27,29 @@ Classifier: Programming Language :: Python :: Implementation :: CPython
28
27
  Classifier: Topic :: Utilities
29
28
  Requires-Python: >=3.8
30
29
  Description-Content-Type: text/x-rst
30
+ License-File: LICENSE
31
+ License-File: AUTHORS.rst
32
+ Requires-Dist: blinker
33
+ Requires-Dist: dill
34
+ Requires-Dist: numpy
35
+ Requires-Dist: pandas>=1.5.3
36
+ Requires-Dist: pyomo<7.0,>=6.6.0
37
+ Requires-Dist: networkx
38
+ Requires-Dist: oemof.tools>=0.4.2
39
+ Requires-Dist: oemof.network>=0.5.0a1
31
40
  Provides-Extra: dev
41
+ Requires-Dist: matplotlib; extra == "dev"
42
+ Requires-Dist: nbformat; extra == "dev"
43
+ Requires-Dist: pytest; extra == "dev"
44
+ Requires-Dist: sphinx; extra == "dev"
45
+ Requires-Dist: sphinx_rtd_theme; extra == "dev"
46
+ Requires-Dist: sphinx-copybutton; extra == "dev"
47
+ Requires-Dist: sphinx-design; extra == "dev"
48
+ Requires-Dist: termcolor; extra == "dev"
32
49
  Provides-Extra: examples
50
+ Requires-Dist: matplotlib; extra == "examples"
33
51
  Provides-Extra: dummy
34
- License-File: LICENSE
35
- License-File: AUTHORS.rst
52
+ Requires-Dist: oemof; extra == "dummy"
36
53
 
37
54
 
38
55
  |tox-pytest| |tox-checks| |appveyor| |coveralls| |codecov|
@@ -327,5 +344,3 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
327
344
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
328
345
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
329
346
  SOFTWARE.
330
-
331
-
@@ -0,0 +1 @@
1
+ __version__ = "0.5.2.dev2"
@@ -36,7 +36,7 @@ project = "oemof.solph"
36
36
  year = "2014-2023"
37
37
  author = "oemof-developer-group"
38
38
  copyright = "{0}, {1}".format(year, author)
39
- version = release = "0.5.2dev1"
39
+ version = release = "0.5.2.dev2"
40
40
 
41
41
  pygments_style = "trac"
42
42
  templates_path = ["."]
@@ -29,5 +29,4 @@ Examples
29
29
  minimal_investment.rst
30
30
  invest_nonconvex.rst
31
31
  offset_converter.rst
32
- electrical.lopf.rst
33
32
  custom_constraints.rst
@@ -5,12 +5,14 @@ API changes
5
5
  ###########
6
6
 
7
7
  * New bool attribute `use_remaining_value` of `oemof.solph.EnergySystem`
8
+ * Use list for period definition in multi-period investment optimization.
8
9
 
9
10
  New features
10
11
  ############
11
12
 
12
13
  * Allow for evaluating differences in the remaining vs. the original value
13
14
  for multi-period investments.
15
+ * Allow to define minimum up- and down-time per time step
14
16
 
15
17
  Documentation
16
18
  #############
@@ -22,6 +24,9 @@ Bug fixes
22
24
  Limit to costs that occur within the optimization horizon to prevent a
23
25
  bias towards investments happening earlier in the optimization horizon.
24
26
  * Fix bugs in multi-period documentation.
27
+ * Fix y intersect of OffsetConverter
28
+ * Fix minimum uptime being relevant for initial downtime (and vice versa).
29
+ * Fix duplicated discounting of fixed costs for multi-period investment
25
30
 
26
31
  Testing
27
32
  #######
@@ -31,6 +36,12 @@ Other changes
31
36
 
32
37
  * Improved compatibility with upcoming oemof.network
33
38
 
39
+ Known issues
40
+ ############
41
+
42
+ * Documentation, example and API of OffsetConverter are inconsistent
43
+ and might not work as expected.
44
+
34
45
  Contributors
35
46
  ############
36
47
 
@@ -19,5 +19,5 @@ exclude = '''
19
19
  '''
20
20
 
21
21
  [build-system]
22
- requires = ["setuptools<60.0", "wheel"]
22
+ requires = ["setuptools", "wheel"]
23
23
  build-backend = "setuptools.build_meta"
@@ -28,7 +28,7 @@ python_files =
28
28
  tests.py
29
29
  addopts =
30
30
  -ra
31
- --strict
31
+ --strict-markers
32
32
  --ignore=docs/conf.py
33
33
  --ignore=setup.py
34
34
  --ignore=ci
@@ -29,7 +29,7 @@ long_description = "%s" % (
29
29
 
30
30
  setup(
31
31
  name="oemof.solph",
32
- version="0.5.2dev1",
32
+ version="0.5.2.dev2",
33
33
  license="MIT",
34
34
  description=(
35
35
  "A model generator for energy system modelling and optimisation."
@@ -1,4 +1,4 @@
1
- __version__ = "0.5.2dev1"
1
+ __version__ = "0.5.2.dev2"
2
2
 
3
3
  from . import buses
4
4
  from . import components
@@ -76,14 +76,16 @@ class EnergySystem(es.EnergySystem):
76
76
  infer_last_interval=None,
77
77
  periods=None,
78
78
  use_remaining_value=False,
79
- **kwargs,
79
+ groupings=None,
80
80
  ):
81
81
  # Doing imports at runtime is generally frowned upon, but should work
82
82
  # for now. See the TODO in :func:`constraint_grouping
83
83
  # <oemof.solph.groupings.constraint_grouping>` for more information.
84
84
  from oemof.solph import GROUPINGS
85
85
 
86
- kwargs["groupings"] = GROUPINGS + kwargs.get("groupings", [])
86
+ if groupings is None:
87
+ groupings = []
88
+ groupings = GROUPINGS + groupings
87
89
 
88
90
  if not (
89
91
  isinstance(timeindex, pd.DatetimeIndex)
@@ -161,7 +163,9 @@ class EnergySystem(es.EnergySystem):
161
163
  raise TypeError(msg)
162
164
 
163
165
  super().__init__(
164
- timeindex=timeindex, timeincrement=timeincrement, **kwargs
166
+ groupings=groupings,
167
+ timeindex=timeindex,
168
+ timeincrement=timeincrement,
165
169
  )
166
170
 
167
171
  self.periods = periods
@@ -402,12 +402,11 @@ class Model(BaseModel):
402
402
  """Add all basic sets to the model, i.e. NODES, TIMESTEPS and FLOWS.
403
403
  Also create sets PERIODS and TIMEINDEX used for multi-period models.
404
404
  """
405
- self.nodes = self.es.nodes
405
+ self.nodes = list(self.es.nodes)
406
406
  if self.is_cellular:
407
407
  # collect all nodes from the child cells
408
408
  for cell in self.ec:
409
- for node in cell.nodes:
410
- self.nodes.append(node)
409
+ self.nodes.extend(cell.nodes)
411
410
  # create set with all nodes
412
411
  self.NODES = po.Set(initialize=[n for n in self.nodes])
413
412
 
@@ -13,7 +13,6 @@ SPDX-FileCopyrightText: Johannes Kochems
13
13
  SPDX-License-Identifier: MIT
14
14
 
15
15
  """
16
-
17
16
  from oemof.solph._plumbing import sequence
18
17
 
19
18
 
@@ -184,11 +183,11 @@ class NonConvex:
184
183
  from the actual output.
185
184
  inactivity_costs : numeric (iterable or scalar)
186
185
  Costs associated with not operating the flow.
187
- minimum_uptime : numeric (1 or positive integer)
186
+ minimum_uptime : numeric or list of numeric (1 or positive integer)
188
187
  Minimum number of time steps that a flow must be greater then its
189
188
  minimum flow after startup. Be aware that minimum up and downtimes
190
189
  can contradict each other and may lead to infeasible problems.
191
- minimum_downtime : numeric (1 or positive integer)
190
+ minimum_downtime : numeric or list of numeric (1 or positive integer)
192
191
  Minimum number of time steps a flow is forced to zero after
193
192
  shutting down. Be aware that minimum up and downtimes can
194
193
  contradict each other and may to infeasible problems.
@@ -199,12 +198,12 @@ class NonConvex:
199
198
  initial_status : numeric (0 or 1)
200
199
  Integer value indicating the status of the flow in the first time step
201
200
  (0 = off, 1 = on). For minimum up and downtimes, the initial status
202
- is set for the respective values in the edge regions e.g. if a
203
- minimum uptime of four timesteps is defined, the initial status is
204
- fixed for the four first and last timesteps of the optimization period.
205
- If both, up and downtimes are defined, the initial status is set for
206
- the maximum of both e.g. for six timesteps if a minimum downtime of
207
- six timesteps is defined besides a four timestep minimum uptime.
201
+ is set for the respective values in the beginning e.g. if a
202
+ minimum uptime of four timesteps is defined and the initial status is
203
+ set to one, the initial status is fixed for the four first timesteps
204
+ of the optimization period. Otherwise if the initial status is set to
205
+ zero and the first timesteps are fixed for the number of minimum
206
+ downtime steps.
208
207
  negative_gradient_limit : numeric (iterable, scalar or None)
209
208
  the normed *upper bound* on the positive difference
210
209
  (`flow[t-1] < flow[t]`) of two consecutive flow values.
@@ -232,8 +231,8 @@ class NonConvex:
232
231
  custom_attributes = {}
233
232
 
234
233
  self.initial_status = initial_status
235
- self.minimum_uptime = minimum_uptime
236
- self.minimum_downtime = minimum_downtime
234
+ self.minimum_uptime = sequence(minimum_uptime)
235
+ self.minimum_downtime = sequence(minimum_downtime)
237
236
  self.maximum_startups = maximum_startups
238
237
  self.maximum_shutdowns = maximum_shutdowns
239
238
 
@@ -247,11 +246,7 @@ class NonConvex:
247
246
  for attribute, value in custom_attributes.items():
248
247
  setattr(self, attribute, value)
249
248
 
250
- @property
251
- def max_up_down(self):
252
- """Return maximum of minimum_uptime and minimum_downtime.
253
-
254
- The maximum of both is used to set the initial status for this
255
- number of time steps within the edge regions.
256
- """
257
- return max(self.minimum_uptime, self.minimum_downtime)
249
+ if initial_status == 0:
250
+ self.first_flexible_timestep = self.minimum_downtime[0]
251
+ else:
252
+ self.first_flexible_timestep = self.minimum_uptime[0]
@@ -61,7 +61,7 @@ class _Sequence(UserList):
61
61
  --------
62
62
  >>> s = _Sequence(default=42)
63
63
  >>> len(s)
64
- 0
64
+ 1
65
65
  >>> s[1]
66
66
  42
67
67
  >>> s[2]
@@ -79,7 +79,7 @@ class _Sequence(UserList):
79
79
  def __init__(self, *args, **kwargs):
80
80
  self.default = kwargs["default"]
81
81
  self.default_changed = False
82
- self.highest_index = -1
82
+ self.highest_index = 0
83
83
  super().__init__(*args)
84
84
 
85
85
  def __getitem__(self, key):
@@ -40,9 +40,26 @@ class Bus(Node):
40
40
 
41
41
  """
42
42
 
43
- def __init__(self, *args, **kwargs):
44
- super().__init__(*args, **kwargs)
45
- self.balanced = kwargs.get("balanced", True)
43
+ def __init__(
44
+ self,
45
+ label=None,
46
+ *,
47
+ inputs=None,
48
+ outputs=None,
49
+ balanced=True,
50
+ custom_properties=None,
51
+ ):
52
+ if inputs is None:
53
+ inputs = {}
54
+ if outputs is None:
55
+ outputs = {}
56
+ super().__init__(
57
+ label,
58
+ inputs=inputs,
59
+ outputs=outputs,
60
+ custom_properties=custom_properties,
61
+ )
62
+ self.balanced = balanced
46
63
 
47
64
  def constraint_group(self):
48
65
  if self.balanced:
@@ -47,8 +47,23 @@ class ElectricalBus(Bus):
47
47
 
48
48
  """
49
49
 
50
- def __init__(self, *args, **kwargs):
51
- super().__init__(*args, **kwargs)
52
- self.slack = kwargs.get("slack", False)
53
- self.v_max = kwargs.get("v_max", 1000)
54
- self.v_min = kwargs.get("v_min", -1000)
50
+ def __init__(
51
+ self,
52
+ label=None,
53
+ *,
54
+ v_max,
55
+ v_min,
56
+ inputs=None,
57
+ outputs=None,
58
+ custom_properties=None,
59
+ slack=False,
60
+ ):
61
+ super().__init__(
62
+ label,
63
+ inputs=inputs,
64
+ outputs=outputs,
65
+ custom_properties=custom_properties,
66
+ )
67
+ self.slack = slack
68
+ self.v_max = v_max
69
+ self.v_min = v_min
@@ -101,13 +101,9 @@ class Converter(Node):
101
101
  conversion_factors=None,
102
102
  custom_attributes=None,
103
103
  ):
104
- self.label = label
105
-
106
104
  if inputs is None:
107
- warn_if_missing_attribute(self, "inputs")
108
105
  inputs = {}
109
106
  if outputs is None:
110
- warn_if_missing_attribute(self, "outputs")
111
107
  outputs = {}
112
108
 
113
109
  if custom_attributes is None:
@@ -117,8 +113,12 @@ class Converter(Node):
117
113
  label=label,
118
114
  inputs=inputs,
119
115
  outputs=outputs,
120
- **custom_attributes,
116
+ custom_properties=custom_attributes,
121
117
  )
118
+ if not inputs:
119
+ warn_if_missing_attribute(self, "inputs")
120
+ if not outputs:
121
+ warn_if_missing_attribute(self, "outputs")
122
122
 
123
123
  if conversion_factors is None:
124
124
  conversion_factors = {}
@@ -193,10 +193,10 @@ class GenericStorage(Node):
193
193
  if custom_attributes is None:
194
194
  custom_attributes = {}
195
195
  super().__init__(
196
- label=label,
196
+ label,
197
197
  inputs=inputs,
198
198
  outputs=outputs,
199
- **custom_attributes,
199
+ custom_properties=custom_attributes,
200
200
  )
201
201
  # --- BEGIN: The following code can be removed for versions >= v0.6 ---
202
202
  if investment is not None:
@@ -1869,7 +1869,7 @@ class GenericInvestmentStorageBlock(ScalarBlock):
1869
1869
  m.es.periods_years[p],
1870
1870
  range_limit,
1871
1871
  )
1872
- ) * (1 + m.discount_rate) ** (-m.es.periods_years[p])
1872
+ )
1873
1873
 
1874
1874
  for n in self.EXISTING_INVESTSTORAGES:
1875
1875
  if n.investment.fixed_costs[0] is not None:
@@ -86,23 +86,26 @@ class Link(Node):
86
86
  conversion_factors=None,
87
87
  custom_attributes=None,
88
88
  ):
89
+ # compatibility with omeof.network w/o explicit named arguments
89
90
  if inputs is None:
90
- warn_if_missing_attribute(self, "inputs")
91
91
  inputs = {}
92
92
  if outputs is None:
93
- warn_if_missing_attribute(self, "outputs")
94
93
  outputs = {}
95
- if conversion_factors is None:
96
- warn_if_missing_attribute(self, "conversion_factors")
97
- conversion_factors = {}
98
94
  if custom_attributes is None:
99
95
  custom_attributes = {}
100
96
  super().__init__(
101
- label=label,
97
+ label,
102
98
  inputs=inputs,
103
99
  outputs=outputs,
104
- **custom_attributes,
100
+ custom_properties=custom_attributes,
105
101
  )
102
+ if not inputs:
103
+ warn_if_missing_attribute(self, "inputs")
104
+ if not outputs:
105
+ warn_if_missing_attribute(self, "outputs")
106
+ if conversion_factors is None:
107
+ warn_if_missing_attribute(self, "conversion_factors")
108
+ conversion_factors = {}
106
109
  self.conversion_factors = {
107
110
  k: sequence(v) for k, v in conversion_factors.items()
108
111
  }
@@ -97,18 +97,32 @@ class GenericCAES(Node):
97
97
  <class 'oemof.solph.components.experimental._generic_caes.GenericCAES'>
98
98
  """
99
99
 
100
- def __init__(self, *args, **kwargs):
101
- super().__init__(*args, **kwargs)
102
-
103
- self.electrical_input = kwargs.get("electrical_input")
104
- self.fuel_input = kwargs.get("fuel_input")
105
- self.electrical_output = kwargs.get("electrical_output")
106
- self.params = kwargs.get("params")
100
+ def __init__(
101
+ self,
102
+ label,
103
+ *,
104
+ electrical_input,
105
+ fuel_input,
106
+ electrical_output,
107
+ params,
108
+ custom_properties=None,
109
+ ):
110
+ super().__init__(
111
+ label=label,
112
+ inputs={},
113
+ outputs={},
114
+ custom_properties=custom_properties,
115
+ )
116
+
117
+ self.electrical_input = electrical_input
118
+ self.fuel_input = fuel_input
119
+ self.electrical_output = electrical_output
120
+ self.params = params
107
121
 
108
122
  # map specific flows to standard API
109
- self.inputs.update(kwargs.get("electrical_input"))
110
- self.inputs.update(kwargs.get("fuel_input"))
111
- self.outputs.update(kwargs.get("electrical_output"))
123
+ self.inputs.update(electrical_input)
124
+ self.inputs.update(fuel_input)
125
+ self.outputs.update(electrical_output)
112
126
 
113
127
  def constraint_group(self):
114
128
  return GenericCAESBlock
@@ -66,12 +66,27 @@ class PiecewiseLinearConverter(Node):
66
66
  PiecewiseLinearConverter'>
67
67
  """
68
68
 
69
- def __init__(self, *args, **kwargs):
70
- super().__init__(*args, **kwargs)
69
+ def __init__(
70
+ self,
71
+ label,
72
+ *,
73
+ inputs,
74
+ outputs,
75
+ conversion_function,
76
+ in_breakpoints,
77
+ pw_repn,
78
+ custom_properties=None,
79
+ ):
80
+ super().__init__(
81
+ label,
82
+ inputs=inputs,
83
+ outputs=outputs,
84
+ custom_properties=custom_properties,
85
+ )
71
86
 
72
- self.in_breakpoints = list(kwargs.get("in_breakpoints"))
73
- self.conversion_function = kwargs.get("conversion_function")
74
- self.pw_repn = kwargs.get("pw_repn")
87
+ self.in_breakpoints = list(in_breakpoints)
88
+ self.conversion_function = conversion_function
89
+ self.pw_repn = pw_repn
75
90
 
76
91
  if len(self.inputs) > 1 or len(self.outputs) > 1:
77
92
  raise ValueError(
@@ -1447,7 +1447,7 @@ class SinkDSMOemofInvestmentBlock(ScalarBlock):
1447
1447
  m.es.periods_years[p],
1448
1448
  range_limit,
1449
1449
  )
1450
- ) * (1 + m.discount_rate) ** (-m.es.periods_years[p])
1450
+ )
1451
1451
 
1452
1452
  for g in self.EXISTING_INVESTDSM:
1453
1453
  if g.investment.fixed_costs[0] is not None:
@@ -3301,7 +3301,7 @@ class SinkDSMDIWInvestmentBlock(ScalarBlock):
3301
3301
  m.es.periods_years[p],
3302
3302
  range_limit,
3303
3303
  )
3304
- ) * (1 + m.discount_rate) ** (-m.es.periods_years[p])
3304
+ )
3305
3305
 
3306
3306
  for g in self.EXISTING_INVESTDSM:
3307
3307
  if g.investment.fixed_costs[0] is not None:
@@ -5800,7 +5800,7 @@ class SinkDSMDLRInvestmentBlock(ScalarBlock):
5800
5800
  m.es.periods_years[p],
5801
5801
  range_limit,
5802
5802
  )
5803
- ) * (1 + m.discount_rate) ** (-m.es.periods_years[p])
5803
+ )
5804
5804
 
5805
5805
  for g in self.EXISTING_INVESTDSM:
5806
5806
  if g.investment.fixed_costs[0] is not None:
@@ -62,8 +62,11 @@ def equate_variables(model, var1, var2, factor1=1, name=None):
62
62
 
63
63
  >>> import pandas as pd
64
64
  >>> from oemof import solph
65
- >>> date_time_index = pd.date_range('1/1/2012', periods=5, freq='H')
66
- >>> energysystem = solph.EnergySystem(timeindex=date_time_index)
65
+ >>> date_time_index = pd.date_range('1/1/2012', periods=6, freq='H')
66
+ >>> energysystem = solph.EnergySystem(
67
+ ... timeindex=date_time_index,
68
+ ... infer_last_interval=False,
69
+ ... )
67
70
  >>> bel1 = solph.buses.Bus(label='electricity1')
68
71
  >>> bel2 = solph.buses.Bus(label='electricity2')
69
72
  >>> energysystem.add(bel1, bel2)
@@ -102,8 +102,11 @@ def generic_integral_limit(om, keyword, flows=None, limit=None):
102
102
  --------
103
103
  >>> import pandas as pd
104
104
  >>> from oemof import solph
105
- >>> date_time_index = pd.date_range('1/1/2012', periods=5, freq='H')
106
- >>> energysystem = solph.EnergySystem(timeindex=date_time_index)
105
+ >>> date_time_index = pd.date_range('1/1/2012', periods=6, freq='H')
106
+ >>> energysystem = solph.EnergySystem(
107
+ ... timeindex=date_time_index,
108
+ ... infer_last_interval=False,
109
+ ... )
107
110
  >>> bel = solph.buses.Bus(label='electricityBus')
108
111
  >>> flow1 = solph.flows.Flow(
109
112
  ... nominal_value=100,
@@ -171,8 +171,11 @@ def additional_investment_flow_limit(model, keyword, limit=None):
171
171
  --------
172
172
  >>> import pandas as pd
173
173
  >>> from oemof import solph
174
- >>> date_time_index = pd.date_range('1/1/2020', periods=5, freq='H')
175
- >>> es = solph.EnergySystem(timeindex=date_time_index)
174
+ >>> date_time_index = pd.date_range('1/1/2020', periods=6, freq='H')
175
+ >>> es = solph.EnergySystem(
176
+ ... timeindex=date_time_index,
177
+ ... infer_last_interval=False,
178
+ ... )
176
179
  >>> bus = solph.buses.Bus(label='bus_1')
177
180
  >>> sink = solph.components.Sink(label="sink", inputs={bus:
178
181
  ... solph.flows.Flow(nominal_value=10, fix=[10, 20, 30, 40, 50])})
@@ -60,8 +60,11 @@ def shared_limit(
60
60
 
61
61
  >>> import pandas as pd
62
62
  >>> from oemof import solph
63
- >>> date_time_index = pd.date_range('1/1/2012', periods=5, freq='H')
64
- >>> energysystem = solph.EnergySystem(timeindex=date_time_index)
63
+ >>> date_time_index = pd.date_range('1/1/2012', periods=6, freq='H')
64
+ >>> energysystem = solph.EnergySystem(
65
+ ... timeindex=date_time_index,
66
+ ... infer_last_interval=False,
67
+ ... )
65
68
  >>> b1 = solph.buses.Bus(label="Party1Bus")
66
69
  >>> b2 = solph.buses.Bus(label="Party2Bus")
67
70
  >>> storage1 = solph.components.GenericStorage(
@@ -1022,11 +1022,8 @@ class InvestmentFlowBlock(ScalarBlock):
1022
1022
  self.invest[i, o, p]
1023
1023
  * m.flows[i, o].investment.fixed_costs[pp]
1024
1024
  * (1 + m.discount_rate) ** (-pp)
1025
- for pp in range(
1026
- m.es.periods_years[p],
1027
- range_limit,
1028
- )
1029
- ) * (1 + m.discount_rate) ** (-m.es.periods_years[p])
1025
+ for pp in range(m.es.periods_years[p], range_limit)
1026
+ )
1030
1027
 
1031
1028
  for i, o in self.EXISTING_INVESTFLOWS:
1032
1029
  if m.flows[i, o].investment.fixed_costs[0] is not None: