Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/poetry-build' into alt-poetry-build
Browse files Browse the repository at this point in the history
  • Loading branch information
CodeByDrescher committed Sep 5, 2024
2 parents 073b10a + bdf4b17 commit 6ab9c59
Show file tree
Hide file tree
Showing 8 changed files with 476 additions and 324 deletions.
2 changes: 1 addition & 1 deletion .github/actions/setup-poetry-env/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,5 +38,5 @@ runs:

- name: Install dependencies
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true'
run: poetry install --no-interaction --with bngl,cellml,lems,neuroml,sbml,simularium,escher,containers,logging
run: poetry install --no-interaction --with bngl,cellml,lems,neuroml,sbml,simularium,escher,containers,logging,rba,smoldyn
shell: bash
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,12 @@ jobs:
echo "version=$version" >> $GITHUB_OUTPUT
build:
name: Lint, test, and compile documentation
name: Lint, test, and compile docs (python ${{ matrix.python-version }})
if: "!contains(github.event.head_commit.message, '[skip ci]') && github.actor != 'allcontributors'"
runs-on: ubuntu-22.04
strategy:
matrix:
python-version: [ "3.8", "3.9", "3.10", "3.11", "3.12" ]
python-version: [ "3.10" ]
fail-fast: false
defaults:
run:
Expand Down
463 changes: 300 additions & 163 deletions poetry.lock

Large diffs are not rendered by default.

17 changes: 9 additions & 8 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -54,19 +54,20 @@ yamldown = "*"
[tool.poetry.group.dev.dependencies]
capturer = "^3.0"
docker = "^7.1.0"
bezier = "^2024.6.20"
bezier = "*"
flake8 = "^7.1.1"
pytest = "^8.3.2"
pytest-cov = "^5.0.0"
flaky = "^3.8.1"
jsonschema = "^4.23.0"

[tool.poetry.group.bngl]
optional = true
dependencies = { bionetgen = ">=0.8.4" }

[tool.poetry.group.cellml]
optional = true
dependencies = { libcellml = "*" }
dependencies = { libcellml = ">=0.5.0" }

[tool.poetry.group.lems]
optional = true
Expand All @@ -76,14 +77,14 @@ dependencies = { pylems = "*", pyneuroml = "*", pint = "*" }
optional = true
dependencies = { libneuroml = "*", pyneuroml = ">=0.5.18" }

#[tool.poetry.group.rba]
#optional = true
[tool.poetry.group.rba]
optional = true
# in requirements.optional.txt, rbapy was specified as:
#
# [rba]
# python -m pip install git+https://github.com/biosimulators/RBApy.git#egg=rbapy
#
# dependencies = { rbapy = { git = "https://github.com/biosimulators/RBApy.git", rev="d82e1ade319cb503f6e28759a0cbeffccabd89e8" } }
dependencies = { rbapy = { git = "https://github.com/biosimulators/RBApy.git", rev="d82e1ade319cb503f6e28759a0cbeffccabd89e8" } }
#
# if using official release (not biosimulators fork), use:
# dependencies = { rbapy = "*" }
Expand All @@ -93,9 +94,9 @@ dependencies = { libneuroml = "*", pyneuroml = ">=0.5.18" }
optional = true
dependencies = { python-libsbml = "*" }

#[tool.poetry.group.smoldyn]
#optional = true
#dependencies = { smoldyn = ">=2.66" }
[tool.poetry.group.smoldyn]
optional = true
dependencies = { smoldyn = ">=2.66" }

