rtc-tools 2.7.0.dev2__tar.gz → 2.8.0a1__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.

Potentially problematic release.


This version of rtc-tools might be problematic. Click here for more details.

Files changed (420) hide show
  1. rtc_tools-2.8.0a1/.codecov.yml +12 -0
  2. rtc_tools-2.8.0a1/.coveragerc +15 -0
  3. rtc_tools-2.8.0a1/.git-blame-ignore-revs +35 -0
  4. rtc_tools-2.8.0a1/.github/actions/setup-python/action.yml +33 -0
  5. rtc_tools-2.8.0a1/.github/workflows/rtc-tools.yml +147 -0
  6. rtc_tools-2.8.0a1/.gitignore +32 -0
  7. rtc_tools-2.8.0a1/.pre-commit-config.yaml +13 -0
  8. rtc_tools-2.8.0a1/.readthedocs.yaml +26 -0
  9. rtc_tools-2.8.0a1/AUTHORS +10 -0
  10. rtc_tools-2.8.0a1/CONTRIBUTING.md +172 -0
  11. rtc_tools-2.8.0a1/COPYING +674 -0
  12. rtc_tools-2.8.0a1/PKG-INFO +279 -0
  13. {rtc_tools-2.7.0.dev2 → rtc_tools-2.8.0a1}/README.md +9 -11
  14. rtc_tools-2.8.0a1/doc/.gitignore +1 -0
  15. rtc_tools-2.8.0a1/doc/Makefile +225 -0
  16. rtc_tools-2.8.0a1/doc/_static/theme_overrides.css +13 -0
  17. rtc_tools-2.8.0a1/doc/conf.py +391 -0
  18. rtc_tools-2.8.0a1/doc/examples/optimization/basic.rst +223 -0
  19. rtc_tools-2.8.0a1/doc/examples/optimization/cascading_channels.rst +168 -0
  20. rtc_tools-2.8.0a1/doc/examples/optimization/channel_pulse.rst +104 -0
  21. rtc_tools-2.8.0a1/doc/examples/optimization/channel_wave_damping.rst +198 -0
  22. rtc_tools-2.8.0a1/doc/examples/optimization/debugging.rst +29 -0
  23. rtc_tools-2.8.0a1/doc/examples/optimization/ensemble.rst +283 -0
  24. rtc_tools-2.8.0a1/doc/examples/optimization/goal_programming.rst +296 -0
  25. rtc_tools-2.8.0a1/doc/examples/optimization/integrator_delay.rst +55 -0
  26. rtc_tools-2.8.0a1/doc/examples/optimization/lookup_table.rst +232 -0
  27. rtc_tools-2.8.0a1/doc/examples/optimization/mixed_integer.rst +210 -0
  28. rtc_tools-2.8.0a1/doc/examples/optimization/pumped_hydropower_system.rst +249 -0
  29. rtc_tools-2.8.0a1/doc/examples/optimization.rst +19 -0
  30. rtc_tools-2.8.0a1/doc/examples/pyplots/basic_results.py +71 -0
  31. rtc_tools-2.8.0a1/doc/examples/pyplots/cascading_channels_results.py +135 -0
  32. rtc_tools-2.8.0a1/doc/examples/pyplots/channel_pulse_results.py +164 -0
  33. rtc_tools-2.8.0a1/doc/examples/pyplots/channel_wave_damping.py +164 -0
  34. rtc_tools-2.8.0a1/doc/examples/pyplots/ensemble_results.py +109 -0
  35. rtc_tools-2.8.0a1/doc/examples/pyplots/goal_programming_results.py +70 -0
  36. rtc_tools-2.8.0a1/doc/examples/pyplots/integrator_delay.py +60 -0
  37. rtc_tools-2.8.0a1/doc/examples/pyplots/lookup_table_results.py +52 -0
  38. rtc_tools-2.8.0a1/doc/examples/pyplots/mixed_integer_results.py +58 -0
  39. rtc_tools-2.8.0a1/doc/examples/pyplots/pumped_hydropower_system_results.py +75 -0
  40. rtc_tools-2.8.0a1/doc/examples/pyplots/simulation_results.py +67 -0
  41. rtc_tools-2.8.0a1/doc/examples/simulation/custom_equation.rst +40 -0
  42. rtc_tools-2.8.0a1/doc/examples/simulation/setpoint.rst +213 -0
  43. rtc_tools-2.8.0a1/doc/examples/simulation.rst +10 -0
  44. rtc_tools-2.8.0a1/doc/examples.rst +10 -0
  45. rtc_tools-2.8.0a1/doc/getting-started.rst +142 -0
  46. rtc_tools-2.8.0a1/doc/images/Lake-Hartwell-24012016.jpg +0 -0
  47. rtc_tools-2.8.0a1/doc/images/PumpedStoragePlant_openmodelica.png +0 -0
  48. rtc_tools-2.8.0a1/doc/images/Woudagemaal.jpg +0 -0
  49. rtc_tools-2.8.0a1/doc/images/basic_example_console.png +0 -0
  50. rtc_tools-2.8.0a1/doc/images/cascading_channels_omedit.png +0 -0
  51. rtc_tools-2.8.0a1/doc/images/channel_impulse_xs.png +0 -0
  52. rtc_tools-2.8.0a1/doc/images/channel_wave_damping_omedit.png +0 -0
  53. rtc_tools-2.8.0a1/doc/images/graig-coch-2117306_640.jpg +0 -0
  54. rtc_tools-2.8.0a1/doc/images/integrator_delay_modelica.png +0 -0
  55. rtc_tools-2.8.0a1/doc/images/lavant-2976738_1280.jpg +0 -0
  56. rtc_tools-2.8.0a1/doc/images/logo.png +0 -0
  57. rtc_tools-2.8.0a1/doc/images/orifice_vs_pump_openmodelica.png +0 -0
  58. rtc_tools-2.8.0a1/doc/images/pont-du-gard-1742029_1280.jpg +0 -0
  59. rtc_tools-2.8.0a1/doc/images/simple_storage_openmodelica.png +0 -0
  60. rtc_tools-2.8.0a1/doc/images/single_channel.png +0 -0
  61. rtc_tools-2.8.0a1/doc/images/single_channel_hec-ras.png +0 -0
  62. rtc_tools-2.8.0a1/doc/index.rst +45 -0
  63. rtc_tools-2.8.0a1/doc/make.bat +281 -0
  64. rtc_tools-2.8.0a1/doc/optimization/basics.rst +12 -0
  65. rtc_tools-2.8.0a1/doc/optimization/csv_io.rst +6 -0
  66. rtc_tools-2.8.0a1/doc/optimization/fews_io.rst +16 -0
  67. rtc_tools-2.8.0a1/doc/optimization/forecast_uncertainty.rst +10 -0
  68. rtc_tools-2.8.0a1/doc/optimization/goal_programming/converting_goals_to_constraints.rst +55 -0
  69. rtc_tools-2.8.0a1/doc/optimization/goal_programming/goals.rst +14 -0
  70. rtc_tools-2.8.0a1/doc/optimization/goal_programming/linearized_order.rst +14 -0
  71. rtc_tools-2.8.0a1/doc/optimization/goal_programming/main_idea.rst +70 -0
  72. rtc_tools-2.8.0a1/doc/optimization/goal_programming/minimize_absolute_value.rst +14 -0
  73. rtc_tools-2.8.0a1/doc/optimization/homotopy.rst +8 -0
  74. rtc_tools-2.8.0a1/doc/optimization/initial_state_estimation.rst +6 -0
  75. rtc_tools-2.8.0a1/doc/optimization/linearization.rst +6 -0
  76. rtc_tools-2.8.0a1/doc/optimization/lookup_tables.rst +10 -0
  77. rtc_tools-2.8.0a1/doc/optimization/modelica_models.rst +8 -0
  78. rtc_tools-2.8.0a1/doc/optimization/multi_objective.rst +13 -0
  79. rtc_tools-2.8.0a1/doc/optimization/time_discretization.rst +6 -0
  80. rtc_tools-2.8.0a1/doc/optimization.rst +19 -0
  81. rtc_tools-2.8.0a1/doc/simulation/basics.rst +8 -0
  82. rtc_tools-2.8.0a1/doc/simulation/csv_io.rst +6 -0
  83. rtc_tools-2.8.0a1/doc/simulation/fews_io.rst +6 -0
  84. rtc_tools-2.8.0a1/doc/simulation.rst +15 -0
  85. rtc_tools-2.8.0a1/examples/basic/input/initial_state.csv +2 -0
  86. rtc_tools-2.8.0a1/examples/basic/input/timeseries_import.csv +13 -0
  87. rtc_tools-2.8.0a1/examples/basic/model/Example.mo +15 -0
  88. rtc_tools-2.8.0a1/examples/basic/reference_output/timeseries_export.csv +13 -0
  89. rtc_tools-2.8.0a1/examples/basic/src/example.py +29 -0
  90. rtc_tools-2.8.0a1/examples/cascading_channels/input/initial_state.csv +2 -0
  91. rtc_tools-2.8.0a1/examples/cascading_channels/input/timeseries_import.csv +49 -0
  92. rtc_tools-2.8.0a1/examples/cascading_channels/model/.gitignore +1 -0
  93. rtc_tools-2.8.0a1/examples/cascading_channels/model/Example.mo +70 -0
  94. rtc_tools-2.8.0a1/examples/cascading_channels/reference_output/timeseries_export.csv +49 -0
  95. rtc_tools-2.8.0a1/examples/cascading_channels/src/example.py +90 -0
  96. rtc_tools-2.8.0a1/examples/channel_pulse/HEC-RAS.zip +0 -0
  97. rtc_tools-2.8.0a1/examples/channel_pulse/input/timeseries_import.csv +192 -0
  98. rtc_tools-2.8.0a1/examples/channel_pulse/model/Example.mo +41 -0
  99. rtc_tools-2.8.0a1/examples/channel_pulse/reference_output/HEC-RAS_export.csv +192 -0
  100. rtc_tools-2.8.0a1/examples/channel_pulse/reference_output/timeseries_export.csv +192 -0
  101. rtc_tools-2.8.0a1/examples/channel_pulse/reference_output/timeseries_export_inertial_wave.csv +192 -0
  102. rtc_tools-2.8.0a1/examples/channel_pulse/reference_output/timeseries_export_inertial_wave_semi_implicit.csv +192 -0
  103. rtc_tools-2.8.0a1/examples/channel_pulse/reference_output/timeseries_export_saint_venant.csv +192 -0
  104. rtc_tools-2.8.0a1/examples/channel_pulse/reference_output/timeseries_export_saint_venant_upwind.csv +192 -0
  105. rtc_tools-2.8.0a1/examples/channel_pulse/src/example.py +90 -0
  106. rtc_tools-2.8.0a1/examples/channel_wave_damping/input/timeseries_import.csv +119 -0
  107. rtc_tools-2.8.0a1/examples/channel_wave_damping/model/Example.mo +70 -0
  108. rtc_tools-2.8.0a1/examples/channel_wave_damping/model/ExampleLocalControl.mo +24 -0
  109. rtc_tools-2.8.0a1/examples/channel_wave_damping/model/ExampleOptimization.mo +5 -0
  110. rtc_tools-2.8.0a1/examples/channel_wave_damping/model/PIDController.mo +17 -0
  111. rtc_tools-2.8.0a1/examples/channel_wave_damping/output/.gitignore +0 -0
  112. rtc_tools-2.8.0a1/examples/channel_wave_damping/reference_output/timeseries_export.csv +703 -0
  113. rtc_tools-2.8.0a1/examples/channel_wave_damping/reference_output/timeseries_export_local_control.csv +703 -0
  114. rtc_tools-2.8.0a1/examples/channel_wave_damping/src/example_local_control.py +27 -0
  115. rtc_tools-2.8.0a1/examples/channel_wave_damping/src/example_optimization.py +52 -0
  116. rtc_tools-2.8.0a1/examples/channel_wave_damping/src/steady_state_initialization_mixin.py +14 -0
  117. rtc_tools-2.8.0a1/examples/channel_wave_damping/src/step_size_parameter_mixin.py +16 -0
  118. rtc_tools-2.8.0a1/examples/ensemble/input/.gitignore +2 -0
  119. rtc_tools-2.8.0a1/examples/ensemble/input/ensemble.csv +3 -0
  120. rtc_tools-2.8.0a1/examples/ensemble/input/forecast1/.gitignore +1 -0
  121. rtc_tools-2.8.0a1/examples/ensemble/input/forecast1/initial_state.csv +2 -0
  122. rtc_tools-2.8.0a1/examples/ensemble/input/forecast1/timeseries_import.csv +13 -0
  123. rtc_tools-2.8.0a1/examples/ensemble/input/forecast2/.gitignore +1 -0
  124. rtc_tools-2.8.0a1/examples/ensemble/input/forecast2/initial_state.csv +2 -0
  125. rtc_tools-2.8.0a1/examples/ensemble/input/forecast2/timeseries_import.csv +13 -0
  126. rtc_tools-2.8.0a1/examples/ensemble/input/lookup_tables/.gitignore +1 -0
  127. rtc_tools-2.8.0a1/examples/ensemble/input/lookup_tables/curvefit_options.ini +2 -0
  128. rtc_tools-2.8.0a1/examples/ensemble/input/lookup_tables/storage_V.csv +8 -0
  129. rtc_tools-2.8.0a1/examples/ensemble/model/Example.mo +13 -0
  130. rtc_tools-2.8.0a1/examples/ensemble/output/forecast1/.gitignore +0 -0
  131. rtc_tools-2.8.0a1/examples/ensemble/output/forecast2/.gitignore +0 -0
  132. rtc_tools-2.8.0a1/examples/ensemble/reference_output/forecast1/timeseries_export.csv +13 -0
  133. rtc_tools-2.8.0a1/examples/ensemble/reference_output/forecast2/timeseries_export.csv +13 -0
  134. rtc_tools-2.8.0a1/examples/ensemble/src/example.py +144 -0
  135. rtc_tools-2.8.0a1/examples/goal_programming/input/initial_state.csv +2 -0
  136. rtc_tools-2.8.0a1/examples/goal_programming/input/timeseries_import.csv +22 -0
  137. rtc_tools-2.8.0a1/examples/goal_programming/model/Example.mo +25 -0
  138. rtc_tools-2.8.0a1/examples/goal_programming/output/.gitignore +0 -0
  139. rtc_tools-2.8.0a1/examples/goal_programming/reference_output/timeseries_export.csv +22 -0
  140. rtc_tools-2.8.0a1/examples/goal_programming/src/example.py +181 -0
  141. rtc_tools-2.8.0a1/examples/integrator_delay/input/initial_state.csv +2 -0
  142. rtc_tools-2.8.0a1/examples/integrator_delay/input/timeseries_import.csv +11 -0
  143. rtc_tools-2.8.0a1/examples/integrator_delay/input/timeseries_import_simulation.csv +11 -0
  144. rtc_tools-2.8.0a1/examples/integrator_delay/model/Example.mo +31 -0
  145. rtc_tools-2.8.0a1/examples/integrator_delay/src/example.py +49 -0
  146. rtc_tools-2.8.0a1/examples/lookup_table/input/.gitignore +2 -0
  147. rtc_tools-2.8.0a1/examples/lookup_table/input/initial_state.csv +2 -0
  148. rtc_tools-2.8.0a1/examples/lookup_table/input/lookup_tables/.gitignore +1 -0
  149. rtc_tools-2.8.0a1/examples/lookup_table/input/lookup_tables/curvefit_options.ini +2 -0
  150. rtc_tools-2.8.0a1/examples/lookup_table/input/lookup_tables/storage_V.csv +8 -0
  151. rtc_tools-2.8.0a1/examples/lookup_table/input/timeseries_import.csv +13 -0
  152. rtc_tools-2.8.0a1/examples/lookup_table/model/Example.mo +13 -0
  153. rtc_tools-2.8.0a1/examples/lookup_table/output/.gitignore +0 -0
  154. rtc_tools-2.8.0a1/examples/lookup_table/reference_output/timeseries_export.csv +13 -0
  155. rtc_tools-2.8.0a1/examples/lookup_table/src/example.py +116 -0
  156. rtc_tools-2.8.0a1/examples/mixed_integer/input/initial_state.csv +2 -0
  157. rtc_tools-2.8.0a1/examples/mixed_integer/input/timeseries_import.csv +22 -0
  158. rtc_tools-2.8.0a1/examples/mixed_integer/model/Example.mo +25 -0
  159. rtc_tools-2.8.0a1/examples/mixed_integer/output/.gitignore +0 -0
  160. rtc_tools-2.8.0a1/examples/mixed_integer/reference_output/timeseries_export.csv +22 -0
  161. rtc_tools-2.8.0a1/examples/mixed_integer/src/example.py +88 -0
  162. rtc_tools-2.8.0a1/examples/pumped_hydropower_system/input/initial_state.csv +2 -0
  163. rtc_tools-2.8.0a1/examples/pumped_hydropower_system/input/timeseries_import.csv +22 -0
  164. rtc_tools-2.8.0a1/examples/pumped_hydropower_system/model/PumpedStoragePlant.mo +80 -0
  165. rtc_tools-2.8.0a1/examples/pumped_hydropower_system/output/.gitignore +0 -0
  166. rtc_tools-2.8.0a1/examples/pumped_hydropower_system/reference_output/timeseries_export.csv +22 -0
  167. rtc_tools-2.8.0a1/examples/pumped_hydropower_system/src/example.py +154 -0
  168. rtc_tools-2.8.0a1/examples/simulation/input/parameters.csv +2 -0
  169. rtc_tools-2.8.0a1/examples/simulation/input/timeseries_import.csv +13 -0
  170. rtc_tools-2.8.0a1/examples/simulation/model/Example.mo +19 -0
  171. rtc_tools-2.8.0a1/examples/simulation/output/.gitignore +0 -0
  172. rtc_tools-2.8.0a1/examples/simulation/reference_output/timeseries_export.csv +13 -0
  173. rtc_tools-2.8.0a1/examples/simulation/src/example.py +50 -0
  174. rtc_tools-2.8.0a1/examples/simulation_with_custom_equations/input/initial_state.csv +2 -0
  175. rtc_tools-2.8.0a1/examples/simulation_with_custom_equations/input/timeseries_import.csv +7 -0
  176. rtc_tools-2.8.0a1/examples/simulation_with_custom_equations/model/SimpleModel.mo +6 -0
  177. rtc_tools-2.8.0a1/examples/simulation_with_custom_equations/output/.gitignore +0 -0
  178. rtc_tools-2.8.0a1/examples/simulation_with_custom_equations/reference_output/timeseries_export.csv +7 -0
  179. rtc_tools-2.8.0a1/examples/simulation_with_custom_equations/src/simple_model.py +43 -0
  180. rtc_tools-2.8.0a1/examples/single_reservoir/input/initial_state.csv +2 -0
  181. rtc_tools-2.8.0a1/examples/single_reservoir/input/timeseries_import.csv +12 -0
  182. rtc_tools-2.8.0a1/examples/single_reservoir/model/single_reservoir.mo +15 -0
  183. rtc_tools-2.8.0a1/examples/single_reservoir/output/.gitignore +0 -0
  184. rtc_tools-2.8.0a1/examples/single_reservoir/reference_output/timeseries_export.csv +12 -0
  185. rtc_tools-2.8.0a1/examples/single_reservoir/src/single_reservoir.py +76 -0
  186. rtc_tools-2.8.0a1/pyproject.toml +106 -0
  187. rtc_tools-2.8.0a1/sonar-project.properties +17 -0
  188. rtc_tools-2.8.0a1/src/rtctools/__init__.py +3 -0
  189. rtc_tools-2.8.0a1/src/rtctools/_internal/__init__.py +0 -0
  190. {rtc_tools-2.7.0.dev2 → rtc_tools-2.8.0a1}/src/rtctools/_internal/casadi_helpers.py +13 -5
  191. rtc_tools-2.8.0a1/src/rtctools/_internal/ensemble_bounds_decorator.py +71 -0
  192. {rtc_tools-2.7.0.dev2 → rtc_tools-2.8.0a1}/src/rtctools/data/netcdf.py +16 -15
  193. {rtc_tools-2.7.0.dev2 → rtc_tools-2.8.0a1}/src/rtctools/data/pi.py +5 -2
  194. {rtc_tools-2.7.0.dev2 → rtc_tools-2.8.0a1}/src/rtctools/data/rtc.py +3 -3
  195. rtc_tools-2.8.0a1/src/rtctools/optimization/__init__.py +0 -0
  196. {rtc_tools-2.7.0.dev2 → rtc_tools-2.8.0a1}/src/rtctools/optimization/collocated_integrated_optimization_problem.py +75 -29
  197. {rtc_tools-2.7.0.dev2 → rtc_tools-2.8.0a1}/src/rtctools/optimization/control_tree_mixin.py +9 -6
  198. {rtc_tools-2.7.0.dev2 → rtc_tools-2.8.0a1}/src/rtctools/optimization/csv_lookup_table_mixin.py +5 -3
  199. {rtc_tools-2.7.0.dev2 → rtc_tools-2.8.0a1}/src/rtctools/optimization/csv_mixin.py +3 -0
  200. {rtc_tools-2.7.0.dev2 → rtc_tools-2.8.0a1}/src/rtctools/optimization/goal_programming_mixin.py +11 -5
  201. {rtc_tools-2.7.0.dev2 → rtc_tools-2.8.0a1}/src/rtctools/optimization/goal_programming_mixin_base.py +29 -4
  202. {rtc_tools-2.7.0.dev2 → rtc_tools-2.8.0a1}/src/rtctools/optimization/io_mixin.py +11 -5
  203. {rtc_tools-2.7.0.dev2 → rtc_tools-2.8.0a1}/src/rtctools/optimization/min_abs_goal_programming_mixin.py +9 -3
  204. {rtc_tools-2.7.0.dev2 → rtc_tools-2.8.0a1}/src/rtctools/optimization/modelica_mixin.py +23 -10
  205. {rtc_tools-2.7.0.dev2 → rtc_tools-2.8.0a1}/src/rtctools/optimization/optimization_problem.py +55 -13
  206. {rtc_tools-2.7.0.dev2 → rtc_tools-2.8.0a1}/src/rtctools/optimization/pi_mixin.py +3 -3
  207. {rtc_tools-2.7.0.dev2 → rtc_tools-2.8.0a1}/src/rtctools/optimization/single_pass_goal_programming_mixin.py +9 -3
  208. {rtc_tools-2.7.0.dev2 → rtc_tools-2.8.0a1}/src/rtctools/rtctoolsapp.py +15 -13
  209. rtc_tools-2.8.0a1/src/rtctools/simulation/__init__.py +0 -0
  210. {rtc_tools-2.7.0.dev2 → rtc_tools-2.8.0a1}/src/rtctools/simulation/io_mixin.py +1 -1
  211. {rtc_tools-2.7.0.dev2 → rtc_tools-2.8.0a1}/src/rtctools/simulation/pi_mixin.py +3 -3
  212. {rtc_tools-2.7.0.dev2 → rtc_tools-2.8.0a1}/src/rtctools/simulation/simulation_problem.py +25 -12
  213. {rtc_tools-2.7.0.dev2 → rtc_tools-2.8.0a1}/src/rtctools/util.py +1 -0
  214. rtc_tools-2.8.0a1/src/rtctools/version.py +51 -0
  215. rtc_tools-2.8.0a1/tests/__init__.py +0 -0
  216. rtc_tools-2.8.0a1/tests/data/__init__.py +0 -0
  217. rtc_tools-2.8.0a1/tests/data/data/.gitignore +2 -0
  218. rtc_tools-2.8.0a1/tests/data/data/curve.dat +0 -0
  219. rtc_tools-2.8.0a1/tests/data/data/diag.xml +22 -0
  220. rtc_tools-2.8.0a1/tests/data/data/initial_state_0.csv +2 -0
  221. rtc_tools-2.8.0a1/tests/data/data/initial_state_1.csv +2 -0
  222. rtc_tools-2.8.0a1/tests/data/data/look_up_table_0.csv +8 -0
  223. rtc_tools-2.8.0a1/tests/data/data/look_up_table_1.csv +8 -0
  224. rtc_tools-2.8.0a1/tests/data/data/look_up_table_2.csv +8 -0
  225. rtc_tools-2.8.0a1/tests/data/data/pi_run.xml +8 -0
  226. rtc_tools-2.8.0a1/tests/data/data/rtcDataConfig.xml +10 -0
  227. rtc_tools-2.8.0a1/tests/data/data/rtcParameterConfig.xml +16 -0
  228. rtc_tools-2.8.0a1/tests/data/data/surface.dat +0 -0
  229. rtc_tools-2.8.0a1/tests/data/data/timeseries_export.xml +16 -0
  230. rtc_tools-2.8.0a1/tests/data/data/timeseries_import.bin +0 -0
  231. rtc_tools-2.8.0a1/tests/data/data/timeseries_import.xml +28 -0
  232. rtc_tools-2.8.0a1/tests/data/data/timeseries_import_0.csv +22 -0
  233. rtc_tools-2.8.0a1/tests/data/data/timeseries_import_1.csv +22 -0
  234. rtc_tools-2.8.0a1/tests/data/data/timeseries_import_2.csv +22 -0
  235. rtc_tools-2.8.0a1/tests/data/data/timeseries_import_ensemble.nc +0 -0
  236. rtc_tools-2.8.0a1/tests/data/data/timeseries_import_ensemble.xml +51 -0
  237. rtc_tools-2.8.0a1/tests/data/data/timeseries_import_ensemblesize1_noRealization.nc +0 -0
  238. rtc_tools-2.8.0a1/tests/data/data/timeseries_import_ensemblesize1_withRealization.nc +0 -0
  239. rtc_tools-2.8.0a1/tests/data/data/timeseries_import_neq.xml +24 -0
  240. rtc_tools-2.8.0a1/tests/data/data_path.py +12 -0
  241. rtc_tools-2.8.0a1/tests/data/test_csv.py +56 -0
  242. rtc_tools-2.8.0a1/tests/data/test_data.py +195 -0
  243. rtc_tools-2.8.0a1/tests/data/test_diag.py +24 -0
  244. rtc_tools-2.8.0a1/tests/data/test_interpolate.py +125 -0
  245. rtc_tools-2.8.0a1/tests/data/test_netcdf.py +721 -0
  246. rtc_tools-2.8.0a1/tests/data/test_storage.py +156 -0
  247. rtc_tools-2.8.0a1/tests/data_path.py +12 -0
  248. rtc_tools-2.8.0a1/tests/examples/__init__.py +0 -0
  249. rtc_tools-2.8.0a1/tests/examples/test_examples.py +77 -0
  250. rtc_tools-2.8.0a1/tests/internal/__init__.py +0 -0
  251. rtc_tools-2.8.0a1/tests/internal/test_alias_tools.py +137 -0
  252. rtc_tools-2.8.0a1/tests/optimization/__init__.py +0 -0
  253. rtc_tools-2.8.0a1/tests/optimization/data/.gitignore +3 -0
  254. rtc_tools-2.8.0a1/tests/optimization/data/Model.mo +46 -0
  255. rtc_tools-2.8.0a1/tests/optimization/data/ModelAlgebraic.mo +8 -0
  256. rtc_tools-2.8.0a1/tests/optimization/data/ModelDebugChecks.mo +6 -0
  257. rtc_tools-2.8.0a1/tests/optimization/data/ModelDelay.mo +14 -0
  258. rtc_tools-2.8.0a1/tests/optimization/data/ModelMixedInteger.mo +8 -0
  259. rtc_tools-2.8.0a1/tests/optimization/data/ModelSymbolicParameters.mo +15 -0
  260. rtc_tools-2.8.0a1/tests/optimization/data/ModelWithInitial.mo +50 -0
  261. rtc_tools-2.8.0a1/tests/optimization/data/ModelWithInitialLinear.mo +38 -0
  262. rtc_tools-2.8.0a1/tests/optimization/data/ModelWithLookupTable.mo +4 -0
  263. rtc_tools-2.8.0a1/tests/optimization/data/SingleShootingModel.mo +17 -0
  264. rtc_tools-2.8.0a1/tests/optimization/data/ensemble.csv +3 -0
  265. rtc_tools-2.8.0a1/tests/optimization/data/initial_state.csv +2 -0
  266. rtc_tools-2.8.0a1/tests/optimization/data/lookup_tables/.gitignore +3 -0
  267. rtc_tools-2.8.0a1/tests/optimization/data/lookup_tables/curvefit_options.ini +5 -0
  268. rtc_tools-2.8.0a1/tests/optimization/data/lookup_tables/x_prime.csv +6 -0
  269. rtc_tools-2.8.0a1/tests/optimization/data/member0/.gitignore +2 -0
  270. rtc_tools-2.8.0a1/tests/optimization/data/member0/initial_state.csv +2 -0
  271. rtc_tools-2.8.0a1/tests/optimization/data/member0/parameters.csv +2 -0
  272. rtc_tools-2.8.0a1/tests/optimization/data/member0/timeseries_import.csv +23 -0
  273. rtc_tools-2.8.0a1/tests/optimization/data/member1/.gitignore +2 -0
  274. rtc_tools-2.8.0a1/tests/optimization/data/member1/initial_state.csv +2 -0
  275. rtc_tools-2.8.0a1/tests/optimization/data/member1/parameters.csv +2 -0
  276. rtc_tools-2.8.0a1/tests/optimization/data/member1/timeseries_import.csv +23 -0
  277. rtc_tools-2.8.0a1/tests/optimization/data/multiple_io_mixins/.gitignore +1 -0
  278. rtc_tools-2.8.0a1/tests/optimization/data/multiple_io_mixins/Model.mo +9 -0
  279. rtc_tools-2.8.0a1/tests/optimization/data/multiple_io_mixins/different_ensemble_sizes/ensemble.csv +5 -0
  280. rtc_tools-2.8.0a1/tests/optimization/data/multiple_io_mixins/different_ensemble_sizes/member0/timeseries_import.csv +6 -0
  281. rtc_tools-2.8.0a1/tests/optimization/data/multiple_io_mixins/different_ensemble_sizes/member1/timeseries_import.csv +6 -0
  282. rtc_tools-2.8.0a1/tests/optimization/data/multiple_io_mixins/different_ensemble_sizes/member2/timeseries_import.csv +6 -0
  283. rtc_tools-2.8.0a1/tests/optimization/data/multiple_io_mixins/different_ensemble_sizes/member3/timeseries_import.csv +6 -0
  284. rtc_tools-2.8.0a1/tests/optimization/data/multiple_io_mixins/different_ensemble_sizes/rtcDataConfig.xml +15 -0
  285. rtc_tools-2.8.0a1/tests/optimization/data/multiple_io_mixins/different_ensemble_sizes/rtcParameterConfig.xml +7 -0
  286. rtc_tools-2.8.0a1/tests/optimization/data/multiple_io_mixins/different_ensemble_sizes/timeseries_import.nc +0 -0
  287. rtc_tools-2.8.0a1/tests/optimization/data/multiple_io_mixins/different_ensemble_sizes/timeseries_import.xml +23 -0
  288. rtc_tools-2.8.0a1/tests/optimization/data/multiple_io_mixins/different_initial_date/ensemble.csv +3 -0
  289. rtc_tools-2.8.0a1/tests/optimization/data/multiple_io_mixins/different_initial_date/member0/timeseries_import.csv +6 -0
  290. rtc_tools-2.8.0a1/tests/optimization/data/multiple_io_mixins/different_initial_date/member1/timeseries_import.csv +6 -0
  291. rtc_tools-2.8.0a1/tests/optimization/data/multiple_io_mixins/different_initial_date/rtcDataConfig.xml +15 -0
  292. rtc_tools-2.8.0a1/tests/optimization/data/multiple_io_mixins/different_initial_date/rtcParameterConfig.xml +7 -0
  293. rtc_tools-2.8.0a1/tests/optimization/data/multiple_io_mixins/different_initial_date/timeseries_import.nc +0 -0
  294. rtc_tools-2.8.0a1/tests/optimization/data/multiple_io_mixins/different_initial_date/timeseries_import.xml +43 -0
  295. rtc_tools-2.8.0a1/tests/optimization/data/multiple_io_mixins/different_timestep/ensemble.csv +3 -0
  296. rtc_tools-2.8.0a1/tests/optimization/data/multiple_io_mixins/different_timestep/member0/timeseries_import.csv +6 -0
  297. rtc_tools-2.8.0a1/tests/optimization/data/multiple_io_mixins/different_timestep/member1/timeseries_import.csv +6 -0
  298. rtc_tools-2.8.0a1/tests/optimization/data/multiple_io_mixins/different_timestep/rtcDataConfig.xml +15 -0
  299. rtc_tools-2.8.0a1/tests/optimization/data/multiple_io_mixins/different_timestep/rtcParameterConfig.xml +7 -0
  300. rtc_tools-2.8.0a1/tests/optimization/data/multiple_io_mixins/different_timestep/timeseries_import.nc +0 -0
  301. rtc_tools-2.8.0a1/tests/optimization/data/multiple_io_mixins/different_timestep/timeseries_import.xml +43 -0
  302. rtc_tools-2.8.0a1/tests/optimization/data/multiple_io_mixins/different_values/ensemble.csv +3 -0
  303. rtc_tools-2.8.0a1/tests/optimization/data/multiple_io_mixins/different_values/member0/parameters.csv +2 -0
  304. rtc_tools-2.8.0a1/tests/optimization/data/multiple_io_mixins/different_values/member0/timeseries_import.csv +6 -0
  305. rtc_tools-2.8.0a1/tests/optimization/data/multiple_io_mixins/different_values/member1/parameters.csv +2 -0
  306. rtc_tools-2.8.0a1/tests/optimization/data/multiple_io_mixins/different_values/member1/timeseries_import.csv +6 -0
  307. rtc_tools-2.8.0a1/tests/optimization/data/multiple_io_mixins/different_values/rtcDataConfig.xml +15 -0
  308. rtc_tools-2.8.0a1/tests/optimization/data/multiple_io_mixins/different_values/rtcParameterConfig.xml +7 -0
  309. rtc_tools-2.8.0a1/tests/optimization/data/multiple_io_mixins/different_values/timeseries_import.nc +0 -0
  310. rtc_tools-2.8.0a1/tests/optimization/data/multiple_io_mixins/different_values/timeseries_import.xml +43 -0
  311. rtc_tools-2.8.0a1/tests/optimization/data/one-member-ensemble/ensemble.csv +2 -0
  312. rtc_tools-2.8.0a1/tests/optimization/data/one-member-ensemble/member0/.gitignore +2 -0
  313. rtc_tools-2.8.0a1/tests/optimization/data/one-member-ensemble/member0/initial_state.csv +2 -0
  314. rtc_tools-2.8.0a1/tests/optimization/data/one-member-ensemble/member0/parameters.csv +2 -0
  315. rtc_tools-2.8.0a1/tests/optimization/data/one-member-ensemble/member0/timeseries_import.csv +23 -0
  316. rtc_tools-2.8.0a1/tests/optimization/data/parameters.csv +2 -0
  317. rtc_tools-2.8.0a1/tests/optimization/data/rtcDataConfig.xml +59 -0
  318. rtc_tools-2.8.0a1/tests/optimization/data/rtcParameterConfig.xml +19 -0
  319. rtc_tools-2.8.0a1/tests/optimization/data/rtcParameterConfig_extra.xml +22 -0
  320. rtc_tools-2.8.0a1/tests/optimization/data/timeseries_import.csv +23 -0
  321. rtc_tools-2.8.0a1/tests/optimization/data/timeseries_import.nc +0 -0
  322. rtc_tools-2.8.0a1/tests/optimization/data/timeseries_import.xml +178 -0
  323. rtc_tools-2.8.0a1/tests/optimization/data_path.py +12 -0
  324. rtc_tools-2.8.0a1/tests/optimization/test_control_tree_mixin.py +259 -0
  325. rtc_tools-2.8.0a1/tests/optimization/test_csv_lookuptable_mixin.py +94 -0
  326. rtc_tools-2.8.0a1/tests/optimization/test_csv_mixin.py +127 -0
  327. rtc_tools-2.8.0a1/tests/optimization/test_debug_checks.py +219 -0
  328. rtc_tools-2.8.0a1/tests/optimization/test_delay_expressions.py +97 -0
  329. rtc_tools-2.8.0a1/tests/optimization/test_goal_programming.py +1177 -0
  330. rtc_tools-2.8.0a1/tests/optimization/test_integration.py +457 -0
  331. rtc_tools-2.8.0a1/tests/optimization/test_interpolation.py +444 -0
  332. rtc_tools-2.8.0a1/tests/optimization/test_io_mixin.py +323 -0
  333. rtc_tools-2.8.0a1/tests/optimization/test_linearized_order_goal_programming_mixin.py +160 -0
  334. rtc_tools-2.8.0a1/tests/optimization/test_min_abs_goal_programming.py +158 -0
  335. rtc_tools-2.8.0a1/tests/optimization/test_modelica_mixin.py +679 -0
  336. rtc_tools-2.8.0a1/tests/optimization/test_multiple_io_mixins.py +182 -0
  337. rtc_tools-2.8.0a1/tests/optimization/test_netcdf_mixin.py +219 -0
  338. rtc_tools-2.8.0a1/tests/optimization/test_optimization_problem.py +87 -0
  339. rtc_tools-2.8.0a1/tests/optimization/test_path_extra_variables.py +309 -0
  340. rtc_tools-2.8.0a1/tests/optimization/test_pi_mixin.py +108 -0
  341. rtc_tools-2.8.0a1/tests/optimization/test_planning_and_control_tree_mixin.py +106 -0
  342. rtc_tools-2.8.0a1/tests/optimization/test_planning_mixin.py +94 -0
  343. rtc_tools-2.8.0a1/tests/optimization/test_problem_class_check.py +32 -0
  344. rtc_tools-2.8.0a1/tests/optimization/test_single_pass_goal_programming.py +250 -0
  345. rtc_tools-2.8.0a1/tests/optimization/test_solvers.py +78 -0
  346. rtc_tools-2.8.0a1/tests/optimization/test_timeseries.py +50 -0
  347. rtc_tools-2.8.0a1/tests/optimization/test_vector_constraints_variables.py +789 -0
  348. rtc_tools-2.8.0a1/tests/optimization/test_vector_goals.py +301 -0
  349. rtc_tools-2.8.0a1/tests/simulation/__init__.py +0 -0
  350. rtc_tools-2.8.0a1/tests/simulation/data/.gitignore +2 -0
  351. rtc_tools-2.8.0a1/tests/simulation/data/Model.mo +45 -0
  352. rtc_tools-2.8.0a1/tests/simulation/data/ModelCustomEquation.mo +7 -0
  353. rtc_tools-2.8.0a1/tests/simulation/data/Model_base.mo +10 -0
  354. rtc_tools-2.8.0a1/tests/simulation/data/Model_delay.mo +15 -0
  355. rtc_tools-2.8.0a1/tests/simulation/data/Model_nominal.mo +4 -0
  356. rtc_tools-2.8.0a1/tests/simulation/data/infeasible_initial_value/initial_state.csv +2 -0
  357. rtc_tools-2.8.0a1/tests/simulation/data/infeasible_initial_value/model_infeasible.mo +7 -0
  358. rtc_tools-2.8.0a1/tests/simulation/data/infeasible_initial_value/model_out_of_bounds.mo +5 -0
  359. rtc_tools-2.8.0a1/tests/simulation/data/infeasible_initial_value/model_out_of_sym_bounds.mo +6 -0
  360. rtc_tools-2.8.0a1/tests/simulation/data/infeasible_initial_value/model_with_bounds.mo +5 -0
  361. rtc_tools-2.8.0a1/tests/simulation/data/infeasible_initial_value/model_with_input_series.mo +6 -0
  362. rtc_tools-2.8.0a1/tests/simulation/data/infeasible_initial_value/model_with_sym_ystart.mo +6 -0
  363. rtc_tools-2.8.0a1/tests/simulation/data/infeasible_initial_value/model_with_xstart.mo +5 -0
  364. rtc_tools-2.8.0a1/tests/simulation/data/infeasible_initial_value/model_with_zero_xstart.mo +5 -0
  365. rtc_tools-2.8.0a1/tests/simulation/data/infeasible_initial_value/timeseries_import.csv +3 -0
  366. rtc_tools-2.8.0a1/tests/simulation/data/infeasible_initial_value/timeseries_import_with_x.csv +3 -0
  367. rtc_tools-2.8.0a1/tests/simulation/data/initial_state.csv +2 -0
  368. rtc_tools-2.8.0a1/tests/simulation/data/parameters.csv +2 -0
  369. rtc_tools-2.8.0a1/tests/simulation/data/rtcDataConfig.xml +39 -0
  370. rtc_tools-2.8.0a1/tests/simulation/data/rtcParameterConfig.xml +19 -0
  371. rtc_tools-2.8.0a1/tests/simulation/data/timeseries_import.csv +23 -0
  372. rtc_tools-2.8.0a1/tests/simulation/data/timeseries_import.xml +143 -0
  373. rtc_tools-2.8.0a1/tests/simulation/data_path.py +12 -0
  374. rtc_tools-2.8.0a1/tests/simulation/test_csv_mixin.py +102 -0
  375. rtc_tools-2.8.0a1/tests/simulation/test_io_mixin.py +121 -0
  376. rtc_tools-2.8.0a1/tests/simulation/test_pi_mixin.py +31 -0
  377. rtc_tools-2.8.0a1/tests/simulation/test_problem_class_check.py +32 -0
  378. rtc_tools-2.8.0a1/tests/simulation/test_simulation.py +571 -0
  379. rtc_tools-2.8.0a1/tox-teamcity.ini +17 -0
  380. rtc_tools-2.8.0a1/tox.ini +24 -0
  381. rtc_tools-2.8.0a1/uv.lock +982 -0
  382. rtc_tools-2.8.0a1/xsd/rtcDataConfig.xsd +115 -0
  383. rtc_tools-2.8.0a1/xsd/rtcSharedTypes.xsd +116 -0
  384. rtc_tools-2.7.0.dev2/MANIFEST.in +0 -3
  385. rtc_tools-2.7.0.dev2/PKG-INFO +0 -51
  386. rtc_tools-2.7.0.dev2/pyproject.toml +0 -22
  387. rtc_tools-2.7.0.dev2/setup.cfg +0 -18
  388. rtc_tools-2.7.0.dev2/setup.py +0 -67
  389. rtc_tools-2.7.0.dev2/src/rtc_tools.egg-info/PKG-INFO +0 -51
  390. rtc_tools-2.7.0.dev2/src/rtc_tools.egg-info/SOURCES.txt +0 -58
  391. rtc_tools-2.7.0.dev2/src/rtc_tools.egg-info/dependency_links.txt +0 -1
  392. rtc_tools-2.7.0.dev2/src/rtc_tools.egg-info/entry_points.txt +0 -3
  393. rtc_tools-2.7.0.dev2/src/rtc_tools.egg-info/requires.txt +0 -12
  394. rtc_tools-2.7.0.dev2/src/rtc_tools.egg-info/top_level.txt +0 -1
  395. rtc_tools-2.7.0.dev2/src/rtctools/__init__.py +0 -5
  396. rtc_tools-2.7.0.dev2/src/rtctools/_version.py +0 -21
  397. rtc_tools-2.7.0.dev2/versioneer.py +0 -2277
  398. {rtc_tools-2.7.0.dev2 → rtc_tools-2.8.0a1}/COPYING.LESSER +0 -0
  399. /rtc_tools-2.7.0.dev2/src/rtctools/_internal/__init__.py → /rtc_tools-2.8.0a1/examples/basic/output/.gitignore +0 -0
  400. /rtc_tools-2.7.0.dev2/src/rtctools/optimization/__init__.py → /rtc_tools-2.8.0a1/examples/cascading_channels/output/.gitignore +0 -0
  401. /rtc_tools-2.7.0.dev2/src/rtctools/simulation/__init__.py → /rtc_tools-2.8.0a1/examples/channel_pulse/output/.gitignore +0 -0
  402. {rtc_tools-2.7.0.dev2 → rtc_tools-2.8.0a1}/src/rtctools/_internal/alias_tools.py +0 -0
  403. {rtc_tools-2.7.0.dev2 → rtc_tools-2.8.0a1}/src/rtctools/_internal/caching.py +0 -0
  404. {rtc_tools-2.7.0.dev2 → rtc_tools-2.8.0a1}/src/rtctools/_internal/debug_check_helpers.py +0 -0
  405. {rtc_tools-2.7.0.dev2 → rtc_tools-2.8.0a1}/src/rtctools/data/__init__.py +0 -0
  406. {rtc_tools-2.7.0.dev2 → rtc_tools-2.8.0a1}/src/rtctools/data/csv.py +0 -0
  407. {rtc_tools-2.7.0.dev2 → rtc_tools-2.8.0a1}/src/rtctools/data/interpolation/__init__.py +0 -0
  408. {rtc_tools-2.7.0.dev2 → rtc_tools-2.8.0a1}/src/rtctools/data/interpolation/bspline.py +0 -0
  409. {rtc_tools-2.7.0.dev2 → rtc_tools-2.8.0a1}/src/rtctools/data/interpolation/bspline1d.py +0 -0
  410. {rtc_tools-2.7.0.dev2 → rtc_tools-2.8.0a1}/src/rtctools/data/interpolation/bspline2d.py +0 -0
  411. {rtc_tools-2.7.0.dev2 → rtc_tools-2.8.0a1}/src/rtctools/data/storage.py +0 -0
  412. {rtc_tools-2.7.0.dev2 → rtc_tools-2.8.0a1}/src/rtctools/optimization/homotopy_mixin.py +0 -0
  413. {rtc_tools-2.7.0.dev2 → rtc_tools-2.8.0a1}/src/rtctools/optimization/initial_state_estimation_mixin.py +0 -0
  414. {rtc_tools-2.7.0.dev2 → rtc_tools-2.8.0a1}/src/rtctools/optimization/linearization_mixin.py +0 -0
  415. {rtc_tools-2.7.0.dev2 → rtc_tools-2.8.0a1}/src/rtctools/optimization/linearized_order_goal_programming_mixin.py +0 -0
  416. {rtc_tools-2.7.0.dev2 → rtc_tools-2.8.0a1}/src/rtctools/optimization/netcdf_mixin.py +0 -0
  417. {rtc_tools-2.7.0.dev2 → rtc_tools-2.8.0a1}/src/rtctools/optimization/planning_mixin.py +0 -0
  418. {rtc_tools-2.7.0.dev2 → rtc_tools-2.8.0a1}/src/rtctools/optimization/timeseries.py +0 -0
  419. {rtc_tools-2.7.0.dev2 → rtc_tools-2.8.0a1}/src/rtctools/simulation/csv_mixin.py +0 -0
  420. {rtc_tools-2.7.0.dev2 → rtc_tools-2.8.0a1}/tests/test_case.py +0 -0
