sbmlsim 0.8.2__tar.gz → 0.8.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (658) hide show
  1. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/.bumpversion.toml +1 -1
  2. sbmlsim-0.8.4/.github/actions/setup/action.yml +50 -0
  3. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/.github/pull_request_template.md +1 -1
  4. sbmlsim-0.8.4/.github/workflows/ci-cd.yml +292 -0
  5. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/.github/workflows/docs.yml +6 -15
  6. sbmlsim-0.8.4/.github/workflows/lint.yml +58 -0
  7. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/.github/workflows/testsuite-pin.yml +6 -15
  8. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/.pre-commit-config.yaml +1 -1
  9. sbmlsim-0.8.4/.zenodo.json +33 -0
  10. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/CITATION.cff +2 -2
  11. sbmlsim-0.8.4/CLAUDE.md +81 -0
  12. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/PKG-INFO +8 -11
  13. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/README.md +4 -4
  14. sbmlsim-0.8.4/docs/api/fit.petab_v2.benchmark.md +1 -0
  15. sbmlsim-0.8.4/docs/api/fit.petab_v2.testsuite.md +1 -0
  16. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/index.md +21 -22
  17. sbmlsim-0.8.4/docs/api/model.symbols.md +3 -0
  18. sbmlsim-0.8.4/docs/api/sciml.formula.md +3 -0
  19. sbmlsim-0.8.4/docs/api/simulation.definition.md +3 -0
  20. sbmlsim-0.8.4/docs/api/simulator.executor.md +3 -0
  21. sbmlsim-0.8.4/docs/api/simulator.formula.md +3 -0
  22. sbmlsim-0.8.4/docs/api/simulator.plan.md +3 -0
  23. sbmlsim-0.8.4/docs/api/testsuite.baseline.md +1 -0
  24. sbmlsim-0.8.4/docs/api/testsuite.submission.md +3 -0
  25. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/data.md +18 -9
  26. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/development.md +12 -14
  27. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/experiments.md +13 -14
  28. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/fitting.md +7 -125
  29. sbmlsim-0.8.4/docs/identifiability.md +123 -0
  30. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/index.md +27 -17
  31. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/installation.md +5 -6
  32. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/models.md +2 -14
  33. sbmlsim-0.8.4/docs/petab.md +166 -0
  34. sbmlsim-0.8.4/docs/petab_benchmark.md +53 -0
  35. sbmlsim-0.8.4/docs/petab_sciml.md +80 -0
  36. sbmlsim-0.8.4/docs/petab_testsuite.md +46 -0
  37. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/references.md +5 -12
  38. sbmlsim-0.8.4/docs/scans.md +123 -0
  39. sbmlsim-0.8.4/docs/sciml_testsuite.md +43 -0
  40. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/sensitivity.md +2 -2
  41. sbmlsim-0.8.4/docs/simulation.md +162 -0
  42. sbmlsim-0.8.4/docs/superpowers/plans/2026-10-07-simulation-engine-phase1.md +1411 -0
  43. sbmlsim-0.8.4/docs/superpowers/plans/2026-10-07-simulation-engine-phase2.md +93 -0
  44. sbmlsim-0.8.4/docs/superpowers/plans/2026-10-08-core-cleanup.md +1041 -0
  45. sbmlsim-0.8.4/docs/superpowers/specs/2026-10-07-simulation-engine-design.md +239 -0
  46. sbmlsim-0.8.4/docs/superpowers/specs/2026-10-08-core-cleanup-design.md +85 -0
  47. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/testsuite.md +1 -1
  48. sbmlsim-0.8.4/docs/testsuites.md +12 -0
  49. sbmlsim-0.8.4/docs/units.md +77 -0
  50. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/README.md +2 -6
  51. sbmlsim-0.8.4/examples/comparison/diff/example_1.json +12 -0
  52. sbmlsim-0.8.4/examples/comparison/diff/example_2.json +14 -0
  53. sbmlsim-0.8.4/examples/comparison/diff/example_3.json +14 -0
  54. sbmlsim-0.8.4/examples/comparison/diff/example_4.json +14 -0
  55. sbmlsim-0.8.4/examples/comparison/diff/example_5.json +16 -0
  56. sbmlsim-0.8.4/examples/comparison/diff/example_6.json +31 -0
  57. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/comparison/diff_example.py +9 -4
  58. sbmlsim-0.8.4/examples/comparison/example_comparison.py +105 -0
  59. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/comparison/simulate_amici.py +4 -9
  60. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/comparison/simulate_copasi.py +4 -1
  61. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/comparison/simulate_roadrunner.py +6 -4
  62. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/curve_types/experiment.py +23 -43
  63. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/demo/demo.py +49 -60
  64. sbmlsim-0.8.4/examples/glucose/experiments/dose_response.py +204 -0
  65. sbmlsim-0.8.4/examples/hctz_fitting/experiments/base_experiment.py +151 -0
  66. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/hctz_fitting/experiments/metadata.py +5 -0
  67. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/hctz_fitting/experiments/studies/beermann1976.py +44 -31
  68. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/hctz_fitting/experiments/studies/patel1984.py +30 -24
  69. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/hctz_fitting/experiments/studies/weir1998.py +30 -40
  70. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/initial_assignment/initial_assignment.py +42 -42
  71. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/model_sensitivity.py +14 -18
  72. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/petab/Boehm_JProteomeRes2014/README.md +1 -1
  73. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/petab/benchmark.py +4 -3
  74. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/repressilator/repressilator.py +28 -39
  75. sbmlsim-0.8.4/examples/repressilator/repressilator_scans.py +183 -0
  76. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/scan.py +15 -30
  77. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/sciml/neural_ode/experiment.py +21 -12
  78. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/sensitivity/sensitivity_example.py +41 -9
  79. sbmlsim-0.8.4/examples/sensitivity/simple_chain.py +65 -0
  80. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/sensitivity/simple_chain.xml +3 -27
  81. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/timecourse.py +21 -26
  82. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/units.py +17 -23
  83. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/pyproject.toml +12 -10
  84. sbmlsim-0.8.4/release-notes/0.8.3.md +24 -0
  85. sbmlsim-0.8.4/release-notes/0.8.4.md +81 -0
  86. sbmlsim-0.8.4/scripts/petab_benchmark.py +210 -0
  87. sbmlsim-0.8.4/scripts/petab_testsuite.py +120 -0
  88. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/scripts/sciml_testsuite.py +10 -61
  89. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/scripts/testsuite.py +13 -78
  90. sbmlsim-0.8.4/src/sbmlsim/__init__.py +16 -0
  91. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/data.py +161 -54
  92. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/experiment/experiment.py +43 -64
  93. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/experiment/runner.py +5 -4
  94. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/fit/derived.py +19 -15
  95. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/fit/helpers.py +0 -21
  96. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/fit/objects.py +337 -7
  97. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/fit/optimization.py +458 -129
  98. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/fit/petab_v2/__init__.py +10 -1
  99. sbmlsim-0.8.4/src/sbmlsim/fit/petab_v2/benchmark.py +743 -0
  100. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/fit/petab_v2/export.py +160 -138
  101. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/fit/petab_v2/extension.py +83 -6
  102. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/fit/petab_v2/gaps.py +30 -43
  103. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/fit/petab_v2/likelihood.py +278 -94
  104. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/fit/petab_v2/reader.py +468 -286
  105. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/fit/petab_v2/sciml.py +1 -1
  106. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/fit/petab_v2/sciml_export.py +1 -1
  107. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/fit/petab_v2/symbols.py +90 -0
  108. sbmlsim-0.8.4/src/sbmlsim/fit/petab_v2/testsuite.py +554 -0
  109. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/fit/result.py +1 -25
  110. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/fit/runner.py +70 -60
  111. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/model/__init__.py +0 -2
  112. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/model/model.py +21 -12
  113. sbmlsim-0.8.4/src/sbmlsim/model/model_resources.py +68 -0
  114. sbmlsim-0.8.4/src/sbmlsim/model/model_roadrunner.py +704 -0
  115. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/model/provenance.py +3 -5
  116. sbmlsim-0.8.4/src/sbmlsim/model/symbols.py +320 -0
  117. sbmlsim-0.8.4/src/sbmlsim/plot/padding.py +63 -0
  118. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/plot/plotting.py +0 -35
  119. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/plot/serialization_matplotlib.py +34 -42
  120. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/plot/serialization_plotly.py +14 -10
  121. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/report/experiment_report.py +2 -3
  122. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/result/timecourse.py +1 -1
  123. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/result/xresult.py +173 -109
  124. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/sciml/compiler.py +1 -1
  125. sbmlsim-0.8.2/src/sbmlsim/mathml.py → sbmlsim-0.8.4/src/sbmlsim/sciml/formula.py +6 -206
  126. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/sciml/hybridization.py +1 -1
  127. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/sensitivity/analysis.py +77 -47
  128. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/sensitivity/plots.py +8 -5
  129. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/sensitivity/sensitivity_fast.py +5 -0
  130. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/sensitivity/sensitivity_local.py +5 -0
  131. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/sensitivity/sensitivity_morris.py +6 -1
  132. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/sensitivity/sensitivity_sampling.py +10 -4
  133. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/sensitivity/sensitivity_sobol.py +5 -0
  134. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/serialization.py +0 -8
  135. sbmlsim-0.8.4/src/sbmlsim/simulation/__init__.py +13 -0
  136. sbmlsim-0.8.4/src/sbmlsim/simulation/definition.py +441 -0
  137. sbmlsim-0.8.4/src/sbmlsim/simulation/range.py +74 -0
  138. sbmlsim-0.8.4/src/sbmlsim/simulation/scan.py +85 -0
  139. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/simulation/sensitivity.py +27 -75
  140. sbmlsim-0.8.4/src/sbmlsim/simulator/executor.py +373 -0
  141. sbmlsim-0.8.4/src/sbmlsim/simulator/formula.py +115 -0
  142. sbmlsim-0.8.4/src/sbmlsim/simulator/plan.py +415 -0
  143. sbmlsim-0.8.4/src/sbmlsim/simulator/simulation_serial.py +158 -0
  144. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/testsuite/__init__.py +5 -2
  145. sbmlsim-0.8.4/src/sbmlsim/testsuite/baseline.py +123 -0
  146. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/testsuite/runner.py +49 -18
  147. sbmlsim-0.8.4/src/sbmlsim/testsuite/submission.py +110 -0
  148. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/units.py +246 -110
  149. sbmlsim-0.8.4/src/sbmlsim/utils.py +104 -0
  150. sbmlsim-0.8.4/tests/conftest.py +117 -0
  151. sbmlsim-0.8.4/tests/data/benchmark_baseline.json +35 -0
  152. sbmlsim-0.8.4/tests/data/petab_baseline.json +6 -0
  153. sbmlsim-0.8.4/tests/docs/test_docs_code.py +38 -0
  154. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/examples/test_example_scripts.py +14 -8
  155. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/experiment/test_experiment_examples.py +0 -3
  156. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/experiment/test_experiment_run.py +2 -2
  157. sbmlsim-0.8.4/tests/experiment/test_model_changes_merge.py +72 -0
  158. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/fit/conftest.py +52 -7
  159. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/fit/test_cli.py +40 -10
  160. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/fit/test_derived_changes.py +19 -12
  161. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/fit/test_fit.py +243 -8
  162. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/fit/test_helpers.py +0 -9
  163. sbmlsim-0.8.4/tests/fit/test_initial_assignment_parameter.py +181 -0
  164. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/fit/test_mapping_kinds.py +0 -13
  165. sbmlsim-0.8.4/tests/fit/test_observable_model.py +202 -0
  166. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/fit/test_parameter_mapping.py +0 -67
  167. sbmlsim-0.8.4/tests/fit/test_petab_benchmark.py +90 -0
  168. sbmlsim-0.8.4/tests/fit/test_petab_benchmark_problems.py +302 -0
  169. sbmlsim-0.8.4/tests/fit/test_petab_benchmark_script.py +71 -0
  170. sbmlsim-0.8.4/tests/fit/test_petab_testsuite.py +108 -0
  171. sbmlsim-0.8.4/tests/fit/test_petab_testsuite_cases.py +238 -0
  172. sbmlsim-0.8.4/tests/fit/test_petab_testsuite_script.py +89 -0
  173. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/fit/test_petab_v2.py +16 -14
  174. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/fit/test_petab_v2_definition.py +139 -12
  175. sbmlsim-0.8.4/tests/fit/test_petab_v2_dosing.py +231 -0
  176. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/fit/test_petab_v2_likelihood.py +101 -8
  177. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/fit/test_petab_v2_noise.py +29 -13
  178. sbmlsim-0.8.4/tests/fit/test_petab_v2_reader.py +699 -0
  179. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/fit/test_petab_v2_symbols.py +62 -0
  180. sbmlsim-0.8.4/tests/fit/test_petab_v2_versions.py +192 -0
  181. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/fit/test_predictions.py +1 -3
  182. sbmlsim-0.8.4/tests/fit/test_prior.py +83 -0
  183. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/fit/test_report.py +6 -1
  184. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/fit/test_robustness.py +28 -57
  185. sbmlsim-0.8.4/tests/model/test_model_parameters.py +32 -0
  186. sbmlsim-0.8.4/tests/model/test_model_roadrunner_init.py +389 -0
  187. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/model/test_provenance.py +0 -22
  188. sbmlsim-0.8.4/tests/model/test_symbols.py +59 -0
  189. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/models/test_model_roadrunner.py +13 -0
  190. sbmlsim-0.8.4/tests/plot/test_padding.py +23 -0
  191. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/plot/test_plotting.py +3 -2
  192. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/plot/test_serialization_matplotlib.py +36 -2
  193. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/report/test_experiment_report.py +1 -1
  194. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/result/test_timecourse.py +17 -50
  195. sbmlsim-0.8.4/tests/result/test_xresult.py +112 -0
  196. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/sciml/experiment.py +3 -6
  197. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/sciml/test_compiler.py +28 -4
  198. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/sciml/test_export.py +9 -12
  199. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/sciml/test_fit.py +15 -7
  200. sbmlsim-0.8.2/tests/test_mathml_formula.py → sbmlsim-0.8.4/tests/sciml/test_formula.py +2 -3
  201. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/sciml/test_reader.py +21 -11
  202. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/sciml/test_script.py +3 -2
  203. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/sensitivity/test_analysis.py +71 -2
  204. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/sensitivity/test_sensitivity_example.py +58 -0
  205. sbmlsim-0.8.4/tests/simulation/test_definition.py +139 -0
  206. sbmlsim-0.8.4/tests/simulation/test_scan_definition.py +57 -0
  207. sbmlsim-0.8.4/tests/simulation/test_simulation.py +70 -0
  208. sbmlsim-0.8.4/tests/simulator/models.py +66 -0
  209. sbmlsim-0.8.4/tests/simulator/test_executor.py +350 -0
  210. sbmlsim-0.8.4/tests/simulator/test_formula.py +32 -0
  211. sbmlsim-0.8.4/tests/simulator/test_plan.py +205 -0
  212. sbmlsim-0.8.4/tests/simulator/test_simulator_serial.py +60 -0
  213. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/test_data.py +56 -11
  214. sbmlsim-0.8.4/tests/test_data_function.py +71 -0
  215. sbmlsim-0.8.4/tests/test_imports.py +26 -0
  216. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/test_sensitivity.py +34 -7
  217. sbmlsim-0.8.4/tests/test_units.py +263 -0
  218. sbmlsim-0.8.4/tests/test_utils.py +110 -0
  219. sbmlsim-0.8.4/tests/testsuite/test_runner.py +120 -0
  220. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tox.ini +20 -17
  221. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/zensical.toml +30 -15
  222. sbmlsim-0.8.2/.github/workflows/ci-cd.yml +0 -184
  223. sbmlsim-0.8.2/.github/workflows/ruff.yml +0 -37
  224. sbmlsim-0.8.2/.github/workflows/ty.yml +0 -45
  225. sbmlsim-0.8.2/.zenodo.json +0 -34
  226. sbmlsim-0.8.2/CLAUDE.md +0 -76
  227. sbmlsim-0.8.2/docs/api/fit.petab_v2.observables.md +0 -3
  228. sbmlsim-0.8.2/docs/api/mathml.md +0 -3
  229. sbmlsim-0.8.2/docs/api/model.model_change.md +0 -3
  230. sbmlsim-0.8.2/docs/api/result.datagenerator.md +0 -3
  231. sbmlsim-0.8.2/docs/api/result.report.md +0 -3
  232. sbmlsim-0.8.2/docs/api/simulation.algorithm.md +0 -3
  233. sbmlsim-0.8.2/docs/api/simulation.base.md +0 -3
  234. sbmlsim-0.8.2/docs/api/simulation.calculation.md +0 -3
  235. sbmlsim-0.8.2/docs/api/simulation.change.md +0 -3
  236. sbmlsim-0.8.2/docs/api/simulation.simulation.md +0 -3
  237. sbmlsim-0.8.2/docs/api/simulation.timecourse.md +0 -3
  238. sbmlsim-0.8.2/docs/petab.md +0 -259
  239. sbmlsim-0.8.2/docs/scans.md +0 -100
  240. sbmlsim-0.8.2/docs/simulation.md +0 -131
  241. sbmlsim-0.8.2/docs/units.md +0 -82
  242. sbmlsim-0.8.2/examples/comparison/diff/example_1.json +0 -13
  243. sbmlsim-0.8.2/examples/comparison/diff/example_2.json +0 -15
  244. sbmlsim-0.8.2/examples/comparison/diff/example_3.json +0 -15
  245. sbmlsim-0.8.2/examples/comparison/diff/example_4.json +0 -15
  246. sbmlsim-0.8.2/examples/comparison/diff/example_5.json +0 -17
  247. sbmlsim-0.8.2/examples/comparison/diff/example_6.json +0 -33
  248. sbmlsim-0.8.2/examples/comparison/example_comparison.py +0 -117
  249. sbmlsim-0.8.2/examples/datagenerator.py +0 -73
  250. sbmlsim-0.8.2/examples/glucose/DoseResponseExperiment.md +0 -286
  251. sbmlsim-0.8.2/examples/glucose/experiments/dose_response.py +0 -269
  252. sbmlsim-0.8.2/examples/glucose/index.md +0 -6
  253. sbmlsim-0.8.2/examples/hctz_fitting/experiments/base_experiment.py +0 -307
  254. sbmlsim-0.8.2/examples/interpolation/__init__.py +0 -1
  255. sbmlsim-0.8.2/examples/interpolation/interpolation.py +0 -413
  256. sbmlsim-0.8.2/examples/interpolation/interpolation_example.py +0 -60
  257. sbmlsim-0.8.2/examples/julia/julia.md +0 -12
  258. sbmlsim-0.8.2/examples/julia/juliacall_example.py +0 -9
  259. sbmlsim-0.8.2/examples/model_change.py +0 -147
  260. sbmlsim-0.8.2/examples/repressilator/repressilator_scans.py +0 -229
  261. sbmlsim-0.8.2/examples/sensitivity/simple_chain.md +0 -36
  262. sbmlsim-0.8.2/examples/sensitivity/simple_chain.py +0 -85
  263. sbmlsim-0.8.2/src/sbmlsim/__init__.py +0 -10
  264. sbmlsim-0.8.2/src/sbmlsim/fit/petab_v2/observables.py +0 -134
  265. sbmlsim-0.8.2/src/sbmlsim/model/model_change.py +0 -51
  266. sbmlsim-0.8.2/src/sbmlsim/model/model_resources.py +0 -160
  267. sbmlsim-0.8.2/src/sbmlsim/model/model_roadrunner.py +0 -342
  268. sbmlsim-0.8.2/src/sbmlsim/result/datagenerator.py +0 -97
  269. sbmlsim-0.8.2/src/sbmlsim/result/report.py +0 -42
  270. sbmlsim-0.8.2/src/sbmlsim/simulation/__init__.py +0 -14
  271. sbmlsim-0.8.2/src/sbmlsim/simulation/algorithm.py +0 -73
  272. sbmlsim-0.8.2/src/sbmlsim/simulation/base.py +0 -77
  273. sbmlsim-0.8.2/src/sbmlsim/simulation/calculation.py +0 -232
  274. sbmlsim-0.8.2/src/sbmlsim/simulation/change.py +0 -51
  275. sbmlsim-0.8.2/src/sbmlsim/simulation/range.py +0 -301
  276. sbmlsim-0.8.2/src/sbmlsim/simulation/scan.py +0 -185
  277. sbmlsim-0.8.2/src/sbmlsim/simulation/simulation.py +0 -133
  278. sbmlsim-0.8.2/src/sbmlsim/simulation/timecourse.py +0 -248
  279. sbmlsim-0.8.2/src/sbmlsim/simulator/simulation_serial.py +0 -264
  280. sbmlsim-0.8.2/src/sbmlsim/task/task_new.py +0 -74
  281. sbmlsim-0.8.2/src/sbmlsim/utils.py +0 -71
  282. sbmlsim-0.8.2/tests/conftest.py +0 -59
  283. sbmlsim-0.8.2/tests/data/data/numlData1D.xml +0 -113
  284. sbmlsim-0.8.2/tests/data/data/numlData2D.xml +0 -87
  285. sbmlsim-0.8.2/tests/data/data/numlData2D2RC.xml +0 -164
  286. sbmlsim-0.8.2/tests/data/data/oscli.csv +0 -204
  287. sbmlsim-0.8.2/tests/data/data/oscli.tsv +0 -204
  288. sbmlsim-0.8.2/tests/data/data/oscli.xml +0 -1616
  289. sbmlsim-0.8.2/tests/data/data/parameter-from-data-csv.xml +0 -149
  290. sbmlsim-0.8.2/tests/data/data/parameters.csv +0 -14
  291. sbmlsim-0.8.2/tests/data/data/reading-numlData1D.xml +0 -46
  292. sbmlsim-0.8.2/tests/data/data/reading-numlData2D.xml +0 -32
  293. sbmlsim-0.8.2/tests/data/data/reading-numlData2DRC.xml +0 -32
  294. sbmlsim-0.8.2/tests/data/data/reading-oscli-csv.xml +0 -26
  295. sbmlsim-0.8.2/tests/data/data/reading-oscli-numl.xml +0 -22
  296. sbmlsim-0.8.2/tests/data/data/reading-oscli-tsv.xml +0 -26
  297. sbmlsim-0.8.2/tests/data/models/BioModel1_repressor_activator_oscillations.xml +0 -872
  298. sbmlsim-0.8.2/tests/data/models/BorisEJB.xml +0 -709
  299. sbmlsim-0.8.2/tests/data/models/Koenig_demo_14.xml +0 -728
  300. sbmlsim-0.8.2/tests/data/models/app2sim.xml +0 -127
  301. sbmlsim-0.8.2/tests/data/models/asedml3repeat.xml +0 -127
  302. sbmlsim-0.8.2/tests/data/models/asedmlComplex.xml +0 -127
  303. sbmlsim-0.8.2/tests/data/models/body21_livertoy_flat.xml +0 -7174
  304. sbmlsim-0.8.2/tests/data/models/curien.xml +0 -217
  305. sbmlsim-0.8.2/tests/data/models/example1.xml +0 -34
  306. sbmlsim-0.8.2/tests/data/models/icg_body_flat.xml +0 -2613
  307. sbmlsim-0.8.2/tests/data/models/lorenz.xml +0 -460
  308. sbmlsim-0.8.2/tests/data/models/midazolam_body_flat.xml +0 -2551
  309. sbmlsim-0.8.2/tests/data/models/model1.xml +0 -408
  310. sbmlsim-0.8.2/tests/data/models/oscli.xml +0 -384
  311. sbmlsim-0.8.2/tests/data/models/repressilator.xml +0 -1021
  312. sbmlsim-0.8.2/tests/data/petab/icg_example1/icg.omex +0 -0
  313. sbmlsim-0.8.2/tests/data/petab/icg_example1/icg.xml +0 -3096
  314. sbmlsim-0.8.2/tests/data/petab/icg_example1/icg.yaml +0 -11
  315. sbmlsim-0.8.2/tests/data/petab/icg_example1/icg_condition.tsv +0 -17
  316. sbmlsim-0.8.2/tests/data/petab/icg_example1/icg_data.tsv +0 -183
  317. sbmlsim-0.8.2/tests/data/petab/icg_example1/icg_measurement.tsv +0 -183
  318. sbmlsim-0.8.2/tests/data/petab/icg_example1/icg_observable.tsv +0 -6
  319. sbmlsim-0.8.2/tests/data/petab/icg_example1/icg_parameter.tsv +0 -11
  320. sbmlsim-0.8.2/tests/examples/test_interpolation.py +0 -47
  321. sbmlsim-0.8.2/tests/fit/test_petab_v2_dosing.py +0 -201
  322. sbmlsim-0.8.2/tests/fit/test_petab_v2_reader.py +0 -372
  323. sbmlsim-0.8.2/tests/models/test_biomodels.py +0 -65
  324. sbmlsim-0.8.2/tests/result/test_datagenerator.py +0 -8
  325. sbmlsim-0.8.2/tests/simulation/test_algorithm.py +0 -46
  326. sbmlsim-0.8.2/tests/simulation/test_simulation.py +0 -86
  327. sbmlsim-0.8.2/tests/test_mathml.py +0 -88
  328. sbmlsim-0.8.2/tests/test_model_change.py +0 -18
  329. sbmlsim-0.8.2/tests/test_units.py +0 -124
  330. sbmlsim-0.8.2/tests/test_utils.py +0 -24
  331. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/.claude/settings.json +0 -0
  332. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/.github/CODEOWNERS +0 -0
  333. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/.github/dependabot.yml +0 -0
  334. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/.github/rulesets/apply.sh +0 -0
  335. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/.github/rulesets/develop.json +0 -0
  336. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/.github/rulesets/main.json +0 -0
  337. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/.github/rulesets/tags.json +0 -0
  338. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/.gitignore +0 -0
  339. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/.python-version +0 -0
  340. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/.ruff.toml +0 -0
  341. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/LICENSE +0 -0
  342. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/conftest.py +0 -0
  343. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/comparison.diff.md +0 -0
  344. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/console.md +0 -0
  345. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/data.md +0 -0
  346. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/display.md +0 -0
  347. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/experiment.experiment.md +0 -0
  348. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/experiment.runner.md +0 -0
  349. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/fit.cli.md +0 -0
  350. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/fit.derived.md +0 -0
  351. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/fit.display.md +0 -0
  352. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/fit.fisher.md +0 -0
  353. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/fit.helpers.md +0 -0
  354. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/fit.identifiability.md +0 -0
  355. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/fit.metrics.md +0 -0
  356. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/fit.objects.md +0 -0
  357. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/fit.optimization.md +0 -0
  358. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/fit.options.md +0 -0
  359. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/fit.parameter_mapping.md +0 -0
  360. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/fit.parameters.md +0 -0
  361. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/fit.petab_omex.md +0 -0
  362. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/fit.petab_v2.export.md +0 -0
  363. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/fit.petab_v2.extension.md +0 -0
  364. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/fit.petab_v2.gaps.md +0 -0
  365. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/fit.petab_v2.likelihood.md +0 -0
  366. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/fit.petab_v2.reader.md +0 -0
  367. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/fit.petab_v2.sciml.md +0 -0
  368. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/fit.petab_v2.sciml_export.md +0 -0
  369. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/fit.petab_v2.symbols.md +0 -0
  370. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/fit.report.md +0 -0
  371. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/fit.result.md +0 -0
  372. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/fit.runner.md +0 -0
  373. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/fit.sampling.md +0 -0
  374. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/log.md +0 -0
  375. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/model.model.md +0 -0
  376. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/model.model_resources.md +0 -0
  377. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/model.model_roadrunner.md +0 -0
  378. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/model.provenance.md +0 -0
  379. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/plot.plotting.md +0 -0
  380. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/plot.serialization_matplotlib.md +0 -0
  381. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/report.experiment_report.md +0 -0
  382. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/result.timecourse.md +0 -0
  383. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/result.xresult.md +0 -0
  384. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/sciml.backend.md +0 -0
  385. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/sciml.compiler.md +0 -0
  386. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/sciml.errors.md +0 -0
  387. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/sciml.hybridization.md +0 -0
  388. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/sciml.interpreter.md +0 -0
  389. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/sciml.layers.md +0 -0
  390. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/sciml.md +0 -0
  391. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/sciml.network.md +0 -0
  392. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/sciml.parameters.md +0 -0
  393. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/sciml.testsuite.md +0 -0
  394. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/sensitivity.analysis.md +0 -0
  395. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/sensitivity.classification.md +0 -0
  396. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/sensitivity.parameters.md +0 -0
  397. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/sensitivity.plots.md +0 -0
  398. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/sensitivity.sensitivity_fast.md +0 -0
  399. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/sensitivity.sensitivity_local.md +0 -0
  400. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/sensitivity.sensitivity_morris.md +0 -0
  401. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/sensitivity.sensitivity_sampling.md +0 -0
  402. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/sensitivity.sensitivity_sobol.md +0 -0
  403. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/serialization.md +0 -0
  404. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/simulation.range.md +0 -0
  405. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/simulation.scan.md +0 -0
  406. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/simulation.sensitivity.md +0 -0
  407. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/simulator.simulation_serial.md +0 -0
  408. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/task.task.md +0 -0
  409. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/testsuite.cache.md +0 -0
  410. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/testsuite.cases.md +0 -0
  411. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/testsuite.comparison.md +0 -0
  412. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/testsuite.report.md +0 -0
  413. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/testsuite.runner.md +0 -0
  414. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/units.md +0 -0
  415. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/api/utils.md +0 -0
  416. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/images/favicon/about.txt +0 -0
  417. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/images/favicon/android-chrome-192x192.png +0 -0
  418. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/images/favicon/android-chrome-512x512.png +0 -0
  419. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/images/favicon/apple-touch-icon.png +0 -0
  420. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/images/favicon/favicon-16x16.png +0 -0
  421. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/images/favicon/favicon-32x32.png +0 -0
  422. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/images/favicon/favicon.ico +0 -0
  423. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/images/favicon/sbmlsim-100x100-300dpi.png +0 -0
  424. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/images/favicon/site.webmanifest +0 -0
  425. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/plotting.md +0 -0
  426. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/robots.txt +0 -0
  427. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/superpowers/plans/2026-09-13-versioned-fit-parameters.md +0 -0
  428. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/superpowers/plans/2026-09-30-petab-sciml-phase1.md +0 -0
  429. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/superpowers/plans/2026-09-30-petab-sciml-phase2.md +0 -0
  430. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/superpowers/plans/2026-09-30-petab-sciml-phase3.md +0 -0
  431. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/superpowers/plans/2026-09-30-petab-sciml-phase4.md +0 -0
  432. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/superpowers/specs/2026-09-13-versioned-fit-parameters-design.md +0 -0
  433. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/docs/superpowers/specs/2026-09-30-petab-sciml-design.md +0 -0
  434. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/__init__.py +0 -0
  435. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/comparison/__init__.py +0 -0
  436. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/comparison/diff/jws/example_1.tsv +0 -0
  437. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/comparison/diff/jws/example_2.tsv +0 -0
  438. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/comparison/diff/jws/example_3.tsv +0 -0
  439. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/comparison/diff/jws/example_4.tsv +0 -0
  440. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/comparison/diff/jws/example_5.tsv +0 -0
  441. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/comparison/diff/jws/example_6.tsv +0 -0
  442. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/comparison/example_copasi.py +0 -0
  443. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/comparison/icg_amici_simulation.py +0 -0
  444. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/comparison/resources/condition.tsv +0 -0
  445. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/comparison/resources/condition_liver.tsv +0 -0
  446. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/comparison/resources/icg_events_sd.xml +0 -0
  447. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/comparison/resources/icg_liver.xml +0 -0
  448. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/comparison/resources/icg_sd.xml +0 -0
  449. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/comparison/simulate.py +0 -0
  450. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/curve_types/__init__.py +0 -0
  451. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/curve_types/model.py +0 -0
  452. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/demo/__init__.py +0 -0
  453. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/fit_sampling.py +0 -0
  454. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/glucose/__init__.py +0 -0
  455. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/glucose/data/DoseResponse/.DoseResponse_TabEpinephrine.tsv +0 -0
  456. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/glucose/data/DoseResponse/.DoseResponse_TabGlucagon.tsv +0 -0
  457. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/glucose/data/DoseResponse/.DoseResponse_TabInsulin.tsv +0 -0
  458. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/glucose/experiments/__init__.py +0 -0
  459. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/glucose/experiments/plotting.py +0 -0
  460. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/glucose/glucose.py +0 -0
  461. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/glucose/model/liver_glucose.html +0 -0
  462. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/glucose/model/liver_glucose.xml +0 -0
  463. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/hctz_fitting/__init__.py +0 -0
  464. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/hctz_fitting/data/Beermann1976/.Beermann1976_Fig2.tsv +0 -0
  465. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/hctz_fitting/data/Beermann1976/.Beermann1976_Fig3.tsv +0 -0
  466. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/hctz_fitting/data/Beermann1976/.Beermann1976_Tab1A.tsv +0 -0
  467. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/hctz_fitting/data/Patel1984/.Patel1984_Fig1.tsv +0 -0
  468. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/hctz_fitting/data/Patel1984/.Patel1984_Fig2.tsv +0 -0
  469. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/hctz_fitting/data/Patel1984/.Patel1984_Tab4.tsv +0 -0
  470. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/hctz_fitting/data/Weir1998/.Weir1998_Fig2.tsv +0 -0
  471. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/hctz_fitting/data/Weir1998/.Weir1998_Fig3.tsv +0 -0
  472. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/hctz_fitting/data/Weir1998/.Weir1998_Tab4.tsv +0 -0
  473. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/hctz_fitting/experiments/__init__.py +0 -0
  474. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/hctz_fitting/experiments/studies/__init__.py +0 -0
  475. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/hctz_fitting/fitting/__init__.py +0 -0
  476. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/hctz_fitting/fitting/fitting.py +0 -0
  477. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/hctz_fitting/fitting/identifiability.py +0 -0
  478. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/hctz_fitting/fitting/identifiability_report.py +0 -0
  479. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/hctz_fitting/fitting/mapping_collections.py +0 -0
  480. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/hctz_fitting/fitting/parameters.py +0 -0
  481. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/hctz_fitting/fitting/petab_problem.py +0 -0
  482. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/hctz_fitting/fitting/run_report.py +0 -0
  483. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/hctz_fitting/helpers.py +0 -0
  484. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/hctz_fitting/models/hctz_body_flat.xml +0 -0
  485. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/hctz_fitting/simulations.py +0 -0
  486. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/initial_assignment/__init__.py +0 -0
  487. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/initial_assignment/initial_assignment.xml +0 -0
  488. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/petab/Boehm_JProteomeRes2014/Boehm_JProteomeRes2014.yaml +0 -0
  489. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/petab/Boehm_JProteomeRes2014/experimentalCondition_Boehm_JProteomeRes2014.tsv +0 -0
  490. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/petab/Boehm_JProteomeRes2014/measurementData_Boehm_JProteomeRes2014.tsv +0 -0
  491. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/petab/Boehm_JProteomeRes2014/model_Boehm_JProteomeRes2014.xml +0 -0
  492. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/petab/Boehm_JProteomeRes2014/observables_Boehm_JProteomeRes2014.tsv +0 -0
  493. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/petab/Boehm_JProteomeRes2014/parameters_Boehm_JProteomeRes2014.tsv +0 -0
  494. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/petab/Boehm_JProteomeRes2014/visualizationSpecification_Boehm_JProteomeRes2014.tsv +0 -0
  495. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/petab/Perelson_Science1996/Perelson_Science1996.yaml +0 -0
  496. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/petab/Perelson_Science1996/README.md +0 -0
  497. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/petab/Perelson_Science1996/experimentalCondition_Perelson_Science1996.tsv +0 -0
  498. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/petab/Perelson_Science1996/measurementData_Perelson_Science1996.tsv +0 -0
  499. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/petab/Perelson_Science1996/model_Perelson_Science1996.xml +0 -0
  500. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/petab/Perelson_Science1996/observables_Perelson_Science1996.tsv +0 -0
  501. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/petab/Perelson_Science1996/parameters_Perelson_Science1996.tsv +0 -0
  502. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/petab/Perelson_Science1996/visualizationSpecification_Perelson_Science1996.tsv +0 -0
  503. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/petab/__init__.py +0 -0
  504. {sbmlsim-0.8.2/examples/julia → sbmlsim-0.8.4/examples/repressilator}/__init__.py +0 -0
  505. {sbmlsim-0.8.2/examples/repressilator → sbmlsim-0.8.4/examples/sciml}/__init__.py +0 -0
  506. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/sciml/lotka_volterra/README.md +0 -0
  507. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/sciml/lotka_volterra/experiments.tsv +0 -0
  508. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/sciml/lotka_volterra/hybridization.tsv +0 -0
  509. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/sciml/lotka_volterra/lv.xml +0 -0
  510. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/sciml/lotka_volterra/mapping.tsv +0 -0
  511. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/sciml/lotka_volterra/measurements.tsv +0 -0
  512. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/sciml/lotka_volterra/net1.yaml +0 -0
  513. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/sciml/lotka_volterra/net1_ps.hdf5 +0 -0
  514. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/sciml/lotka_volterra/observables.tsv +0 -0
  515. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/sciml/lotka_volterra/parameters.tsv +0 -0
  516. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/sciml/lotka_volterra/problem.yaml +0 -0
  517. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/sciml/lotka_volterra_fit.py +0 -0
  518. {sbmlsim-0.8.2/examples/sciml → sbmlsim-0.8.4/examples/sciml/neural_ode}/__init__.py +0 -0
  519. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/sciml/neural_ode/data.tsv +0 -0
  520. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/sciml/neural_ode/fitting.py +0 -0
  521. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/sciml/neural_ode/lotka_volterra_neural_ode.xml +0 -0
  522. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/sciml/neural_ode/network.py +0 -0
  523. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/examples/sensitivity/.gitignore +0 -0
  524. {sbmlsim-0.8.2/examples/sciml/neural_ode → sbmlsim-0.8.4/examples/sensitivity}/__init__.py +0 -0
  525. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/release-notes/0.1.10.md +0 -0
  526. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/release-notes/0.1.11.md +0 -0
  527. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/release-notes/0.1.13.md +0 -0
  528. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/release-notes/0.1.14.md +0 -0
  529. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/release-notes/0.1.3.md +0 -0
  530. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/release-notes/0.1.4.md +0 -0
  531. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/release-notes/0.1.6.md +0 -0
  532. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/release-notes/0.1.7.md +0 -0
  533. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/release-notes/0.1.8.md +0 -0
  534. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/release-notes/0.1.9.md +0 -0
  535. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/release-notes/0.2.0.md +0 -0
  536. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/release-notes/0.2.1.md +0 -0
  537. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/release-notes/0.2.2.md +0 -0
  538. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/release-notes/0.3.0.md +0 -0
  539. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/release-notes/0.4.0.md +0 -0
  540. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/release-notes/0.5.0.md +0 -0
  541. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/release-notes/0.6.0.md +0 -0
  542. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/release-notes/0.6.1.md +0 -0
  543. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/release-notes/0.7.0.md +0 -0
  544. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/release-notes/0.7.1.md +0 -0
  545. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/release-notes/0.7.2.md +0 -0
  546. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/release-notes/0.8.0.md +0 -0
  547. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/release-notes/0.8.1.md +0 -0
  548. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/release-notes/0.8.2.md +0 -0
  549. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/scripts/llms_txt.py +0 -0
  550. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/comparison/__init__.py +0 -0
  551. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/comparison/diff.py +0 -0
  552. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/console.py +0 -0
  553. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/display.py +0 -0
  554. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/experiment/__init__.py +0 -0
  555. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/fit/__init__.py +0 -0
  556. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/fit/cli.py +0 -0
  557. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/fit/display.py +0 -0
  558. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/fit/fisher.py +0 -0
  559. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/fit/identifiability.py +0 -0
  560. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/fit/metrics.py +0 -0
  561. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/fit/options.py +0 -0
  562. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/fit/parameter_mapping.py +0 -0
  563. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/fit/parameters.py +0 -0
  564. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/fit/petab_omex.py +0 -0
  565. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/fit/report.py +0 -0
  566. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/fit/sampling.py +0 -0
  567. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/log.py +0 -0
  568. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/plot/__init__.py +0 -0
  569. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/report/__init__.py +0 -0
  570. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/report/templates.py +0 -0
  571. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/resources/__init__.py +0 -0
  572. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/resources/models/Koenig_demo_14.xml +0 -0
  573. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/resources/models/midazolam_body_flat.xml +0 -0
  574. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/resources/models/repressilator.xml +0 -0
  575. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/resources/templates/experiment.html +0 -0
  576. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/resources/templates/experiment.md +0 -0
  577. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/resources/templates/fit_report.html +0 -0
  578. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/resources/templates/index.html +0 -0
  579. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/resources/templates/index.md +0 -0
  580. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/resources/templates/index.tex +0 -0
  581. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/resources/templates/report_base.html +0 -0
  582. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/resources/templates/testsuite_report.html +0 -0
  583. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/result/__init__.py +0 -0
  584. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/sciml/__init__.py +0 -0
  585. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/sciml/backend.py +0 -0
  586. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/sciml/errors.py +0 -0
  587. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/sciml/interpreter.py +0 -0
  588. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/sciml/layers/__init__.py +0 -0
  589. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/sciml/layers/convolution.py +0 -0
  590. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/sciml/layers/core.py +0 -0
  591. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/sciml/layers/functions.py +0 -0
  592. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/sciml/layers/normalization.py +0 -0
  593. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/sciml/layers/pooling.py +0 -0
  594. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/sciml/layers/registry.py +0 -0
  595. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/sciml/layers/windows.py +0 -0
  596. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/sciml/network.py +0 -0
  597. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/sciml/parameters.py +0 -0
  598. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/sciml/testsuite.py +0 -0
  599. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/sensitivity/__init__.py +0 -0
  600. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/sensitivity/classification.py +0 -0
  601. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/sensitivity/parameters.py +0 -0
  602. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/simulator/__init__.py +0 -0
  603. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/task/__init__.py +0 -0
  604. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/task/task.py +0 -0
  605. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/testsuite/cache.py +0 -0
  606. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/testsuite/cases.py +0 -0
  607. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/testsuite/comparison.py +0 -0
  608. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/src/sbmlsim/testsuite/report.py +0 -0
  609. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/data/datasets/Allonen1981/.Allonen1981_Fig3A.tsv +0 -0
  610. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/data/datasets/Faber1978/.Faber1978_Fig1.tsv +0 -0
  611. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/data/models/lotka_volterra.xml +0 -0
  612. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/data/petab/sciml_001_llh.tsv +0 -0
  613. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/data/sciml_baseline.json +0 -0
  614. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/data/testsuite_baseline.json +0 -0
  615. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/fit/hooks.py +0 -0
  616. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/fit/test_display.py +0 -0
  617. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/fit/test_fisher.py +0 -0
  618. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/fit/test_identifiability.py +0 -0
  619. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/fit/test_metrics.py +0 -0
  620. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/fit/test_objects.py +0 -0
  621. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/fit/test_optimization.py +0 -0
  622. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/fit/test_optimization_result.py +0 -0
  623. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/fit/test_parameter_scale.py +0 -0
  624. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/fit/test_parameter_sets.py +0 -0
  625. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/fit/test_petab_omex.py +0 -0
  626. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/fit/test_sampling.py +0 -0
  627. {sbmlsim-0.8.2/examples/sensitivity → sbmlsim-0.8.4/tests/sciml}/__init__.py +0 -0
  628. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/sciml/conftest.py +0 -0
  629. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/sciml/hybrid.py +0 -0
  630. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/sciml/petab.py +0 -0
  631. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/sciml/test_backend.py +0 -0
  632. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/sciml/test_expressions.py +0 -0
  633. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/sciml/test_functions.py +0 -0
  634. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/sciml/test_hybridization.py +0 -0
  635. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/sciml/test_ids.py +0 -0
  636. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/sciml/test_interpreter.py +0 -0
  637. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/sciml/test_layers_convolution.py +0 -0
  638. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/sciml/test_layers_core.py +0 -0
  639. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/sciml/test_layers_normalization.py +0 -0
  640. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/sciml/test_layers_pooling.py +0 -0
  641. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/sciml/test_network.py +0 -0
  642. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/sciml/test_package.py +0 -0
  643. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/sciml/test_parameters.py +0 -0
  644. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/sciml/test_report.py +0 -0
  645. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/sciml/test_suite_cases.py +0 -0
  646. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/sciml/test_testsuite.py +0 -0
  647. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/sensitivity/test_classification.py +0 -0
  648. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/sensitivity/test_parameters.py +0 -0
  649. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/simulation/test_scan.py +0 -0
  650. {sbmlsim-0.8.2/tests/sciml → sbmlsim-0.8.4/tests/simulator}/__init__.py +0 -0
  651. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/test_display_links.py +0 -0
  652. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/test_log.py +0 -0
  653. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/testsuite/__init__.py +0 -0
  654. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/testsuite/conftest.py +0 -0
  655. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/testsuite/test_cache.py +0 -0
  656. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/testsuite/test_cases.py +0 -0
  657. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/testsuite/test_report_path.py +0 -0
  658. {sbmlsim-0.8.2 → sbmlsim-0.8.4}/tests/testsuite/test_semantic.py +0 -0
