sbmlsim 0.7.0__tar.gz → 0.7.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/.bumpversion.toml +1 -1
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/.github/workflows/ci-cd.yml +15 -1
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/.github/workflows/docs.yml +1 -1
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/.gitignore +3 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/CITATION.cff +2 -2
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/PKG-INFO +7 -6
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/README.md +6 -5
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/index.md +4 -4
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/plotting.md +3 -3
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/testsuite.md +2 -2
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/glucose/experiments/dose_response.py +1 -1
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/model_change.py +1 -1
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/model_sensitivity.py +2 -1
- sbmlsim-0.7.2/release-notes/0.7.1.md +10 -0
- sbmlsim-0.7.2/release-notes/0.7.2.md +31 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/scripts/testsuite.py +2 -2
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/__init__.py +1 -1
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/experiment/experiment.py +28 -6
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/fit/identifiability.py +1 -1
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/fit/report.py +1 -1
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/plot/plotting.py +209 -67
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/plot/serialization_matplotlib.py +103 -96
- sbmlsim-0.7.2/tests/plot/test_plotting.py +280 -0
- sbmlsim-0.7.2/tests/plot/test_serialization_matplotlib.py +303 -0
- sbmlsim-0.7.2/tests/testsuite/test_report_path.py +54 -0
- sbmlsim-0.7.0/src/roadmap.md +0 -2
- sbmlsim-0.7.0/tests/plot/test_plotting.py +0 -25
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/.claude/settings.json +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/.github/CODEOWNERS +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/.github/dependabot.yml +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/.github/pull_request_template.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/.github/rulesets/apply.sh +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/.github/rulesets/develop.json +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/.github/rulesets/main.json +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/.github/rulesets/tags.json +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/.github/workflows/ruff.yml +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/.github/workflows/testsuite-pin.yml +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/.github/workflows/ty.yml +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/.pre-commit-config.yaml +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/.python-version +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/.ruff.toml +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/.zenodo.json +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/CLAUDE.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/LICENSE +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/conftest.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/comparison.diff.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/console.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/data.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/experiment.experiment.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/experiment.runner.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/fit.cli.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/fit.display.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/fit.fisher.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/fit.helpers.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/fit.identifiability.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/fit.metrics.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/fit.objects.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/fit.optimization.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/fit.options.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/fit.parameters.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/fit.petab_omex.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/fit.petab_v2.export.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/fit.petab_v2.extension.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/fit.petab_v2.gaps.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/fit.petab_v2.observables.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/fit.petab_v2.reader.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/fit.petab_v2.symbols.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/fit.report.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/fit.result.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/fit.runner.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/fit.sampling.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/index.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/log.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/mathml.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/model.model.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/model.model_change.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/model.model_resources.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/model.model_roadrunner.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/plot.plotting.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/plot.serialization_matplotlib.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/report.experiment_report.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/result.datagenerator.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/result.report.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/result.xresult.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/sensitivity.analysis.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/sensitivity.classification.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/sensitivity.parameters.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/sensitivity.plots.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/sensitivity.sensitivity_fast.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/sensitivity.sensitivity_local.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/sensitivity.sensitivity_morris.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/sensitivity.sensitivity_sampling.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/sensitivity.sensitivity_sobol.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/serialization.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/simulation.algorithm.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/simulation.base.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/simulation.calculation.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/simulation.change.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/simulation.range.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/simulation.scan.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/simulation.sensitivity.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/simulation.simulation.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/simulation.timecourse.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/simulator.simulation_serial.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/task.task.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/testsuite.cases.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/testsuite.comparison.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/testsuite.report.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/testsuite.runner.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/units.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/api/utils.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/data.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/development.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/experiments.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/fitting.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/images/favicon/about.txt +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/images/favicon/android-chrome-192x192.png +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/images/favicon/android-chrome-512x512.png +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/images/favicon/apple-touch-icon.png +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/images/favicon/favicon-16x16.png +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/images/favicon/favicon-32x32.png +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/images/favicon/favicon.ico +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/images/favicon/sbmlsim-100x100-300dpi.png +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/images/favicon/site.webmanifest +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/installation.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/models.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/petab.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/references.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/robots.txt +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/scans.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/sensitivity.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/simulation.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/superpowers/plans/2026-09-13-versioned-fit-parameters.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/superpowers/specs/2026-09-13-versioned-fit-parameters-design.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/docs/units.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/README.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/__init__.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/comparison/__init__.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/comparison/diff/example_1.json +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/comparison/diff/example_2.json +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/comparison/diff/example_3.json +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/comparison/diff/example_4.json +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/comparison/diff/example_5.json +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/comparison/diff/example_6.json +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/comparison/diff/jws/example_1.tsv +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/comparison/diff/jws/example_2.tsv +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/comparison/diff/jws/example_3.tsv +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/comparison/diff/jws/example_4.tsv +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/comparison/diff/jws/example_5.tsv +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/comparison/diff/jws/example_6.tsv +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/comparison/diff_example.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/comparison/example_comparison.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/comparison/example_copasi.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/comparison/icg_amici_simulation.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/comparison/resources/condition.tsv +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/comparison/resources/condition_liver.tsv +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/comparison/resources/icg_events_sd.xml +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/comparison/resources/icg_liver.xml +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/comparison/resources/icg_sd.xml +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/comparison/simulate.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/comparison/simulate_amici.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/comparison/simulate_copasi.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/comparison/simulate_roadrunner.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/curve_types/__init__.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/curve_types/experiment.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/curve_types/model.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/datagenerator.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/demo/__init__.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/demo/demo.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/fit_sampling.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/glucose/DoseResponseExperiment.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/glucose/__init__.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/glucose/data/DoseResponse/.DoseResponse_TabEpinephrine.tsv +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/glucose/data/DoseResponse/.DoseResponse_TabGlucagon.tsv +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/glucose/data/DoseResponse/.DoseResponse_TabInsulin.tsv +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/glucose/experiments/__init__.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/glucose/experiments/plotting.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/glucose/glucose.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/glucose/index.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/glucose/model/liver_glucose.html +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/glucose/model/liver_glucose.xml +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/hctz_fitting/__init__.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/hctz_fitting/data/Beermann1976/.Beermann1976_Fig2.tsv +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/hctz_fitting/data/Beermann1976/.Beermann1976_Fig3.tsv +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/hctz_fitting/data/Beermann1976/.Beermann1976_Tab1A.tsv +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/hctz_fitting/data/Patel1984/.Patel1984_Fig1.tsv +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/hctz_fitting/data/Patel1984/.Patel1984_Fig2.tsv +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/hctz_fitting/data/Patel1984/.Patel1984_Tab4.tsv +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/hctz_fitting/data/Weir1998/.Weir1998_Fig2.tsv +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/hctz_fitting/data/Weir1998/.Weir1998_Fig3.tsv +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/hctz_fitting/data/Weir1998/.Weir1998_Tab4.tsv +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/hctz_fitting/experiments/__init__.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/hctz_fitting/experiments/base_experiment.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/hctz_fitting/experiments/metadata.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/hctz_fitting/experiments/studies/__init__.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/hctz_fitting/experiments/studies/beermann1976.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/hctz_fitting/experiments/studies/patel1984.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/hctz_fitting/experiments/studies/weir1998.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/hctz_fitting/fitting/__init__.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/hctz_fitting/fitting/fitting.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/hctz_fitting/fitting/identifiability.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/hctz_fitting/fitting/identifiability_report.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/hctz_fitting/fitting/mapping_collections.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/hctz_fitting/fitting/parameters.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/hctz_fitting/fitting/petab_problem.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/hctz_fitting/fitting/run_report.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/hctz_fitting/helpers.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/hctz_fitting/models/hctz_body_flat.xml +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/hctz_fitting/simulations.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/initial_assignment/__init__.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/initial_assignment/initial_assignment.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/initial_assignment/initial_assignment.xml +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/interpolation/__init__.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/interpolation/interpolation.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/interpolation/interpolation_example.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/julia/__init__.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/julia/julia.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/julia/juliacall_example.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/petab/Boehm_JProteomeRes2014/Boehm_JProteomeRes2014.yaml +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/petab/Boehm_JProteomeRes2014/README.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/petab/Boehm_JProteomeRes2014/experimentalCondition_Boehm_JProteomeRes2014.tsv +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/petab/Boehm_JProteomeRes2014/measurementData_Boehm_JProteomeRes2014.tsv +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/petab/Boehm_JProteomeRes2014/model_Boehm_JProteomeRes2014.xml +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/petab/Boehm_JProteomeRes2014/observables_Boehm_JProteomeRes2014.tsv +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/petab/Boehm_JProteomeRes2014/parameters_Boehm_JProteomeRes2014.tsv +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/petab/Boehm_JProteomeRes2014/visualizationSpecification_Boehm_JProteomeRes2014.tsv +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/petab/Perelson_Science1996/Perelson_Science1996.yaml +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/petab/Perelson_Science1996/README.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/petab/Perelson_Science1996/experimentalCondition_Perelson_Science1996.tsv +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/petab/Perelson_Science1996/measurementData_Perelson_Science1996.tsv +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/petab/Perelson_Science1996/model_Perelson_Science1996.xml +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/petab/Perelson_Science1996/observables_Perelson_Science1996.tsv +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/petab/Perelson_Science1996/parameters_Perelson_Science1996.tsv +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/petab/Perelson_Science1996/visualizationSpecification_Perelson_Science1996.tsv +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/petab/__init__.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/petab/benchmark.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/repressilator/__init__.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/repressilator/repressilator.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/repressilator/repressilator_scans.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/scan.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/sensitivity/.gitignore +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/sensitivity/__init__.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/sensitivity/sensitivity_example.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/sensitivity/simple_chain.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/sensitivity/simple_chain.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/sensitivity/simple_chain.xml +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/timecourse.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/examples/units.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/pyproject.toml +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/release-notes/0.1.10.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/release-notes/0.1.11.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/release-notes/0.1.13.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/release-notes/0.1.14.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/release-notes/0.1.3.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/release-notes/0.1.4.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/release-notes/0.1.6.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/release-notes/0.1.7.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/release-notes/0.1.8.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/release-notes/0.1.9.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/release-notes/0.2.0.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/release-notes/0.2.1.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/release-notes/0.2.2.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/release-notes/0.3.0.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/release-notes/0.4.0.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/release-notes/0.5.0.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/release-notes/0.6.0.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/release-notes/0.6.1.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/release-notes/0.7.0.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/scripts/llms_txt.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/comparison/__init__.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/comparison/diff.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/console.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/data.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/experiment/__init__.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/experiment/runner.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/fit/__init__.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/fit/cli.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/fit/display.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/fit/fisher.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/fit/helpers.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/fit/metrics.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/fit/objects.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/fit/optimization.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/fit/options.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/fit/parameter_mapping.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/fit/parameters.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/fit/petab_omex.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/fit/petab_v2/__init__.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/fit/petab_v2/export.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/fit/petab_v2/extension.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/fit/petab_v2/gaps.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/fit/petab_v2/observables.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/fit/petab_v2/reader.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/fit/petab_v2/symbols.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/fit/result.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/fit/runner.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/fit/sampling.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/log.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/mathml.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/model/__init__.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/model/model.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/model/model_change.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/model/model_resources.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/model/model_roadrunner.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/plot/__init__.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/plot/serialization_plotly.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/report/__init__.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/report/experiment_report.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/report/templates.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/resources/__init__.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/resources/models/Koenig_demo_14.xml +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/resources/models/midazolam_body_flat.xml +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/resources/models/repressilator.xml +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/resources/templates/experiment.html +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/resources/templates/experiment.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/resources/templates/fit_report.html +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/resources/templates/index.html +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/resources/templates/index.md +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/resources/templates/index.tex +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/resources/templates/report_base.html +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/resources/templates/testsuite_report.html +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/result/__init__.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/result/datagenerator.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/result/report.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/result/xresult.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/sensitivity/__init__.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/sensitivity/analysis.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/sensitivity/classification.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/sensitivity/parameters.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/sensitivity/plots.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/sensitivity/sensitivity_fast.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/sensitivity/sensitivity_local.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/sensitivity/sensitivity_morris.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/sensitivity/sensitivity_sampling.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/sensitivity/sensitivity_sobol.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/serialization.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/simulation/__init__.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/simulation/algorithm.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/simulation/base.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/simulation/calculation.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/simulation/change.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/simulation/range.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/simulation/scan.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/simulation/sensitivity.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/simulation/simulation.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/simulation/timecourse.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/simulator/__init__.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/simulator/simulation_serial.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/task/__init__.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/task/task.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/task/task_new.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/testsuite/__init__.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/testsuite/cases.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/testsuite/comparison.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/testsuite/report.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/testsuite/runner.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/units.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/src/sbmlsim/utils.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/conftest.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/data/data/numlData1D.xml +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/data/data/numlData2D.xml +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/data/data/numlData2D2RC.xml +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/data/data/oscli.csv +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/data/data/oscli.tsv +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/data/data/oscli.xml +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/data/data/parameter-from-data-csv.xml +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/data/data/parameters.csv +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/data/data/reading-numlData1D.xml +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/data/data/reading-numlData2D.xml +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/data/data/reading-numlData2DRC.xml +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/data/data/reading-oscli-csv.xml +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/data/data/reading-oscli-numl.xml +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/data/data/reading-oscli-tsv.xml +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/data/datasets/Allonen1981/.Allonen1981_Fig3A.tsv +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/data/datasets/Faber1978/.Faber1978_Fig1.tsv +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/data/models/BioModel1_repressor_activator_oscillations.xml +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/data/models/BorisEJB.xml +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/data/models/Koenig_demo_14.xml +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/data/models/app2sim.xml +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/data/models/asedml3repeat.xml +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/data/models/asedmlComplex.xml +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/data/models/body21_livertoy_flat.xml +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/data/models/curien.xml +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/data/models/example1.xml +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/data/models/icg_body_flat.xml +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/data/models/lorenz.xml +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/data/models/midazolam_body_flat.xml +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/data/models/model1.xml +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/data/models/oscli.xml +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/data/models/repressilator.xml +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/data/petab/icg_example1/icg.omex +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/data/petab/icg_example1/icg.xml +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/data/petab/icg_example1/icg.yaml +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/data/petab/icg_example1/icg_condition.tsv +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/data/petab/icg_example1/icg_data.tsv +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/data/petab/icg_example1/icg_measurement.tsv +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/data/petab/icg_example1/icg_observable.tsv +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/data/petab/icg_example1/icg_parameter.tsv +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/data/testsuite_baseline.json +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/examples/test_example_scripts.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/examples/test_interpolation.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/experiment/test_experiment_examples.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/experiment/test_experiment_run.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/fit/conftest.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/fit/test_cli.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/fit/test_display.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/fit/test_fisher.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/fit/test_fit.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/fit/test_helpers.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/fit/test_identifiability.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/fit/test_mapping_kinds.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/fit/test_metrics.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/fit/test_objects.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/fit/test_optimization_result.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/fit/test_parameter_mapping.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/fit/test_parameter_scale.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/fit/test_parameter_sets.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/fit/test_petab_omex.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/fit/test_petab_v2.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/fit/test_petab_v2_dosing.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/fit/test_petab_v2_symbols.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/fit/test_report.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/fit/test_robustness.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/models/test_biomodels.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/report/test_experiment_report.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/result/test_datagenerator.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/sensitivity/test_analysis.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/sensitivity/test_classification.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/sensitivity/test_parameters.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/sensitivity/test_sensitivity_example.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/simulation/test_algorithm.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/simulation/test_scan.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/simulation/test_simulation.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/test_data.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/test_mathml.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/test_model_change.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/test_sensitivity.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/test_units.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/testsuite/__init__.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/testsuite/conftest.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/testsuite/test_cases.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tests/testsuite/test_semantic.py +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/tox.ini +0 -0
- {sbmlsim-0.7.0 → sbmlsim-0.7.2}/zensical.toml +0 -0
|
@@ -120,6 +120,14 @@ jobs:
|
|
|
120
120
|
- uses: actions/checkout@v7
|
|
121
121
|
with:
|
|
122
122
|
persist-credentials: false
|
|
123
|
+
- name: Install the python dev files
|
|
124
|
+
# the extension of libroadrunner links against libpython, which the
|
|
125
|
+
# standalone interpreters do not put on the library search path; the
|
|
126
|
+
# submission below imports roadrunner
|
|
127
|
+
run: |
|
|
128
|
+
sudo add-apt-repository -y ppa:deadsnakes/ppa
|
|
129
|
+
sudo apt-get update
|
|
130
|
+
sudo apt-get install -y python3.14-dev
|
|
123
131
|
- name: Install uv
|
|
124
132
|
uses: astral-sh/setup-uv@v10.0.1
|
|
125
133
|
with:
|
|
@@ -135,7 +143,11 @@ jobs:
|
|
|
135
143
|
packages-dir: dist
|
|
136
144
|
- name: Run the SBML Test Suite against its newest release
|
|
137
145
|
# the results a submission to the SBML Test Suite Database is made of.
|
|
138
|
-
# A release submits against the newest suite, not against the pinned one
|
|
146
|
+
# A release submits against the newest suite, not against the pinned one.
|
|
147
|
+
# The archive is an attachment of the release and never blocks it: the
|
|
148
|
+
# package is on PyPI by this point and a failure here would otherwise
|
|
149
|
+
# leave the release half made, without its notes, as it did for 0.7.0
|
|
150
|
+
continue-on-error: true
|
|
139
151
|
run: |
|
|
140
152
|
uv sync --extra dev
|
|
141
153
|
uv run python scripts/testsuite.py submission --version latest --output submission
|
|
@@ -144,6 +156,8 @@ jobs:
|
|
|
144
156
|
with:
|
|
145
157
|
body_path: "release-notes/${{ github.ref_name }}.md"
|
|
146
158
|
files: submission/*.zip
|
|
159
|
+
# the submission above may have been skipped, the notes are the release
|
|
160
|
+
fail_on_unmatched_files: false
|
|
147
161
|
draft: false
|
|
148
162
|
prerelease: false
|
|
149
163
|
|
|
@@ -56,7 +56,7 @@ jobs:
|
|
|
56
56
|
# Only a build which can be published pays the three minutes: a pull
|
|
57
57
|
# request builds the site to check that it builds, it does not deploy
|
|
58
58
|
if: github.event_name != 'pull_request'
|
|
59
|
-
run: uv run python scripts/testsuite.py report --output site/testsuite
|
|
59
|
+
run: uv run python scripts/testsuite.py report --output site/testsuite/report
|
|
60
60
|
- name: Upload the site
|
|
61
61
|
uses: actions/upload-pages-artifact@v5
|
|
62
62
|
with:
|
|
@@ -8,9 +8,9 @@ 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.7.
|
|
11
|
+
version: "0.7.2"
|
|
12
12
|
date-released: "2026-02-01"
|
|
13
|
-
doi: "10.5281/zenodo.
|
|
13
|
+
doi: "10.5281/zenodo.3597770"
|
|
14
14
|
license: MIT
|
|
15
15
|
repository-code: "https://github.com/matthiaskoenig/sbmlsim"
|
|
16
16
|
url: "https://matthiaskoenig.github.io/sbmlsim"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: sbmlsim
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.2
|
|
4
4
|
Summary: sbmlsim are python utilities for the simulation of SBML models.
|
|
5
5
|
Project-URL: Homepage, https://matthiaskoenig.github.io/sbmlsim
|
|
6
6
|
Project-URL: Documentation, https://matthiaskoenig.github.io/sbmlsim
|
|
@@ -61,7 +61,7 @@ Description-Content-Type: text/markdown
|
|
|
61
61
|
[](https://pypi.org/project/sbmlsim/)
|
|
62
62
|
[](https://pypi.org/project/sbmlsim/)
|
|
63
63
|
[](https://opensource.org/licenses/MIT)
|
|
64
|
-
[](https://doi.org/10.5281/zenodo.3597770)
|
|
65
65
|
|
|
66
66
|
`sbmlsim` is a collection of python utilities for the simulation of models in the [Systems Biology Markup Language](https://sbml.org) (SBML), built on [libroadrunner](https://libroadrunner.org).
|
|
67
67
|
|
|
@@ -78,11 +78,11 @@ The documentation is available at [https://matthiaskoenig.github.io/sbmlsim](htt
|
|
|
78
78
|
If you have any questions or issues please [open an issue](https://github.com/matthiaskoenig/sbmlsim/issues).
|
|
79
79
|
|
|
80
80
|
## How to cite
|
|
81
|
-
[](https://doi.org/10.5281/zenodo.3597770)
|
|
82
82
|
|
|
83
|
-
If you use `sbmlsim` please cite the archived software on [Zenodo](https://
|
|
83
|
+
If you use `sbmlsim` please cite the archived software on [Zenodo](https://doi.org/10.5281/zenodo.3597770):
|
|
84
84
|
|
|
85
|
-
> König, M. (2026). *sbmlsim: SBML simulation made easy* (Version 0.6.0) [Computer software]. Zenodo. https://
|
|
85
|
+
> König, M. (2026). *sbmlsim: SBML simulation made easy* (Version 0.6.0) [Computer software]. Zenodo. https://doi.org/10.5281/zenodo.22653603
|
|
86
86
|
|
|
87
87
|
```bibtex
|
|
88
88
|
@software{konig_sbmlsim,
|
|
@@ -92,7 +92,8 @@ If you use `sbmlsim` please cite the archived software on [Zenodo](https://zenod
|
|
|
92
92
|
month = sep,
|
|
93
93
|
version = {0.6.0},
|
|
94
94
|
publisher = {Zenodo},
|
|
95
|
-
|
|
95
|
+
doi = {10.5281/zenodo.22653603},
|
|
96
|
+
url = {https://doi.org/10.5281/zenodo.22653603},
|
|
96
97
|
}
|
|
97
98
|
```
|
|
98
99
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
[](https://pypi.org/project/sbmlsim/)
|
|
7
7
|
[](https://pypi.org/project/sbmlsim/)
|
|
8
8
|
[](https://opensource.org/licenses/MIT)
|
|
9
|
-
[](https://doi.org/10.5281/zenodo.3597770)
|
|
10
10
|
|
|
11
11
|
`sbmlsim` is a collection of python utilities for the simulation of models in the [Systems Biology Markup Language](https://sbml.org) (SBML), built on [libroadrunner](https://libroadrunner.org).
|
|
12
12
|
|
|
@@ -23,11 +23,11 @@ The documentation is available at [https://matthiaskoenig.github.io/sbmlsim](htt
|
|
|
23
23
|
If you have any questions or issues please [open an issue](https://github.com/matthiaskoenig/sbmlsim/issues).
|
|
24
24
|
|
|
25
25
|
## How to cite
|
|
26
|
-
[](https://doi.org/10.5281/zenodo.3597770)
|
|
27
27
|
|
|
28
|
-
If you use `sbmlsim` please cite the archived software on [Zenodo](https://
|
|
28
|
+
If you use `sbmlsim` please cite the archived software on [Zenodo](https://doi.org/10.5281/zenodo.3597770):
|
|
29
29
|
|
|
30
|
-
> König, M. (2026). *sbmlsim: SBML simulation made easy* (Version 0.6.0) [Computer software]. Zenodo. https://
|
|
30
|
+
> König, M. (2026). *sbmlsim: SBML simulation made easy* (Version 0.6.0) [Computer software]. Zenodo. https://doi.org/10.5281/zenodo.22653603
|
|
31
31
|
|
|
32
32
|
```bibtex
|
|
33
33
|
@software{konig_sbmlsim,
|
|
@@ -37,7 +37,8 @@ If you use `sbmlsim` please cite the archived software on [Zenodo](https://zenod
|
|
|
37
37
|
month = sep,
|
|
38
38
|
version = {0.6.0},
|
|
39
39
|
publisher = {Zenodo},
|
|
40
|
-
|
|
40
|
+
doi = {10.5281/zenodo.22653603},
|
|
41
|
+
url = {https://doi.org/10.5281/zenodo.22653603},
|
|
41
42
|
}
|
|
42
43
|
```
|
|
43
44
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|

|
|
2
2
|
|
|
3
3
|
# sbmlsim: SBML simulation made easy
|
|
4
|
-
[](https://github.com/matthiaskoenig/sbmlsim/actions/workflows/ci-cd.yml) [](https://matthiaskoenig.github.io/sbmlsim) [](https://pypi.org/project/sbmlsim/) [](https://pypi.org/project/sbmlsim/) [](https://opensource.org/licenses/MIT) [](https://github.com/matthiaskoenig/sbmlsim/actions/workflows/ci-cd.yml) [](https://matthiaskoenig.github.io/sbmlsim) [](https://pypi.org/project/sbmlsim/) [](https://pypi.org/project/sbmlsim/) [](https://opensource.org/licenses/MIT) [](https://doi.org/10.5281/zenodo.3597770)
|
|
5
5
|
|
|
6
6
|
`sbmlsim` is a collection of python utilities for the simulation of models in the [Systems Biology Markup Language](https://sbml.org) (SBML), built on [libroadrunner](https://libroadrunner.org). The source code is available from [https://github.com/matthiaskoenig/sbmlsim](https://github.com/matthiaskoenig/sbmlsim).
|
|
7
7
|
|
|
@@ -51,11 +51,11 @@ Continue with [Installation](installation.md) and the [timecourse simulation gui
|
|
|
51
51
|
|
|
52
52
|
## How to cite
|
|
53
53
|
|
|
54
|
-
[](https://doi.org/10.5281/zenodo.3597770)
|
|
55
55
|
|
|
56
|
-
If you use `sbmlsim` please cite the archived software on [Zenodo](https://
|
|
56
|
+
If you use `sbmlsim` please cite the archived software on [Zenodo](https://doi.org/10.5281/zenodo.3597770):
|
|
57
57
|
|
|
58
|
-
> König, M. (2026). *sbmlsim: SBML simulation made easy* [Computer software]. Zenodo. https://doi.org/10.5281/zenodo.
|
|
58
|
+
> König, M. (2026). *sbmlsim: SBML simulation made easy* (Version 0.6.0) [Computer software]. Zenodo. https://doi.org/10.5281/zenodo.22653603
|
|
59
59
|
|
|
60
60
|
## License
|
|
61
61
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Plots and reports
|
|
2
2
|
|
|
3
|
-
Figures of a simulation experiment are described independent of the plotting backend: a `Figure` holds `Plot` panels, a plot has axes and `Curve` objects, and a curve references `Data` with a `Style`. The description is serialized with the experiment and
|
|
3
|
+
Figures of a simulation experiment are described independent of the plotting backend: a `Figure` holds `Plot` panels, a plot has axes and `Curve` objects, and a curve references `Data` with a `Style`. The description is serialized with the experiment, and the format chooses what renders it: matplotlib draws the static images, plotly the interactive pages.
|
|
4
4
|
|
|
5
5
|
## Figures and plots
|
|
6
6
|
|
|
@@ -21,7 +21,7 @@ plots[1].set_xaxis("[X]", unit="dimensionless")
|
|
|
21
21
|
print(fig, len(plots))
|
|
22
22
|
```
|
|
23
23
|
|
|
24
|
-
An `Axis` has a label and a unit, which together form the axis label
|
|
24
|
+
An `Axis` has a label and a unit, which together form the axis label `name`, a `scale` (`linear` or `log`), `min`, `max`, `grid` and visibility flags. `name` follows both parts, i.e. `axis.unit = "week"` updates the label a figure renders; setting `name` overrides them and setting it to `None` hands the axis back to its label and its unit. The data plotted on an axis are converted to its unit, see [Units](units.md).
|
|
25
25
|
|
|
26
26
|
## Curves
|
|
27
27
|
|
|
@@ -76,7 +76,7 @@ plots[0].curve(
|
|
|
76
76
|
print(style)
|
|
77
77
|
```
|
|
78
78
|
|
|
79
|
-
Colors are `ColorType` objects, created from matplotlib color names or hex strings
|
|
79
|
+
Colors are `ColorType` objects, created from matplotlib color names or hex strings and normalized to `#RRGGBBAA`.
|
|
80
80
|
|
|
81
81
|
## Rendering
|
|
82
82
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
The [SBML Test Suite](https://github.com/sbmlteam/sbml-test-suite) is the conformance suite of SBML. Every semantic case is a model, a settings file which says how to simulate it and a CSV with the results a correct simulator produces, and the tags of a case say which parts of SBML it exercises. Running it answers what `sbmlsim`, i.e. libroadrunner, supports, and the results are what a submission to the SBML Test Suite Database is made of.
|
|
4
4
|
|
|
5
|
-
[**The report of the current run**](testsuite/index.html) is generated with the documentation, so it describes the code of the `develop` branch.
|
|
5
|
+
[**The report of the current run**](testsuite/report/index.html) is generated with the documentation, so it describes the code of the `develop` branch.
|
|
6
6
|
|
|
7
7
|
## What is run
|
|
8
8
|
|
|
@@ -29,7 +29,7 @@ A case which does not pass does so in one of four ways, and the report separates
|
|
|
29
29
|
uv run python scripts/testsuite.py download
|
|
30
30
|
|
|
31
31
|
# run the cases and write the interactive report
|
|
32
|
-
uv run python scripts/testsuite.py report --output site/testsuite
|
|
32
|
+
uv run python scripts/testsuite.py report --output site/testsuite/report
|
|
33
33
|
|
|
34
34
|
# the archive which is submitted to the SBML Test Suite Database
|
|
35
35
|
uv run python scripts/testsuite.py submission --output dist
|
|
@@ -3,12 +3,12 @@ from pathlib import Path
|
|
|
3
3
|
import numpy as np
|
|
4
4
|
import pandas as pd
|
|
5
5
|
import xarray as xr
|
|
6
|
+
from matplotlib import pyplot as plt
|
|
6
7
|
from matplotlib.pyplot import Figure
|
|
7
8
|
|
|
8
9
|
from sbmlsim.data import Data, DataSet, load_pkdb_dataframe
|
|
9
10
|
from sbmlsim.experiment import SimulationExperiment
|
|
10
11
|
from sbmlsim.model import AbstractModel
|
|
11
|
-
from sbmlsim.plot.serialization_matplotlib import plt
|
|
12
12
|
from sbmlsim.result import XResult
|
|
13
13
|
from sbmlsim.simulation import Dimension, ScanSim, Timecourse, TimecourseSim
|
|
14
14
|
from sbmlsim.task import Task
|
|
@@ -5,9 +5,9 @@ For instance clamping species to given formulas.
|
|
|
5
5
|
"""
|
|
6
6
|
|
|
7
7
|
import pandas as pd
|
|
8
|
+
from matplotlib import pyplot as plt
|
|
8
9
|
|
|
9
10
|
from sbmlsim.model import ModelChange, RoadrunnerSBMLModel
|
|
10
|
-
from sbmlsim.plot.serialization_matplotlib import plt
|
|
11
11
|
from sbmlsim.resources import REPRESSILATOR_SBML
|
|
12
12
|
from sbmlsim.result import XResult
|
|
13
13
|
from sbmlsim.simulation import Timecourse, TimecourseSim
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
Example shows basic model simulations and plotting.
|
|
3
3
|
"""
|
|
4
4
|
|
|
5
|
-
from
|
|
5
|
+
from matplotlib import pyplot as plt
|
|
6
|
+
|
|
6
7
|
from sbmlsim.resources import REPRESSILATOR_SBML
|
|
7
8
|
from sbmlsim.result import XResult
|
|
8
9
|
from sbmlsim.simulation import Timecourse, TimecourseSim
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Release notes for sbmlsim 0.7.1
|
|
2
|
+

|
|
3
|
+
|
|
4
|
+
A patch release of the fixes which 0.7.0 surfaced: the page of the SBML Test Suite in the documentation was replaced by the report it links, the release workflow could not build the submission it attaches, and a file which is not part of the library was published with the sources.
|
|
5
|
+
|
|
6
|
+
## Fixes
|
|
7
|
+
|
|
8
|
+
- **the documentation of the SBML Test Suite is a page again.** `zensical` renders `docs/testsuite.md` into `site/testsuite/index.html` and the documentation workflow wrote the interactive report to `site/testsuite`, so the report replaced the page which describes it: [SBML Test Suite](https://matthiaskoenig.github.io/sbmlsim/testsuite/) served the report without the theme, without the navigation and without the search of the documentation, and the page itself was unreachable. The report is written to `site/testsuite/report` now and the page links it there, i.e. it is at [SBML Test Suite / report](https://matthiaskoenig.github.io/sbmlsim/testsuite/report/). The link of a page is resolved against its source, which is why it carries the `testsuite/` of the page itself; `tests/testsuite/test_report_path.py` pins the two paths against each other, since a report at the address of its documentation renders perfectly well and only the page is missing
|
|
9
|
+
- **the release workflow builds the submission it attaches.** The extension of libroadrunner links against libpython, which the standalone interpreters do not put on the library search path, so the `test` and the `sbml test suite` jobs install `python<version>-dev` first. The `release` job did not, although the submission it writes imports roadrunner, and it died with `ImportError: libpython3.14.so.1.0` on the tag of 0.7.0, after the package was published and before the GitHub release was created. The archive of the submission is an attachment and is `continue-on-error` now, so a failure to produce it costs the release its attachment and not its notes
|
|
10
|
+
- **`src/roadmap.md` is not part of the repository.** Personal notes next to the sources were committed by accident and are part of the sdist of 0.7.0 on PyPI, which cannot be changed; the wheel never carried them, since it is built from `src/sbmlsim`. The file is out of the repository and `.gitignore` keeps it out
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Release notes for sbmlsim 0.7.2
|
|
2
|
+

|
|
3
|
+
|
|
4
|
+
A patch release of the plotting: the axis labels of a figure, an inspection of the figure model and of its matplotlib rendering, and the citation.
|
|
5
|
+
|
|
6
|
+
## Fixes
|
|
7
|
+
|
|
8
|
+
- **the axis label follows the label and the unit** ([#167](https://github.com/matthiaskoenig/sbmlsim/issues/167)). `Axis.name` is the text a figure renders and it was computed once, in the constructor, so `axis.unit = "week"` or `axis.label = "duration"` left the old label on the plot. `label`, `unit` and `name` are properties now and `name` is derived from the other two, so a change of either is reflected; `name` is still the complete axis label and overrides them, and setting it to `None` hands the axis back to its label and its unit. A copied axis keeps that distinction, i.e. a derived label stays derived instead of being pinned to the text it had when it was copied
|
|
9
|
+
- **an axis without a unit is not labelled `[None]`.** `Axis("time")` rendered `time [None]` and `Axis(unit="week")` rendered `None [week]`, since the part which was not given was formatted into the label anyway. A part which is missing is left out now, i.e. `time` and `[week]`, and a `dimensionless` unit is written as `-` as before
|
|
10
|
+
- **copying an axis keeps its `reverse` flag.** `Axis.__copy__` did not pass it, so a plot which was copied, i.e. every plot of `Figure.add_plots` and of `create_plots`, lost the flag which inverts the axis
|
|
11
|
+
- **the spines of a missing axis were the spines of the other one.** A plot without an x axis hid the left and the right spine, i.e. the sides of the y axis, and kept the line of the axis it was hiding; they are also hidden on the panel itself rather than on whatever the styling loop before them had left over
|
|
12
|
+
- **`Axis.reverse` did nothing unless both bounds were set.** It swapped `min` and `max` instead of inverting the axis, so a reversed axis with only a lower bound assigned `None`. The bounds are the bounds and `reverse` is the direction they are drawn in
|
|
13
|
+
- **`Style.resolve_style` rewrote the style it derives from.** It returned the base style itself and assigned onto it, so resolving one derived style changed the base and every other style sharing it; and it looked the inherited attributes up under the camel case names of SED-ML, which no field of `Line`, `Marker` or `Fill` ever had, so the line type, the marker type and its edge, and the second fill colour were never inherited at all
|
|
14
|
+
- `Style.__copy__` dropped `base_style` and `Plot.__copy__` dropped `yaxis_right`
|
|
15
|
+
- **a plot knows its figure.** A plot resolves its data through its figure and only `add_plots` associated the two, so `plot.figure` and `plot.experiment` raised for every plot of `Figure.from_plots` or of `add_subplot`
|
|
16
|
+
- **`:` is the dotted linestyle of matplotlib.** The mapping carried the marker `.` in its place, so the canonical spelling raised a `KeyError`; the aliases matplotlib accepts for a shape the model has are understood, and a shape it cannot express raises a `ValueError` which names what it can
|
|
17
|
+
- **settings which were never rendered.** `Plot.facecolor` was built, defaulted and read by no serializer, and the `capsize` of a curve was defaulted, dropped by `Style.from_mpl_kwargs` and merged from an empty dictionary, so no error bar ever had a cap
|
|
18
|
+
- **code which could not run:** `interp`, `Figure._area_interpolation_points`, and the branches for an axis which is `None`, which the fallback to an empty `Axis` made unreachable together with the `ValueError` about a plot with curves and no axes
|
|
19
|
+
- `yaxis_right` is type checked like the other two axes, the span messages of `Figure.add_subplot` print the number they test, and `Figure.from_plots` takes the optional experiment `Figure.__init__` takes
|
|
20
|
+
- the Zenodo badge and the citation of the README, the documentation index and `CITATION.cff` carried the GitHub repository id and the concept DOI of sbmlutils, so every Zenodo link of sbmlsim resolved to the sbmlutils archive; they use the sbmlsim concept DOI `10.5281/zenodo.3597770` now ([#206](https://github.com/matthiaskoenig/sbmlsim/pull/206))
|
|
21
|
+
|
|
22
|
+
## Plotting
|
|
23
|
+
|
|
24
|
+
- **the rendering does not go through the global state of `pyplot`.** `plt.figure()` keeps every figure it creates in a global registry until someone closes it, so a library which renders many leaks them and matplotlib warns from the twentieth on, while a fit report draws about seventy. The serializer creates the figure itself, as the matplotlib documentation asks of a library; showing a figure is the one thing which needs a manager and gets one there
|
|
25
|
+
- **a curve without error data is drawn with `plot`** and not with `errorbar`, which builds the containers of the bars whether or not there are any: 8.13 ms to 7.70 ms for a panel of ten curves, and 0.278 ms to 0.120 ms for the draw call itself, the rest being the resolution of the data and the conversion of its units
|
|
26
|
+
- `ticks_visible` hides the tick labels with `tick_params`, which is correct for any locator and which an empty list of tick labels is not; a spine which is not drawn is hidden rather than painted in the colour of the figure, which only worked while the panel had that colour; a curve kept out of the legend is labelled `_nolegend_`, which is what matplotlib documents; and the grid of the figure comes from `add_gridspec`
|
|
27
|
+
- `legend_position` was read for a plot with one y axis only; a plot with a right y axis puts the curves of both axes into one legend when the legend is outside, since two of them would sit on top of each other
|
|
28
|
+
|
|
29
|
+
## Documentation
|
|
30
|
+
|
|
31
|
+
- [Plots and reports](https://matthiaskoenig.github.io/sbmlsim/plotting/) no longer says that a figure is exported to SED-ML, which was removed in 0.7.0, and names both backends rather than matplotlib alone; the axis label and what follows what is described where the axis is
|
|
@@ -9,7 +9,7 @@ the command line around `sbmlsim.testsuite`:
|
|
|
9
9
|
uv run python scripts/testsuite.py download
|
|
10
10
|
|
|
11
11
|
# run the cases and write the interactive report
|
|
12
|
-
uv run python scripts/testsuite.py report --output site/testsuite
|
|
12
|
+
uv run python scripts/testsuite.py report --output site/testsuite/report
|
|
13
13
|
|
|
14
14
|
# refresh the expected outcomes after a change which fixes or breaks cases
|
|
15
15
|
uv run python scripts/testsuite.py baseline
|
|
@@ -191,7 +191,7 @@ def main(argv: list[str] | None = None) -> int:
|
|
|
191
191
|
"-o",
|
|
192
192
|
"--output",
|
|
193
193
|
type=Path,
|
|
194
|
-
default=Path("site") / "testsuite",
|
|
194
|
+
default=Path("site") / "testsuite" / "report",
|
|
195
195
|
help="directory of the report or of the submission archive",
|
|
196
196
|
)
|
|
197
197
|
options = parser.parse_args(argv)
|
|
@@ -9,6 +9,8 @@ from copy import deepcopy
|
|
|
9
9
|
from dataclasses import dataclass
|
|
10
10
|
from pathlib import Path
|
|
11
11
|
|
|
12
|
+
from matplotlib import pyplot as plt
|
|
13
|
+
|
|
12
14
|
from sbmlsim.data import Data, DataSet
|
|
13
15
|
from sbmlsim.fit import FitMapping
|
|
14
16
|
from sbmlsim.fit.objects import FitDataInitialized
|
|
@@ -17,7 +19,6 @@ from sbmlsim.plot import Figure
|
|
|
17
19
|
from sbmlsim.plot.serialization_matplotlib import (
|
|
18
20
|
FigureMPL,
|
|
19
21
|
MatplotlibFigureSerializer,
|
|
20
|
-
plt,
|
|
21
22
|
)
|
|
22
23
|
from sbmlsim.result import XResult
|
|
23
24
|
from sbmlsim.serialization import ObjectJSONEncoder
|
|
@@ -644,10 +645,22 @@ class SimulationExperiment:
|
|
|
644
645
|
|
|
645
646
|
@timeit
|
|
646
647
|
def show_mpl_figures(self, mpl_figures: dict[str, FigureMPL]) -> None:
|
|
647
|
-
"""Show matplotlib figures.
|
|
648
|
+
"""Show matplotlib figures.
|
|
649
|
+
|
|
650
|
+
The figures of the serializer are created without `pyplot`, so that
|
|
651
|
+
rendering does not fill its global registry; a figure it does not
|
|
652
|
+
manage cannot show itself. Showing is the one place which needs the
|
|
653
|
+
state machine, so a figure gets a manager here and only here.
|
|
654
|
+
|
|
655
|
+
Args:
|
|
656
|
+
mpl_figures: the figures to show.
|
|
657
|
+
"""
|
|
648
658
|
for _, fig_mpl in mpl_figures.items():
|
|
649
|
-
|
|
650
|
-
|
|
659
|
+
if fig_mpl.canvas.manager is None:
|
|
660
|
+
manager = plt.figure().canvas.manager
|
|
661
|
+
if manager is not None:
|
|
662
|
+
manager.canvas.figure = fig_mpl
|
|
663
|
+
fig_mpl.set_canvas(manager.canvas)
|
|
651
664
|
fig_mpl.show()
|
|
652
665
|
|
|
653
666
|
@timeit
|
|
@@ -703,8 +716,17 @@ class SimulationExperiment:
|
|
|
703
716
|
return figures_to_html(self, results_path)
|
|
704
717
|
|
|
705
718
|
@classmethod
|
|
706
|
-
def close_mpl_figures(cls, mpl_figures: dict[str, FigureMPL]):
|
|
707
|
-
"""Close matplotlib figures.
|
|
719
|
+
def close_mpl_figures(cls, mpl_figures: dict[str, FigureMPL]) -> None:
|
|
720
|
+
"""Close matplotlib figures.
|
|
721
|
+
|
|
722
|
+
A figure of the serializer is not in the registry of `pyplot` and is
|
|
723
|
+
released when nothing refers to it any more, for which this is a no-op.
|
|
724
|
+
A figure of `figures_mpl()` may well come from `pyplot`, and that one
|
|
725
|
+
is closed here.
|
|
726
|
+
|
|
727
|
+
Args:
|
|
728
|
+
mpl_figures: the figures to close.
|
|
729
|
+
"""
|
|
708
730
|
for _, fig_mpl in mpl_figures.items():
|
|
709
731
|
plt.close(fig_mpl)
|
|
710
732
|
|
|
@@ -105,6 +105,7 @@ from typing import Any
|
|
|
105
105
|
import numpy as np
|
|
106
106
|
import pandas as pd
|
|
107
107
|
import scipy.optimize
|
|
108
|
+
from matplotlib import pyplot as plt
|
|
108
109
|
from matplotlib.axes import Axes
|
|
109
110
|
from scipy.stats import chi2
|
|
110
111
|
|
|
@@ -113,7 +114,6 @@ from sbmlsim.fit.objects import FitParameter
|
|
|
113
114
|
from sbmlsim.fit.optimization import FitTimeout, OptimizationProblem
|
|
114
115
|
from sbmlsim.fit.options import FitSettings
|
|
115
116
|
from sbmlsim.fit.parameters import ParameterSet
|
|
116
|
-
from sbmlsim.plot.serialization_matplotlib import plt
|
|
117
117
|
|
|
118
118
|
logger = logging.getLogger(__name__)
|
|
119
119
|
|
|
@@ -25,6 +25,7 @@ from typing import Any, ClassVar
|
|
|
25
25
|
import matplotlib
|
|
26
26
|
import numpy as np
|
|
27
27
|
import pandas as pd
|
|
28
|
+
from matplotlib import pyplot as plt
|
|
28
29
|
from matplotlib.axes import Axes
|
|
29
30
|
from matplotlib.figure import Figure
|
|
30
31
|
from matplotlib.lines import Line2D
|
|
@@ -40,7 +41,6 @@ from sbmlsim.fit.options import FitSettings
|
|
|
40
41
|
from sbmlsim.fit.parameter_mapping import has_renamed_targets
|
|
41
42
|
from sbmlsim.fit.parameters import ParameterSet, ParameterSets
|
|
42
43
|
from sbmlsim.fit.result import OptimizationResult, bound_warnings
|
|
43
|
-
from sbmlsim.plot.serialization_matplotlib import plt
|
|
44
44
|
from sbmlsim.report.templates import template_environment
|
|
45
45
|
|
|
46
46
|
logger = logging.getLogger(__name__)
|