@@ -0,0 +1,12 @@
1
+ codecov:
2
+ branch: master
3
+ coverage:
4
+ status:
5
+ project:
6
+ default:
7
+ threshold: 5
8
+ patch:
9
+ default:
10
+ target: 0%
11
+ comment:
12
+ layout: "header, tree"
@@ -0,0 +1,15 @@
1
+ [run]
2
+ branch = True
3
+ source = rtctools
4
+ relative_files = True
5
+
6
+ [report]
7
+ show_missing = true
8
+ exclude_lines =
9
+ pragma: no cover
10
+ raise NotImplementedError
11
+
12
+ [paths]
13
+ source =
14
+ src/rtctools
15
+ */site-packages/rtctools
@@ -0,0 +1,35 @@
1
+ # This file contains revisions to be ignored by git blame.
2
+ # These revisions are expected to be formatting-only changes.
3
+ #
4
+ # Calling `git blame --ignore-revs-file .git-blame-ignore-revs` will
5
+ # tell git blame to ignore changes made by these revisions when assigning
6
+ # assigning blame, as if the change never happened.
7
+ #
8
+ # You can enable this as a default for your local repository by running
9
+ # `git config blame.ignoreRevsFile .git-blame-ignore-revs`
10
+ # This will probably be automatically picked by your IDE
11
+ #
12
+ # Important: if you are switching to the branch without this file,
13
+ # `git blame` will fail with an error
14
+ #
15
+ # Guidelines:
16
+ # - Only large automated refactorings are expected to be included in this file.
17
+ # Do not add new revision just because it feels unimportant
18
+ # - Add a link to the relevant issue/MR
19
+
20
+ # START https://github.com/Deltares/rtc-tools/issues/1536
21
+ 2503c49901bc4a7a3dc86d46b234e8973ed2feb5
22
+ 476aeb27d164cebe3781de7f9a40b04b839a5220
23
+ cf540b1ad8fc39909e6e05e7656901e26daefb62
24
+ c623c053a97506b120ab546aa406b4706f2cf200
25
+ cef7507e09c0f187ad209e949575a04b7204cbe9
26
+ 30868b64e85c56d971cbccb622466a1fe46bcd82
27
+ 8929d6eac903af87ef982566cb07f45369eedda1
28
+ ee870e42deda8974e482e96995c5c136a8cfe07c
29
+ 7908178e50ababa32534d205d62d525049b60dc3
30
+ # END https://github.com/Deltares/rtc-tools/issues/1536
31
+
32
+ # START https://github.com/Deltares/rtc-tools/pull/1652
33
+ 3df9a9ed5dfcbb6855ee8f4a0d22c4dec9f77507
34
+ c4e20c6c8debaa886eba596c468ee5a438bf73dd
35
+ # END https://github.com/Deltares/rtc-tools/pull/1652
@@ -0,0 +1,33 @@
1
+ name: "Setup Python Environment"
2
+ description: "Sets up Python environment with uv package manager"
3
+
4
+ inputs:
5
+ uv-version:
6
+ description: "Version of uv to install"
7
+ required: false
8
+ default: "0.7.9"
9
+ dependency-groups:
10
+ description: "Space-separated list of dependency groups to install (e.g. 'deploy tests')"
11
+ required: false
12
+ default: ""
13
+
14
+ runs:
15
+ using: "composite"
16
+ steps:
17
+ - name: Install uv
18
+ uses: astral-sh/setup-uv@v5
19
+ with:
20
+ version: ${{ inputs.uv-version }}
21
+ enable-cache: true
22
+ cache-dependency-glob: "uv.lock"
23
+
24
+ - name: Install dependencies
25
+ shell: bash
26
+ run: |
27
+ CMD="uv sync --frozen --no-dev"
28
+ if [[ -n "${{ inputs.dependency-groups }}" ]]; then
29
+ for group in ${{ inputs.dependency-groups }}; do
30
+ CMD="$CMD --group $group"
31
+ done
32
+ fi
33
+ $CMD
@@ -0,0 +1,147 @@
1
+ name: deltares/rtc-tools
2
+
3
+ on:
4
+ push:
5
+ workflow_dispatch:
6
+ concurrency:
7
+ group: "${{ github.ref }}"
8
+ cancel-in-progress: true
9
+ # env:
10
+ # PYPI_USER: "${{ secrets.PYPI_USER }}"
11
+ # PYPI_PASSWORD: "${{ secrets.PYPI_PASSWORD }}"
12
+ # CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN}}"
13
+
14
+ jobs:
15
+ style:
16
+ runs-on: ubuntu-latest
17
+ timeout-minutes: 30
18
+ steps:
19
+ - uses: actions/checkout@v4
20
+ - uses: ./.github/actions/setup-python
21
+ with:
22
+ dependency-groups: "style"
23
+ - run: uv run pre-commit run --all-files --show-diff-on-failure
24
+
25
+ build:
26
+ needs: [style]
27
+ runs-on: ubuntu-latest
28
+ container:
29
+ image: python:3.9
30
+ timeout-minutes: 30
31
+ steps:
32
+ - uses: actions/checkout@v4.1.0
33
+ with:
34
+ fetch-depth: 0
35
+ - uses: ./.github/actions/setup-python
36
+ - run: uv build
37
+ - uses: actions/upload-artifact@v4
38
+ if: success()
39
+ with:
40
+ name: "${{ github.job }}"
41
+ retention-days: 7
42
+ path: dist/
43
+
44
+ test-linux:
45
+ needs: build
46
+ runs-on: ubuntu-latest
47
+ container:
48
+ image: python:${{ matrix.version }}
49
+ timeout-minutes: 30
50
+ env:
51
+ TOXENV: py
52
+ strategy:
53
+ matrix:
54
+ version: # Also update sonar-project.properties when updating the python versions.
55
+ - '3.9'
56
+ - '3.10'
57
+ - '3.11'
58
+ - '3.12'
59
+ - '3.13'
60
+ steps:
61
+ - uses: actions/checkout@v4
62
+ - uses: ./.github/actions/setup-python
63
+ with:
64
+ dependency-groups: "tests"
65
+ - run: uv run tox -vv
66
+
67
+ coverage:
68
+ needs: build
69
+ runs-on: ubuntu-latest
70
+ container:
71
+ image: python:3.9
72
+ timeout-minutes: 30
73
+ env:
74
+ TOXENV: coverage
75
+ steps:
76
+ - uses: actions/checkout@v4.1.0
77
+ - uses: ./.github/actions/setup-python
78
+ with:
79
+ dependency-groups: "tests"
80
+ - run: uv run tox -vv
81
+ - name: Upload coverage report
82
+ uses: actions/upload-artifact@v4
83
+ if: success()
84
+ with:
85
+ name: coverage-report
86
+ retention-days: 7
87
+ path: coverage.xml
88
+
89
+ sonar:
90
+ needs: [coverage]
91
+ runs-on: ubuntu-latest
92
+ steps:
93
+ - uses: actions/checkout@v4
94
+ with:
95
+ fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis.
96
+ - name: Download coverage report
97
+ uses: actions/download-artifact@v4
98
+ with:
99
+ name: coverage-report
100
+ - name: SonarQube Scan
101
+ uses: SonarSource/sonarqube-scan-action@v5
102
+ env:
103
+ SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
104
+
105
+ examples-linux:
106
+ needs: build
107
+ runs-on: ubuntu-latest
108
+ container:
109
+ image: python:${{ matrix.version }}
110
+ if: startsWith(github.ref, 'refs/tags')
111
+ timeout-minutes: 30
112
+ env:
113
+ TOXENV: examples
114
+ strategy:
115
+ matrix:
116
+ version:
117
+ - '3.9'
118
+ - '3.10'
119
+ - '3.11'
120
+ - '3.12'
121
+ - '3.13'
122
+ steps:
123
+ - uses: actions/checkout@v4.1.0
124
+ - uses: ./.github/actions/setup-python
125
+ with:
126
+ dependency-groups: "tests"
127
+ - run: uv run tox -vv
128
+
129
+ deploy:
130
+ needs: [test-linux, coverage, examples-linux]
131
+ runs-on: ubuntu-latest
132
+ if: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/2.') }}
133
+ permissions:
134
+ id-token: write # Required for OIDC PyPI publishing
135
+ contents: read
136
+ steps:
137
+ - name: Check out code
138
+ uses: actions/checkout@v4
139
+
140
+ - name: Set up Python and uv
141
+ uses: ./.github/actions/setup-python
142
+
143
+ - name: Build package
144
+ run: uv build
145
+
146
+ - name: Publish package distributions to PyPI
147
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,32 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__
3
+ *.py[cod]
4
+
5
+ # C extensions
6
+ *.c
7
+ *.so
8
+
9
+ # Distribution & Packaging
10
+ .eggs
11
+ build
12
+ dist
13
+ src/*.egg-info
14
+
15
+ # Testing & Coverage
16
+ .pytest_cache
17
+ .tox
18
+ .coverage
19
+
20
+ # Example output
21
+ examples/**/output/**/*.csv
22
+
23
+ # Model caches
24
+ *.pymoca_cache
25
+
26
+ # Editors
27
+ .idea
28
+ .ipynb_checkpoints
29
+ .vscode
30
+
31
+ # Virtual environment
32
+ .venv
@@ -0,0 +1,13 @@
1
+ exclude: |
2
+ (?x)^(
3
+ src/rtctools/_version\.py|
4
+ src/rtctools/data/interpolation/__init__\.py|
5
+ versioneer.py
6
+ )$
7
+ repos:
8
+ - repo: https://github.com/astral-sh/ruff-pre-commit
9
+ rev: v0.9.4
10
+ hooks:
11
+ - id: ruff
12
+ args: [--fix, --exit-non-zero-on-fix]
13
+ - id: ruff-format
@@ -0,0 +1,26 @@
1
+ # .readthedocs.yaml
2
+ # Read the Docs configuration file
3
+ # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
4
+
5
+ # Required
6
+ version: 2
7
+
8
+ # Set the version of Python and other tools you might need
9
+ build:
10
+ os: ubuntu-22.04
11
+ tools:
12
+ python: "3.11"
13
+ jobs:
14
+ pre_create_environment:
15
+ - asdf plugin add uv
16
+ - asdf install uv latest
17
+ - asdf global uv latest
18
+ create_environment:
19
+ - uv venv "${READTHEDOCS_VIRTUALENV_PATH}"
20
+ install:
21
+ - UV_PROJECT_ENVIRONMENT="${READTHEDOCS_VIRTUALENV_PATH}" uv sync --frozen --group docs
22
+
23
+
24
+ # Build documentation in the docs/ directory with Sphinx
25
+ sphinx:
26
+ configuration: doc/conf.py
@@ -0,0 +1,10 @@
1
+ Jorn Baayen
2
+ Joris Bentvelsen
3
+ Olav van Duin
4
+ Sjoerd Geevers
5
+ Klaudia Horváth
6
+ Ailbhe Mitchell
7
+ Teresa Piovesan
8
+ Matthijs den Toom
9
+ Jesse VanderWees
10
+ Tjerk Vreeken
@@ -0,0 +1,172 @@
1
+ # Contributing to RTC-Tools 2
2
+
3
+ There are many ways you can contribute to RTC-Tools, such as:
4
+
5
+ - **Reporting issues**: If you encounter any bugs, errors, or unexpected behavior while using RTC-Tools,
6
+ please report them on our [issue tracker](https://github.com/deltares/rtc-tools/issues).
7
+ Please follow the issue template and provide as much information as possible to help us reproduce and fix the issue.
8
+ - **Suggesting features**: If you have any ideas or suggestions for new features or improvements,
9
+ please share them on our [issue tracker](https://github.com/deltares/rtc-tools/issues).
10
+ Please use the appropriate category and tag for your topic and explain your motivation and use case clearly.
11
+ - **Submitting merge requests**: If you want to contribute code or documentation to RTC-Tools,
12
+ please fork the repository and create a merge request.
13
+ Please write docstrings for your functions and classes and make sure your changes pass the tests and checks before submitting.
14
+ Please also add a brief description of your changes and reference any related issues or discussions.
15
+ - **Improving documentation**: If you find any errors, typos, or inconsistencies in the documentation,
16
+ or if you want to add more examples, tutorials, or explanations,
17
+ please feel free to edit the documentation files in the docs folder and submit a merge request.
18
+ Please follow the [Sphinx syntax and style guide](https://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html) for writing documentation.
19
+ - **Reviewing merge requests**: If you are familiar with RTC-Tools and want to help us maintain the quality and consistency of the code and documentation,
20
+ please review the open merge requests and provide constructive feedback and suggestions.
21
+ - **Testing new releases**: If you want to help us test the new features and bug fixes before they are officially released,
22
+ please install the latest development version of RTC-Tools from the [GitHub repository](https://github.com/deltares/rtc-tools)
23
+ and report any issues or feedback on the [issue tracker](https://github.com/deltares/rtc-tools/issues).
24
+
25
+ ## Guidelines for creating issues
26
+ 1. **Title**: Provide a concise and informative title. The title should summarize the problem.
27
+ 2. **Description**: Describe the issue in detail. Include steps to reproduce the issue, expected behavior, and actual behavior.
28
+ 3. **Labels**: Use labels to categorize the issue. This helps in prioritizing and resolving issues.
29
+ 4. **Screenshots**: If applicable, add screenshots to help explain the problem.
30
+ 5. **Environment**: Mention the version of RTC-Tools, Python and external packages you're using (CasADi, Pymoca, numpy), along with relevant details about your operating system.
31
+
32
+
33
+ ## Guidelines for creating merge requests
34
+ 1. **Identify or create issue**: Before making any changes,
35
+ please open an issue following the guidelines above,
36
+ or comment on an existing one in the
37
+ [issue tracker](https://github.com/deltares/rtc-tools/issues)
38
+ to discuss your ideas with the maintainers.
39
+ This will help us avoid duplication of work
40
+ and ensure that your contribution aligns with the goals of the project.
41
+ 2. **Branch**: Create a new branch for each merge request. The branch name should be descriptive and reflect the changes being made.
42
+ 3. **Commit**: Please make your commits following the guidelines in the [Commits and Commit Messages](#commits-and-commit-messages) section below.
43
+ 4. **Write tests**: If possible, write tests that cover your changes, and add them to the `tests` folder.
44
+ This will help ensure that your changes result in the desired behavior and that functionalities will not accidently break in the future.
45
+ 5. **Documentation**: Please also update the documentation if necessary and add examples to the `examples` folder.
46
+ 6. **Create merge request**: Mention the corresponding issue from the [issue tracker](https://github.com/deltares/rtc-tools/issues).
47
+ Describe what changes you've made, why you've made them, and how they address the issue at hand.
48
+ 7. **Code review**: Request code review from your peers. Address any comments or suggestions they might have.
49
+
50
+
51
+ ## Commits and Commit Messages
52
+
53
+ Each commit ideally satisfies the following:
54
+
55
+ - Each commit has a clear and single purpose.
56
+ - After each commit, all unit tests should still pass.
57
+
58
+ Commit messages should have the following structure:
59
+
60
+ ```text
61
+ <scope>: <short description>
62
+
63
+ <complete description>
64
+ ```
65
+
66
+ - scope: explains which part of the code is affected, e.g.:
67
+ - optimization (only affects the optimization part)
68
+ - homotopy_mixin (only affects the homotopy_mixin module)
69
+ - tests (only affects the tests)
70
+ - doc (only affects the documentation)
71
+ - short description: describes what is changed in the commit with a single sentence.
72
+ - complete description: explain in detail what is done in the commit and why.
73
+ This can take up multiple paragraphs.
74
+
75
+
76
+ ## Setting up a development environment
77
+
78
+ To set up your development environment, you will need:
79
+
80
+ - Python 3.9 or higher (up to 3.13)
81
+ - Git
82
+
83
+ You can clone the repository and install it from source:
84
+
85
+ ```bash
86
+ git clone https://github.com/Deltares/RTC-Tools.git
87
+ cd RTC-Tools
88
+ uv sync
89
+ ```
90
+
91
+ To ensure that your code meets our standards, we recommend using pre-commit.
92
+ Run the following command to set up the pre-commit hook:
93
+ ```bash
94
+ pre-commit install
95
+ ```
96
+ . This will
97
+ automatically check your code for formatting and linting issues before each
98
+ commit.
99
+
100
+
101
+ To run the tests:
102
+
103
+ ```bash
104
+ pytest tests
105
+ ```
106
+
107
+ To build the documentation:
108
+
109
+ ```bash
110
+ cd doc
111
+ make html
112
+ ```
113
+
114
+ ## Version numbering and release cycle
115
+
116
+ For version numbers we use the guidelines described in <https://semver.org>:
117
+
118
+ > Given a version number MAJOR.MINOR.PATCH, increment the:
119
+ >
120
+ > 1. MAJOR version when you make incompatible API changes
121
+ > 2. MINOR version when you add functionality in a backward compatible manner
122
+ > 3. PATCH version when you make backward compatible bug fixes
123
+ >
124
+ > Additional labels for pre-release and build metadata are available
125
+ > as extensions to the MAJOR.MINOR.PATCH format.
126
+
127
+ The development of a new MINOR version in RTC-Tools consists of four stages:
128
+
129
+ 1. Alpha (a): Version that is not yet feature complete and may contain bugs.
130
+ Each alpha release can either fix bugs or add new features.
131
+ 2. Beta (b): Version that is feature complete but is likely to contain bugs.
132
+ After a beta version has been created, no new features can be added anymore.
133
+ A beta version is tested more thoroughly.
134
+ 3. Release candidate (rc): Version that has been tested through the beta versions releases
135
+ and can now be tested as if it were the stable release.
136
+ If bugs still pop up, new RC versions can be created to fix them.
137
+ Additions are allowed but should be code-unrelated,
138
+ such as changes to the documentation required for the release.
139
+ 4. Stable release: Final version that has passed all tests.
140
+
141
+ There can be multiple alpha-, beta-, and rc-versions,
142
+ but we should not go back to a previous stage.
143
+
144
+ An example of a release sequence is:
145
+
146
+ - 2.6.0a1 Add a feature.
147
+ - 2.6.0a2 Add another feature and fix a bug.
148
+ - 2.6.0b1 First beta release.
149
+ - 2.6.0b2 Fixed a bug.
150
+ - 2.6.0b3 Fixed another bug.
151
+ - 2.6.0rc1 First release candidate after having tested thoroughly.
152
+ - 2.6.0rc2 Fixed a bug that did not show up in the standard tests.
153
+ - 2.6.0 **Stable release**.
154
+ No changes were made after last release candidate.
155
+ - 2.6.1 Fixed a bug.
156
+ - 2.6.2 Fixed another bug.
157
+
158
+ If we start with a new release cycle for X.Y+1,
159
+ and still want to fix a bug for the previous version X.Y,
160
+ we create a separate branch `maintenance/X.Y` where we add patches for X.Y.
161
+
162
+ ## Release Notes
163
+
164
+ Before creating a release, make sure that the release notes are updated in
165
+ [RELEASE_NOTES.md](RELEASE_NOTES.md).
166
+
167
+
168
+ ## Contact
169
+
170
+ If you have any questions or comments about RTC-Tools, please contact us at rtctools@deltares.nl.
171
+
172
+ We hope you enjoy using and contributing to RTC-Tools!