12
12
get_variables_results_from_observable_results , add_variables_to_model )
13
13
from .warnings import IgnoredBnglFileContentWarning
14
14
from biosimulators_utils .combine .exec import exec_sedml_docs_in_archive
15
+ from biosimulators_utils .config import get_config
15
16
from biosimulators_utils .log .data_model import CombineArchiveLog , TaskLog # noqa: F401
16
17
from biosimulators_utils .viz .data_model import VizFormat # noqa: F401
17
- from biosimulators_utils .report .data_model import ReportFormat , VariableResults # noqa: F401
18
+ from biosimulators_utils .report .data_model import ReportFormat , VariableResults , SedDocumentResults # noqa: F401
18
19
from biosimulators_utils .sedml import validation
19
20
from biosimulators_utils .sedml .data_model import (Task , ModelLanguage , ModelAttributeChange , # noqa: F401
20
21
UniformTimeCourseSimulation , Variable )
27
28
28
29
29
30
def exec_sedml_docs_in_combine_archive (archive_filename , out_dir ,
31
+ return_results = False ,
30
32
report_formats = None , plot_formats = None ,
31
- bundle_outputs = None , keep_individual_outputs = None ):
33
+ bundle_outputs = None , keep_individual_outputs = None ,
34
+ raise_exceptions = True ):
32
35
""" Execute the SED tasks defined in a COMBINE/OMEX archive and save the outputs
33
36
34
37
Args:
@@ -40,21 +43,28 @@ def exec_sedml_docs_in_combine_archive(archive_filename, out_dir,
40
43
* HDF5: directory in which to save a single HDF5 file (``{ out_dir }/reports.h5``),
41
44
with reports at keys ``{ relative-path-to-SED-ML-file-within-archive }/{ report.id }`` within the HDF5 file
42
45
46
+ return_results (:obj:`bool`, optional): whether to return the result of each output of each SED-ML file
43
47
report_formats (:obj:`list` of :obj:`ReportFormat`, optional): report format (e.g., csv or h5)
44
48
plot_formats (:obj:`list` of :obj:`VizFormat`, optional): report format (e.g., pdf)
45
49
bundle_outputs (:obj:`bool`, optional): if :obj:`True`, bundle outputs into archives for reports and plots
46
50
keep_individual_outputs (:obj:`bool`, optional): if :obj:`True`, keep individual output files
51
+ raise_exceptions (:obj:`bool`, optional): whether to raise exceptions
47
52
48
53
Returns:
49
- :obj:`CombineArchiveLog`: log
54
+ :obj:`tuple`:
55
+
56
+ * :obj:`SedDocumentResults`: results
57
+ * :obj:`CombineArchiveLog`: log
50
58
"""
51
59
sed_doc_executer = functools .partial (exec_sed_doc , exec_sed_task )
52
60
return exec_sedml_docs_in_archive (sed_doc_executer , archive_filename , out_dir ,
53
61
apply_xml_model_changes = False ,
62
+ return_results = return_results ,
54
63
report_formats = report_formats ,
55
64
plot_formats = plot_formats ,
56
65
bundle_outputs = bundle_outputs ,
57
- keep_individual_outputs = keep_individual_outputs )
66
+ keep_individual_outputs = keep_individual_outputs ,
67
+ raise_exceptions = raise_exceptions )
58
68
59
69
60
70
def exec_sed_task (sed_task , variables , log = None ):
@@ -94,22 +104,33 @@ def exec_sed_task(sed_task, variables, log=None):
94
104
* BioNetGen
95
105
* :obj:`get_variables_results_from_observable_results`
96
106
"""
107
+ config = get_config ()
97
108
log = log or TaskLog ()
98
109
99
- raise_errors_warnings (validation .validate_task (sed_task ),
100
- error_summary = 'Task `{}` is invalid.' .format (sed_task .id ))
101
- raise_errors_warnings (validation .validate_model_language (sed_task .model .language , ModelLanguage .BNGL ),
102
- error_summary = 'Language for model `{}` is not supported.' .format (sed_task .model .id ))
103
- raise_errors_warnings (validation .validate_model_change_types (sed_task .model .changes , (ModelAttributeChange , )),
104
- error_summary = 'Changes for model `{}` are not supported.' .format (sed_task .model .id ))
105
- raise_errors_warnings (* validation .validate_model_changes (sed_task .model ),
106
- error_summary = 'Changes for model `{}` are invalid.' .format (sed_task .model .id ))
107
- raise_errors_warnings (validation .validate_simulation_type (sed_task .simulation , (UniformTimeCourseSimulation , )),
108
- error_summary = '{} `{}` is not supported.' .format (sed_task .simulation .__class__ .__name__ , sed_task .simulation .id ))
109
- raise_errors_warnings (* validation .validate_simulation (sed_task .simulation ),
110
- error_summary = 'Simulation `{}` is invalid.' .format (sed_task .simulation .id ))
111
- raise_errors_warnings (* validation .validate_data_generator_variables (variables ),
112
- error_summary = 'Data generator variables for task `{}` are invalid.' .format (sed_task .id ))
110
+ if config .VALIDATE_SEDML :
111
+ raise_errors_warnings (
112
+ validation .validate_task (sed_task ),
113
+ error_summary = 'Task `{}` is invalid.' .format (sed_task .id ))
114
+ raise_errors_warnings (
115
+ validation .validate_model_language (sed_task .model .language , ModelLanguage .BNGL ),
116
+ error_summary = 'Language for model `{}` is not supported.' .format (sed_task .model .id ))
117
+ raise_errors_warnings (
118
+ validation .validate_model_change_types (sed_task .model .changes , (ModelAttributeChange , )),
119
+ error_summary = 'Changes for model `{}` are not supported.' .format (sed_task .model .id ))
120
+ raise_errors_warnings (
121
+ * validation .validate_model_changes (sed_task .model ),
122
+ error_summary = 'Changes for model `{}` are invalid.' .format (sed_task .model .id ))
123
+ raise_errors_warnings (
124
+ validation .validate_simulation_type (sed_task .simulation , (UniformTimeCourseSimulation , )),
125
+ error_summary = '{} `{}` is not supported.' .format (
126
+ sed_task .simulation .__class__ .__name__ ,
127
+ sed_task .simulation .id ))
128
+ raise_errors_warnings (
129
+ * validation .validate_simulation (sed_task .simulation ),
130
+ error_summary = 'Simulation `{}` is invalid.' .format (sed_task .simulation .id ))
131
+ raise_errors_warnings (
132
+ * validation .validate_data_generator_variables (variables ),
133
+ error_summary = 'Data generator variables for task `{}` are invalid.' .format (sed_task .id ))
113
134
114
135
# read the model from the BNGL file
115
136
bionetgen_task = read_task (sed_task .model .source )
0 commit comments