[tool.poetry.group.simularium]
optional = true
Expand Down
158 changes: 79 additions & 79 deletions tests/model_lang/rba/test_rba_utils.py
Original file line number Diff line number Diff line change
@@ -1,79 +1,79 @@
# from biosimulators_utils.model_lang.rba.utils import get_parameters_variables_outputs_for_simulation
# from biosimulators_utils.sedml.data_model import SteadyStateSimulation
# import math
# import os
# import unittest
#
#
# class RbaUtilsTestCase(unittest.TestCase):
# FIXTURES_DIRNAME = os.path.join(os.path.dirname(__file__), '..', '..', 'fixtures', 'rba')
#
# def test_get_parameters_variables_for_simulation(self):
# filename = os.path.join(self.FIXTURES_DIRNAME, 'Escherichia-coli-K12-WT.zip')
# params, sims, vars, plots = get_parameters_variables_outputs_for_simulation(filename, None, SteadyStateSimulation)
#
# self.assertEqual(len(params), 1620)
#
# param = next(param for param in params if param.id == 'parameter_amino_acid_concentration_Y_MIN')
# self.assertEqual(param.name, 'Value of parameter "Y_MIN" of function "amino_acid_concentration"')
# self.assertEqual(param.target, 'parameters.functions.amino_acid_concentration.parameters.Y_MIN')
# self.assertEqual(param.new_value, '-inf')
#
# self.assertEqual(len(sims), 1)
# sim = sims[0]
# self.assertIsInstance(sim, SteadyStateSimulation)
# self.assertEqual(sim.algorithm.kisao_id, 'KISAO_0000669')
# self.assertEqual(sim.algorithm.changes, [])
#
# self.assertEqual(len(vars), 15766)
#
# self.assertEqual(vars[0].id, 'objective')
# self.assertEqual(vars[0].name, 'Value of objective')
# self.assertEqual(vars[0].target, 'objective')
#
# var = next(var for var in vars if var.id == 'M_pqq_p')
# self.assertEqual(var.name, 'Dual of constraint "M_pqq_p"')
# self.assertEqual(var.target, 'constraints.M_pqq_p')
#
# var = next(var for var in vars if var.id == 'test_process_2_machinery')
# self.assertEqual(var.name, 'Primal of variable "test_process_2_machinery"')
# self.assertEqual(var.target, 'variables.test_process_2_machinery')
#
# def test_get_parameters_variables_for_simulation_native_ids_data_types(self):
# filename = os.path.join(self.FIXTURES_DIRNAME, 'Escherichia-coli-K12-WT.zip')
# params, sims, vars, plots = get_parameters_variables_outputs_for_simulation(filename, None, SteadyStateSimulation, native_ids=True, native_data_types=True)
#
# self.assertEqual(len(params), 1620)
#
# param = next(param for param in params if param.id == 'amino_acid_concentration.Y_MIN')
# self.assertEqual(param.name, None)
# self.assertEqual(param.target, 'parameters.functions.amino_acid_concentration.parameters.Y_MIN')
# self.assertEqual(param.new_value, -math.inf)
#
# self.assertEqual(len(sims), 1)
# sim = sims[0]
# self.assertIsInstance(sim, SteadyStateSimulation)
# self.assertEqual(sim.algorithm.kisao_id, 'KISAO_0000669')
# self.assertEqual(sim.algorithm.changes, [])
#
# self.assertEqual(len(vars), 15766)
#
# self.assertEqual(vars[0].id, None)
# self.assertEqual(vars[0].name, None)
# self.assertEqual(vars[0].target, 'objective')
#
# var = next(var for var in vars if var.id == 'M_pqq_p')
# self.assertEqual(var.name, None)
# self.assertEqual(var.target, 'constraints.M_pqq_p')
#
# var = next(var for var in vars if var.id == 'test_process_2_machinery')
# self.assertEqual(var.name, None)
# self.assertEqual(var.target, 'variables.test_process_2_machinery')
#
# def test_get_parameters_variables_for_simulation_error_handling(self):
# with self.assertRaises(ValueError):
# get_parameters_variables_outputs_for_simulation(None, None, None)
#
# filename = os.path.join(self.FIXTURES_DIRNAME, 'Escherichia-coli-K12-WT.zip')
# with self.assertRaises(NotImplementedError):
# get_parameters_variables_outputs_for_simulation(filename, None, None)
from biosimulators_utils.model_lang.rba.utils import get_parameters_variables_outputs_for_simulation
from biosimulators_utils.sedml.data_model import SteadyStateSimulation
import math
import os
import unittest