@@ -1,5 +1,5 @@
1
1
  [tool.bumpversion]
2
- current_version = "0.8.2"
2
+ current_version = "0.8.4"
3
3
  commit = true
4
4
  parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)"
5
5
  serialize = ["{major}.{minor}.{patch}"]
@@ -0,0 +1,50 @@
1
+ name: Set up the environment
2
+ description: >-
3
+ Install uv with its cache, set the python version of the job, put the
4
+ libpython of the interpreter on the library search path and sync the
5
+ environment of the project
6
+ inputs:
7
+ python-version:
8
+ description: the python version, e.g. 3.14
9
+ required: true
10
+ sync:
11
+ description: >-
12
+ the arguments of `uv sync`, e.g. `--extra dev`; empty does not sync
13
+ required: false
14
+ default: ""
15
+ save-cache:
16
+ description: >-
17
+ whether the job saves the cache of uv; jobs which share a key would race
18
+ for it and warn "Unable to reserve cache"
19
+ required: false
20
+ default: "false"
21
+ runs:
22
+ using: composite
23
+ steps:
24
+ - name: Install uv and set the python version
25
+ # astral-sh/setup-uv publishes no floating major tag beyond v7
26
+ uses: astral-sh/setup-uv@v10.2.0
27
+ with:
28
+ python-version: ${{ inputs.python-version }}
29
+ enable-cache: true
30
+ save-cache: ${{ inputs.save-cache }}
31
+ - name: Put libpython on the library search path (linux only)
32
+ # the extension of libroadrunner links against libpython. The standalone
33
+ # interpreters uv installs link it statically and ship it in their `lib`,
34
+ # where the loader does not look; without it the import of roadrunner
35
+ # fails with `libpython3.14.so.1.0: cannot open shared object file`
36
+ if: runner.os == 'Linux'
37
+ shell: bash
38
+ env:
39
+ PYTHON_VERSION: ${{ inputs.python-version }}
40
+ run: |
41
+ prefix=$(uv run --no-project --python "$PYTHON_VERSION" python -c "import sys; print(sys.base_prefix)")
42
+ echo "LD_LIBRARY_PATH=$prefix/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" >> "$GITHUB_ENV"
43
+ echo "libpython: $(ls "$prefix"/lib/libpython*.so.1.0)"
44
+ - name: Sync the environment
45
+ if: inputs.sync != ''
46
+ shell: bash
47
+ env:
48
+ SYNC: ${{ inputs.sync }}
49
+ # word splitting of the arguments is intended
50
+ run: uv sync $SYNC
@@ -6,7 +6,7 @@
6
6
 
