Skip to content

Commit e72391d

Browse files
committed
Implement Model.__repr__
Include the model ID in `Model.__repr__`.
1 parent be3a5eb commit e72391d

File tree

3 files changed

+19
-0
lines changed

3 files changed

+19
-0
lines changed

petab/v1/models/model.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ class Model(abc.ABC):
1616
def __init__(self):
1717
...
1818

19+
def __repr__(self):
20+
return f"<{self.__class__.__name__} {self.model_id!r}>"
21+
1922
@staticmethod
2023
@abc.abstractmethod
2124
def from_file(filepath_or_buffer: Any, model_id: str) -> Model:

tests/v1/test_model_pysb.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,3 +87,9 @@ def test_pattern_parsing(uses_pysb):
8787
pattern = pysb.as_complex_pattern(B(s="a") ** c1)
8888
assert pattern_from_string(str(pattern), model).matches(pattern)
8989
assert str(pattern) == str(pattern_from_string("B(s='a') ** c1", model))
90+
91+
92+
def test_pysb_model_repr(uses_pysb):
93+
model = pysb.Model(name="test")
94+
petab_model = PySBModel(model)
95+
assert repr(petab_model) == "<PySBModel 'test'>"

tests/v1/test_sbml.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
import os
22
import sys
33

4+
import libsbml
45
import pandas as pd
56
import pytest
67

8+
from petab.v1.models.sbml_model import SbmlModel
9+
710
sys.path.append(os.getcwd())
811
import petab # noqa: E402
912

@@ -122,3 +125,10 @@ def test_get_condition_specific_models():
122125
)
123126

124127
check_model(condition_model)
128+
129+
130+
def test_sbml_model_repr():
131+
sbml_model = libsbml.SBMLDocument().createModel()
132+
sbml_model.setId("test")
133+
petab_model = SbmlModel(sbml_model)
134+
assert repr(petab_model) == "<SbmlModel 'test'>"

0 commit comments

Comments
 (0)