class RbaUtilsTestCase(unittest.TestCase):
FIXTURES_DIRNAME = os.path.join(os.path.dirname(__file__), '..', '..', 'fixtures', 'rba')

def test_get_parameters_variables_for_simulation(self):
filename = os.path.join(self.FIXTURES_DIRNAME, 'Escherichia-coli-K12-WT.zip')
params, sims, vars, plots = get_parameters_variables_outputs_for_simulation(filename, None, SteadyStateSimulation)

self.assertEqual(len(params), 1620)

param = next(param for param in params if param.id == 'parameter_amino_acid_concentration_Y_MIN')
self.assertEqual(param.name, 'Value of parameter "Y_MIN" of function "amino_acid_concentration"')
self.assertEqual(param.target, 'parameters.functions.amino_acid_concentration.parameters.Y_MIN')
self.assertEqual(param.new_value, '-inf')

self.assertEqual(len(sims), 1)
sim = sims[0]
self.assertIsInstance(sim, SteadyStateSimulation)
self.assertEqual(sim.algorithm.kisao_id, 'KISAO_0000669')
self.assertEqual(sim.algorithm.changes, [])

self.assertEqual(len(vars), 15766)

self.assertEqual(vars[0].id, 'objective')
self.assertEqual(vars[0].name, 'Value of objective')
self.assertEqual(vars[0].target, 'objective')

var = next(var for var in vars if var.id == 'M_pqq_p')
self.assertEqual(var.name, 'Dual of constraint "M_pqq_p"')
self.assertEqual(var.target, 'constraints.M_pqq_p')

var = next(var for var in vars if var.id == 'test_process_2_machinery')
self.assertEqual(var.name, 'Primal of variable "test_process_2_machinery"')
self.assertEqual(var.target, 'variables.test_process_2_machinery')

def test_get_parameters_variables_for_simulation_native_ids_data_types(self):
filename = os.path.join(self.FIXTURES_DIRNAME, 'Escherichia-coli-K12-WT.zip')
params, sims, vars, plots = get_parameters_variables_outputs_for_simulation(filename, None, SteadyStateSimulation, native_ids=True, native_data_types=True)

self.assertEqual(len(params), 1620)

param = next(param for param in params if param.id == 'amino_acid_concentration.Y_MIN')
self.assertEqual(param.name, None)
self.assertEqual(param.target, 'parameters.functions.amino_acid_concentration.parameters.Y_MIN')
self.assertEqual(param.new_value, -math.inf)

self.assertEqual(len(sims), 1)
sim = sims[0]
self.assertIsInstance(sim, SteadyStateSimulation)
self.assertEqual(sim.algorithm.kisao_id, 'KISAO_0000669')
self.assertEqual(sim.algorithm.changes, [])

self.assertEqual(len(vars), 15766)

self.assertEqual(vars[0].id, None)
self.assertEqual(vars[0].name, None)
self.assertEqual(vars[0].target, 'objective')

var = next(var for var in vars if var.id == 'M_pqq_p')
self.assertEqual(var.name, None)
self.assertEqual(var.target, 'constraints.M_pqq_p')

var = next(var for var in vars if var.id == 'test_process_2_machinery')
self.assertEqual(var.name, None)
self.assertEqual(var.target, 'variables.test_process_2_machinery')

def test_get_parameters_variables_for_simulation_error_handling(self):
with self.assertRaises(ValueError):
get_parameters_variables_outputs_for_simulation(None, None, None)