7
7
  - [ ] the pull request targets `develop`
8
8
  - [ ] tests were added or updated for the change
9
- - [ ] `tox run-parallel` passes locally (tests and `ty`)
9
+ - [ ] `pytest` and `ty check` pass locally, `tox run-parallel` runs the tests on every supported python
10
10
  - [ ] `ruff check` and `ruff format` are clean, e.g., via `pre-commit run --all-files`
11
11
  - [ ] public functions and classes have type annotations and a docstring
12
12
  - [ ] user visible changes are in `release-notes/` and, if needed, in `docs/`
@@ -0,0 +1,292 @@
1
+ name: CI-CD
2
+
3
+ on:
4
+ push:
5
+ # feature branches are tested through their pull request, tags release
6
+ branches: [develop, main]
7
+ tags: ['*']
8
+ pull_request:
9
+ branches: [develop, main]
10
+ workflow_dispatch:
11
+
12
+ # least privilege by default, the release job raises what it needs
13
+ permissions:
14
+ contents: read
15
+
16
+ concurrency:
17
+ # a superseded run of a pull request is cancelled. A push is a group of its
18
+ # own: a release waits for the run of its commit on develop (see the job
19
+ # `tested`), and a group keeps one run waiting and cancels it for the next
20
+ # one even without `cancel-in-progress`, so two merges in a row would leave
21
+ # the first commit untested
22
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || format('{0}-{1}', github.ref, github.sha) }}
23
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
24
+
25
+ jobs:
26
+ test:
27
+ # a tag is not tested again, see the job `tested`
28
+ if: ${{ !startsWith(github.ref, 'refs/tags/') }}
29
+ runs-on: ${{ matrix.os }}
30
+ timeout-minutes: 45
31
+ strategy:
32
+ fail-fast: false
33
+ matrix:
34
+ os: [ubuntu-latest, windows-latest, macos-latest]
35
+ python-version: ["3.13", "3.14"]
36
+ # linux covers the full range, windows and macos only the newest version
37
+ exclude:
38
+ - os: windows-latest
39
+ python-version: "3.13"
40
+ - os: macos-latest
41
+ python-version: "3.13"
42
+
43
+ steps:
44
+ - uses: actions/checkout@v7
45
+ with:
46
+ persist-credentials: false
47
+ - name: Set up the environment
48
+ # the package is installed as a wheel and not editable, so the tests run
49
+ # against what is published. The key of the cache has the os and the
50
+ # python version but not the job, so every entry of the matrix has a key
51
+ # of its own and saves it; the other jobs on linux with python 3.14 (ty,
52
+ # docs, the suites) share the key of the entry (ubuntu-latest, 3.14) and
53
+ # only restore it
54
+ uses: ./.github/actions/setup
55
+ with:
56
+ python-version: ${{ matrix.python-version }}
57
+ sync: --extra dev --no-editable
58
+ save-cache: "true"
59
+ - name: Test
60
+ # the slowest tests are listed at the end of the log
61
+ run: uv run --no-sync pytest --durations=20
62
+
63
+ tests:
64
+ # the one check the branch protection requires; the names of the matrix
65
+ # jobs change with the matrix, this name does not, see .github/rulesets/
66
+ name: tests
67
+ needs: test
68
+ if: ${{ always() && !startsWith(github.ref, 'refs/tags/') }}
69
+ runs-on: ubuntu-latest
70
+ timeout-minutes: 5
71
+ steps:
72
+ - name: Check the result of the test matrix
73
+ env:
74
+ RESULT: ${{ needs.test.result }}
75
+ run: |
76
+ echo "test matrix: $RESULT"
77
+ test "$RESULT" = "success"
78
+
79
+ tested:
80
+ # a release does not run the test matrix again. The tag is on a commit of
81
+ # develop, and the push of that commit ran the matrix on exactly this
82
+ # tree; the job waits for that run and fails unless it succeeded, so the
83
+ # tag can be pushed right after the merge of the release
84
+ name: tested on develop
85
+ if: startsWith(github.ref, 'refs/tags/')
86
+ runs-on: ubuntu-latest
87
+ timeout-minutes: 60
88
+ permissions:
89
+ actions: read # the runs of this workflow
90
+ contents: read
91
+ steps:
92
+ - uses: actions/checkout@v7
93
+ with:
94
+ fetch-depth: 0
95
+ persist-credentials: false
96
+ - name: Check that the tag is on develop
97
+ run: |
98
+ if ! git merge-base --is-ancestor "$GITHUB_SHA" origin/develop; then
99
+ echo "::error::$GITHUB_REF_NAME is not on develop, a release is tagged on develop"
100
+ exit 1
101
+ fi
102
+ - name: Wait for the run of the commit on develop
103
+ env:
104
+ GH_TOKEN: ${{ github.token }}
105
+ run: |
106
+ api="repos/$GITHUB_REPOSITORY/actions"
107
+ # the run starts with the merge, a tag pushed right after it may be first
108
+ run_id=""
109
+ for attempt in $(seq 1 20); do
110
+ run_id=$(gh api "$api/workflows/ci-cd.yml/runs?branch=develop&event=push&head_sha=$GITHUB_SHA" \
111
+ --jq '.workflow_runs[0].id // empty' || true)
112
+ [ -n "$run_id" ] && break
113
+ sleep 15
114
+ done
115
+ if [ -z "$run_id" ]; then
116
+ echo "::error::no CI-CD run of the push of $GITHUB_SHA to develop"
117
+ exit 1
118
+ fi
119
+ url="$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$run_id"
120
+ echo "waiting for $url"
121
+ # a failed request answers nothing, which is not `completed` either
122
+ until [ "$(gh api "$api/runs/$run_id" --jq .status || true)" = "completed" ]; do
123
+ sleep 30
124
+ done
125
+ conclusion=$(gh api "$api/runs/$run_id" --jq .conclusion)
126
+ echo "$url: $conclusion"
127
+ if [ "$conclusion" != "success" ]; then
128
+ echo "::error::the tests of $GITHUB_SHA on develop did not pass ($url); once they do, re-run the failed jobs of this release"
129
+ exit 1
130
+ fi
131
+
132
+ testsuite:
133
+ # the semantic cases of the SBML Test Suite against the pinned release and
134
+ # the cases of the PEtab SciML test suite against the pinned commit, which
135
+ # the baselines record, as two jobs which run next to each other. A normal
136
+ # run of the tests deselects them: they answer what libroadrunner and the
137
+ # networks support, which a change to sbmlsim rarely moves, and they take
138
+ # longer than the rest together. A release does not go out without them
139
+ name: sbml test suite
140
+ if: startsWith(github.ref, 'refs/tags/')
141
+ runs-on: ubuntu-latest
142
+ timeout-minutes: 30
143
+ steps:
144
+ - uses: actions/checkout@v7
145
+ with:
146
+ persist-credentials: false
147
+ - name: Set up the environment
148
+ uses: ./.github/actions/setup
149
+ with:
150
+ python-version: "3.14"
151
+ sync: --extra dev --no-editable
152
+ - name: Download the pinned release
153
+ run: uv run --no-sync python scripts/testsuite.py download
154
+ - name: Run the semantic cases against the pinned release
155
+ run: uv run --no-sync pytest -m testsuite
156
+
157
+ sciml:
158
+ # see the job `testsuite`; a job of its own and not a matrix, the check of
159
+ # a matrix job which is skipped is named by the unevaluated expression
160
+ name: petab sciml test suite
161
+ if: startsWith(github.ref, 'refs/tags/')
162
+ runs-on: ubuntu-latest
163
+ timeout-minutes: 30
164
+ steps:
165
+ - uses: actions/checkout@v7
166
+ with:
167
+ persist-credentials: false
168
+ - name: Set up the environment
169
+ uses: ./.github/actions/setup
170
+ with:
171
+ python-version: "3.14"
172
+ sync: --extra dev --no-editable
173
+ - name: Download the pinned commit
174
+ run: uv run --no-sync python scripts/sciml_testsuite.py download
175
+ - name: Run the cases of the PEtab SciML test suite against the pinned commit
176
+ run: uv run --no-sync pytest -m sciml_testsuite tests/sciml
177
+
178
+ petab:
179
+ # see the job `testsuite`
180
+ name: petab test suite
181
+ if: startsWith(github.ref, 'refs/tags/')
182
+ runs-on: ubuntu-latest
183
+ timeout-minutes: 30
184
+ steps:
185
+ - uses: actions/checkout@v7
186
+ with:
187
+ persist-credentials: false
188
+ - name: Set up the environment
189
+ uses: ./.github/actions/setup
190
+ with:
191
+ python-version: "3.14"
192
+ sync: --extra dev --no-editable
193
+ - name: Download the pinned commit
194
+ run: uv run --no-sync python scripts/petab_testsuite.py download
195
+ - name: Run the cases of the PEtab test suite against the pinned commit
196
+ run: uv run --no-sync pytest -m petab_testsuite tests/fit
197
+
198
+ submission:
199
+ # the results a submission to the SBML Test Suite Database is made of. A
200
+ # release submits against the newest suite, not against the pinned one.
201
+ # The archive is an attachment of the release and never blocks it
202
+ name: sbml test suite submission
203
+ if: startsWith(github.ref, 'refs/tags/')
204
+ runs-on: ubuntu-latest
205
+ timeout-minutes: 20
206
+ continue-on-error: true
207
+ steps:
208
+ - uses: actions/checkout@v7
209
+ with:
210
+ persist-credentials: false
211
+ - name: Set up the environment
212
+ uses: ./.github/actions/setup
213
+ with:
214
+ python-version: "3.14"
215
+ sync: --no-editable
216
+ - name: Run the SBML Test Suite against its newest release
217
+ # the cases run in one process per core
218
+ run: uv run --no-sync python scripts/testsuite.py submission --version latest --output submission
219
+ - name: Upload the submission
220
+ uses: actions/upload-artifact@v7
221
+ with:
222
+ name: submission
223
+ path: submission/*.zip
224
+ if-no-files-found: error
225
+
226
+ release:
227
+ needs: [tested, testsuite, sciml, petab, submission]
228
+ # the submission is an attachment, the release goes out without it
229
+ if: >-
230
+ ${{ !cancelled() && startsWith(github.ref, 'refs/tags/')
231
+ && needs.tested.result == 'success'
232
+ && needs.testsuite.result == 'success'
233
+ && needs.sciml.result == 'success'
234
+ && needs.petab.result == 'success' }}
235
+ runs-on: ubuntu-latest
236
+ timeout-minutes: 15
237
+ environment:
238
+ name: pypi
239
+ url: https://pypi.org/p/sbmlsim
240
+ permissions:
241
+ id-token: write # trusted publishing to PyPI
242
+ contents: write # create the GitHub release
243
+ steps:
244
+ - uses: actions/checkout@v7
245
+ with:
246
+ persist-credentials: false
247
+ - name: Set up uv
248
+ uses: ./.github/actions/setup
249
+ with:
250
+ python-version: "3.14"
251
+ - name: Build package
252
+ run: uvx hatch build
253
+ - name: Check the package
254
+ run: uvx twine check dist/*
255
+ - name: Publish to PyPI
256
+ uses: pypa/gh-action-pypi-publish@release/v1
257
+ with:
258
+ packages-dir: dist
259
+ - name: Download the submission
260
+ # missing when the submission failed, which is no reason to stop here:
261
+ # the package is on PyPI by this point
262
+ continue-on-error: true
263
+ uses: actions/download-artifact@v8
264
+ with:
265
+ name: submission
266
+ path: submission
267
+ - name: Create GitHub release
268
+ uses: softprops/action-gh-release@v3
269
+ with:
270
+ body_path: "release-notes/${{ github.ref_name }}.md"
271
+ files: submission/*.zip
272
+ # the submission may be missing, the notes are the release
273
+ fail_on_unmatched_files: false
274
+ draft: false
275
+ prerelease: false
276
+
277
+ sync-main:
278
+ # main tracks the latest published release, see docs/development.md
279
+ needs: release
280
+ if: startsWith(github.ref, 'refs/tags/')
281
+ runs-on: ubuntu-latest
282
+ timeout-minutes: 5
283
+ permissions:
284
+ contents: write # fast-forward main to the released commit
285
+ steps:
286
+ - uses: actions/checkout@v7
287
+ with:
288
+ # a shallow clone cannot be pushed to another branch
289
+ fetch-depth: 0
290
+ - name: Fast-forward main to the release
291
+ # no --force: the push fails loudly if it would not be a fast-forward
292
+ run: git push origin HEAD:main
@@ -29,34 +29,25 @@ jobs:
29
29
  persist-credentials: false
30
30
  - name: Configure GitHub Pages
31
31
  uses: actions/configure-pages@v6
32
- - name: Install the python dev files
33
- # the extension of libroadrunner links against libpython, which the
34
- # standalone interpreters do not put on the library search path
35
- run: |
36
- sudo add-apt-repository -y ppa:deadsnakes/ppa
37
- sudo apt-get update
38
- sudo apt-get install -y python3.14-dev
39
- - name: Install uv and set the python version
40
- uses: astral-sh/setup-uv@v10.2.0
32
+ - name: Set up the environment
33
+ uses: ./.github/actions/setup
41
34
  with:
42
35
  python-version: "3.14"
43
- enable-cache: true
44
- - name: Install dependencies
45
- run: uv sync --extra dev
36
+ sync: --extra dev
46
37
  - name: Build the documentation
47
38
  # the API reference is rendered from the docstrings by mkdocstrings,
48
39
  # so the package has to be importable
49
- run: uv run zensical build --clean
40
+ run: uv run --no-sync zensical build --clean
50
41
  - name: Generate the agent facing files
51
42
  # llms.txt, llms-full.txt and the markdown of every page
52
- run: uv run python scripts/llms_txt.py
43
+ run: uv run --no-sync python scripts/llms_txt.py
53
44
  - name: Run the SBML Test Suite and write its report
54
45
  # the interactive report is generated into the site and not committed,
55
46
  # so the published one always describes the code it was built from.
56
47
  # Only a build which can be published pays the three minutes: a pull
57
48
  # request builds the site to check that it builds, it does not deploy
58
49
  if: github.event_name != 'pull_request'
59
- run: uv run python scripts/testsuite.py report --output site/testsuite/report
50
+ run: uv run --no-sync python scripts/testsuite.py report --output site/testsuite/report
60
51
  - name: Upload the site
61
52
  uses: actions/upload-pages-artifact@v5
62
53
  with:
@@ -0,0 +1,58 @@
1
+ name: lint
2
+
3
+ on:
4
+ push:
5
+ # feature branches are checked through their pull request
6
+ branches: [develop, main]
7
+ pull_request:
8
+ branches: [develop, main]
9
+ workflow_dispatch:
10
+
11
+ permissions:
12
+ contents: read
13
+
14
+ concurrency:
15
+ # a superseded run of a pull request is cancelled, a push is checked on its own
16
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
17
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
18
+
19
+ jobs:
20
+ ruff:
21
+ # the names of the jobs are the checks the branch protection requires,
22
+ # see .github/rulesets/develop.json
23
+ name: ruff
24
+ runs-on: ubuntu-latest
25
+ timeout-minutes: 10
26
+ steps:
27
+ - uses: actions/checkout@v7
28
+ with:
29
+ persist-credentials: false
30
+ # the ruff version is read from the dev dependencies in pyproject.toml
31
+ - name: Lint
32
+ # astral-sh/ruff-action publishes no floating major tag beyond v3
33
+ uses: astral-sh/ruff-action@v4.1.0
34
+ with:
35
+ args: check --output-format=github
36
+ - name: Format
37
+ uses: astral-sh/ruff-action@v4.1.0
38
+ with:
39
+ args: format --check --diff
40
+
41
+ ty:
42
+ name: ty
43
+ runs-on: ubuntu-latest
44
+ timeout-minutes: 10
45
+ steps:
46
+ - uses: actions/checkout@v7
47
+ with:
48
+ persist-credentials: false
49
+ - name: Set up the environment
50
+ # ty resolves the imports of `src`, `tests`, `examples` and `scripts`
51
+ # in the environment, the dev extra has all of them; there is no ty
52
+ # action, and an environment is what it would need as well
53
+ uses: ./.github/actions/setup
54
+ with:
55
+ python-version: "3.14"
56
+ sync: --extra dev
57
+ - name: Type check
58
+ run: uv run --no-sync ty check --output-format github
@@ -27,25 +27,16 @@ jobs:
27
27
  pull-requests: write # open the pull request
28
28
  steps:
29
29
  - uses: actions/checkout@v7
30
- - name: Install the python dev files
31
- # the extension of libroadrunner links against libpython, which the
32
- # standalone interpreters do not put on the library search path
33
- run: |
34
- sudo add-apt-repository -y ppa:deadsnakes/ppa
35
- sudo apt-get update
36
- sudo apt-get install -y python3.14-dev
37
- - name: Install uv and set the python version
38
- uses: astral-sh/setup-uv@v10.2.0
30
+ - name: Set up the environment
31
+ uses: ./.github/actions/setup
39
32
  with:
40
33
  python-version: "3.14"
41
- enable-cache: true
42
- - name: Install dependencies
43
- run: uv sync --extra dev
34
+ sync: --extra dev
44
35
  - name: Compare the pinned release with the newest one
45
36
  id: versions
46
37
  run: |
47
- PINNED=$(uv run python -c "from sbmlsim.testsuite.cases import SUITE_VERSION; print(SUITE_VERSION)")
48
- LATEST=$(uv run python -c "from sbmlsim.testsuite import SemanticSuite; print(SemanticSuite.latest_version())")
38
+ PINNED=$(uv run --no-sync python -c "from sbmlsim.testsuite.cases import SUITE_VERSION; print(SUITE_VERSION)")
39
+ LATEST=$(uv run --no-sync python -c "from sbmlsim.testsuite import SemanticSuite; print(SemanticSuite.latest_version())")
49
40
  echo "pinned=$PINNED" >> "$GITHUB_OUTPUT"
50
41
  echo "latest=$LATEST" >> "$GITHUB_OUTPUT"
51
42
  echo "The pinned release is '$PINNED', the newest is '$LATEST'"
@@ -65,7 +56,7 @@ jobs:
65
56
  PY
66
57
  # the baseline records the outcome of every case, so it is recorded
67
58
  # again for the release which is adopted
68
- uv run python scripts/testsuite.py baseline
59
+ uv run --no-sync python scripts/testsuite.py baseline
69
60
  - name: Open the pull request
70
61
  if: steps.versions.outputs.pinned != steps.versions.outputs.latest
71
62
  uses: peter-evans/create-pull-request@v8
@@ -56,7 +56,7 @@ repos:
56
56
 
57
57
  - repo: https://github.com/astral-sh/ty-pre-commit
58
58
  # ty version.
59
- rev: v0.0.84
59
+ rev: v0.0.85
60
60
  hooks:
61
61
  # Run the type checker on the whole project (see `[tool.ty]` in pyproject.toml).
62
62
  # `--extra dev` syncs the environment with the dev dependencies, so that the
@@ -0,0 +1,33 @@
1
+ {
2
+ "upload_type": "software",
3
+ "title": "sbmlsim: SBML simulation made easy",
4
+ "creators": [
5
+ {
6
+ "orcid": "0000-0003-1725-179X",
7
+ "affiliation": "Humboldt-University Berlin, Faculty of Life Science, Institute for Biology, Biology, Berlin; University Lübeck; University Hospital Schleswig-Holstein, Campus Lübeck, First Department of Medicine, Germany",
8
+ "name": "König, Matthias"
9
+ }
10
+ ],
11
+ "description": "<p><code>sbmlsim</code> is a collection of python utilities to simplify simulations with <a href=\"https://sbml.org\">SBML</a> models implemented on top of <code><a href=\"https://libroadrunner.org/\">libroadrunner</a></code> and other libraries with source code available from <a href=\"https://github.com/matthiaskoenig/sbmlsim\">https://github.com/matthiaskoenig/sbmlsim</a></p>\n<p>Features include among others<ul><li>simulation experiments, parameter scans and reports</li><li>parameter fitting with profile likelihood and Fisher information</li><li>sensitivity analysis</li><li>PEtab problems, including hybrid PEtab SciML problems</li></ul></p>\n<p>The documentation is available on <a href=\"https://matthiaskoenig.github.io/sbmlsim\">https://matthiaskoenig.github.io/sbmlsim</a></p>\n<p>If you have any questions or issues please <a href=\"https://github.com/matthiaskoenig/sbmlsim/issues\">open an issue</a></p>\n<h2>Funding</h2><p>Matthias König is supported by the Federal Ministry of Education and Research (BMBF, Germany) within the research network Systems Medicine of the Liver (<strong>LiSyM</strong>, grant number 031L0054) and by the German Research Foundation (DFG) within the Research Unit Programme FOR 5151 <strong><a href=\"https://qualiperf.de\">QuaLiPerF</a></strong> (Quantifying Liver Perfusion-Function Relationship in Complex Resection - A Systems Medicine Approach) by grant number 436883643 and by grant number 465194077 (Priority Programme SPP 2311, Subproject SimLivA). Matthias König has received funds from the EOSCsecretariat.eu which has received funding from the European Union's Horizon Programme call H2020-INFRAEOSC-05-2018-2019, grant Agreement number 831644.</p>",
12
+ "access_right": "open",
13
+ "license": "MIT",
14
+ "keywords": [
15
+ "modeling",
16
+ "standardization",
17
+ "SBML",
18
+ "PEtab",
19
+ "simulation",
20
+ "parameter fitting",
21
+ "sensitivity analysis"
22
+ ],
23
+ "communities": [
24
+ {
25
+ "identifier": "eoscsecretariat"
26
+ }
27
+ ],
28
+ "grants": [
29
+ {
30
+ "id": "831644"
31
+ }
32
+ ]
33
+ }
@@ -8,8 +8,8 @@ authors:
8
8
  given-names: "Matthias"
9
9
  orcid: "https://orcid.org/0000-0003-1725-179X"
10
10
  affiliation: "Humboldt-University Berlin, Faculty of Life Science, Institute for Biology, Biology, Berlin; University Lübeck; University Hospital Schleswig-Holstein, Campus Lübeck, First Department of Medicine, Germany"
11
- version: "0.8.2"
12
- date-released: "2026-10-06"
11
+ version: "0.8.4"
12
+ date-released: "2026-10-07"
13
13
  doi: "10.5281/zenodo.3597770"
14
14
  license: MIT
15
15
  repository-code: "https://github.com/matthiaskoenig/sbmlsim"