filename = os.path.join(self.FIXTURES_DIRNAME, 'Escherichia-coli-K12-WT.zip')
with self.assertRaises(NotImplementedError):
get_parameters_variables_outputs_for_simulation(filename, None, None)
80 changes: 40 additions & 40 deletions tests/model_lang/rba/test_rba_validation.py
Original file line number Diff line number Diff line change
@@ -1,40 +1,40 @@
# from biosimulators_utils.model_lang.rba import validation
# from biosimulators_utils.utils.core import flatten_nested_list_of_strings
# import os
# import rba
# import unittest
#
#
# class RbaValidationTestCase(unittest.TestCase):
# FIXTURE_DIRNAME = os.path.join(os.path.dirname(__file__), '..', '..', 'fixtures', 'rba')
#
# def test(self):
# filename = os.path.join(self.FIXTURE_DIRNAME, 'Escherichia-coli-K12-WT.zip')
# errors, warnings, model = validation.validate_model(filename)
# self.assertEqual(errors, [])
# self.assertEqual(warnings, [])
# self.assertIsInstance(model, rba.model.RbaModel)
#
# filename = None
# errors, warnings, model = validation.validate_model(filename)
# self.assertIn('is not a path', flatten_nested_list_of_strings(errors))
# self.assertEqual(warnings, [])
# self.assertEqual(model, None)
#
# filename = os.path.join(self.FIXTURE_DIRNAME, 'not exist.zip')
# errors, warnings, model = validation.validate_model(filename)
# self.assertIn('does not exist', flatten_nested_list_of_strings(errors))
# self.assertEqual(warnings, [])
# self.assertEqual(model, None)
#
# filename = __file__
# errors, warnings, model = validation.validate_model(filename)
# self.assertIn('is not a valid RBA', flatten_nested_list_of_strings(errors))
# self.assertEqual(warnings, [])
# self.assertEqual(model, None)
#
# filename = os.path.join(self.FIXTURE_DIRNAME, 'Escherichia-coli-K12-WT-invalid.zip')
# errors, warnings, model = validation.validate_model(filename)
# self.assertIn('is not a valid RBA', flatten_nested_list_of_strings(errors))
# self.assertEqual(warnings, [])
# self.assertEqual(model, None)
from biosimulators_utils.model_lang.rba import validation
from biosimulators_utils.utils.core import flatten_nested_list_of_strings
import os
import rba
import unittest


class RbaValidationTestCase(unittest.TestCase):
FIXTURE_DIRNAME = os.path.join(os.path.dirname(__file__), '..', '..', 'fixtures', 'rba')

def test(self):
filename = os.path.join(self.FIXTURE_DIRNAME, 'Escherichia-coli-K12-WT.zip')
errors, warnings, model = validation.validate_model(filename)
self.assertEqual(errors, [])
self.assertEqual(warnings, [])
self.assertIsInstance(model, rba.model.RbaModel)

filename = None
errors, warnings, model = validation.validate_model(filename)
self.assertIn('is not a path', flatten_nested_list_of_strings(errors))
self.assertEqual(warnings, [])
self.assertEqual(model, None)

filename = os.path.join(self.FIXTURE_DIRNAME, 'not exist.zip')
errors, warnings, model = validation.validate_model(filename)
self.assertIn('does not exist', flatten_nested_list_of_strings(errors))
self.assertEqual(warnings, [])
self.assertEqual(model, None)

filename = __file__
errors, warnings, model = validation.validate_model(filename)
self.assertIn('is not a valid RBA', flatten_nested_list_of_strings(errors))
self.assertEqual(warnings, [])
self.assertEqual(model, None)

filename = os.path.join(self.FIXTURE_DIRNAME, 'Escherichia-coli-K12-WT-invalid.zip')
errors, warnings, model = validation.validate_model(filename)
self.assertIn('is not a valid RBA', flatten_nested_list_of_strings(errors))
self.assertEqual(warnings, [])
self.assertEqual(model, None)
2 changes: 1 addition & 1 deletion tests/ref/test_ref_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,7 @@ def test_get_reference(self):
[
'James R. Roberts',
'Catherine J. Karr',
'COUNCIL ON ENVIRONMENTAL HEALTH',
'Jerome A. Paulson',
'Alice C. Brock-Utne',
'Heather L. Brumberg',
Expand All @@ -124,7 +125,6 @@ def test_get_reference(self):
'Megan T. Sandel',
'Leonardo Trasande',
'Robert O. Wright',
'COUNCIL ON ENVIRONMENTAL HEALTH',
],
]

Expand Down
Loading

0 comments on commit 6ab9c59

Please sign in to comment.