88
99from .data_model import KISAO_ALGORITHMS_MAP , get_integrator
1010from biosimulators_utils .combine .exec import exec_sedml_docs_in_archive
11- from biosimulators_utils .config import get_config
11+ from biosimulators_utils .config import get_config , Config # noqa: F401
1212from biosimulators_utils .log .data_model import CombineArchiveLog , TaskLog # noqa: F401
1313from biosimulators_utils .viz .data_model import VizFormat # noqa: F401
1414from biosimulators_utils .report .data_model import ReportFormat , VariableResults , SedDocumentResults # noqa: F401
3131__all__ = ['exec_sedml_docs_in_combine_archive' , 'exec_sed_task' ]
3232
3333
34- def exec_sedml_docs_in_combine_archive (archive_filename , out_dir ,
35- return_results = False ,
36- report_formats = None , plot_formats = None ,
37- bundle_outputs = None , keep_individual_outputs = None ,
38- raise_exceptions = True ):
34+ def exec_sedml_docs_in_combine_archive (archive_filename , out_dir , config = None ):
3935 """ Execute the SED tasks defined in a COMBINE/OMEX archive and save the outputs
4036
4137 Args:
@@ -47,12 +43,7 @@ def exec_sedml_docs_in_combine_archive(archive_filename, out_dir,
4743 * HDF5: directory in which to save a single HDF5 file (``{ out_dir }/reports.h5``),
4844 with reports at keys ``{ relative-path-to-SED-ML-file-within-archive }/{ report.id }`` within the HDF5 file
4945
50- return_results (:obj:`bool`, optional): whether to return the result of each output of each SED-ML file
51- report_formats (:obj:`list` of :obj:`ReportFormat`, optional): report format (e.g., csv or h5)
52- plot_formats (:obj:`list` of :obj:`VizFormat`, optional): report format (e.g., pdf)
53- bundle_outputs (:obj:`bool`, optional): if :obj:`True`, bundle outputs into archives for reports and plots
54- keep_individual_outputs (:obj:`bool`, optional): if :obj:`True`, keep individual output files
55- raise_exceptions (:obj:`bool`, optional): whether to raise exceptions
46+ config (:obj:`Config`, optional): BioSimulators common configuration
5647
5748 Returns:
5849 :obj:`tuple`:
@@ -63,31 +54,28 @@ def exec_sedml_docs_in_combine_archive(archive_filename, out_dir,
6354 sed_doc_executer = functools .partial (exec_sed_doc , exec_sed_task )
6455 return exec_sedml_docs_in_archive (sed_doc_executer , archive_filename , out_dir ,
6556 apply_xml_model_changes = True ,
66- return_results = return_results ,
67- report_formats = report_formats ,
68- plot_formats = plot_formats ,
69- bundle_outputs = bundle_outputs ,
70- keep_individual_outputs = keep_individual_outputs ,
71- raise_exceptions = raise_exceptions )
57+ config = config )
7258
7359
74- def exec_sed_task (task , variables , log = None ):
60+ def exec_sed_task (task , variables , log = None , config = None ):
7561 ''' Execute a task and save its results
7662
7763 Args:
7864 task (:obj:`Task`): task
7965 variables (:obj:`list` of :obj:`Variable`): variables that should be recorded
8066 log (:obj:`TaskLog`, optional): log for the task
67+ config (:obj:`Config`, optional): BioSimulators common configuration
8168
8269 Returns:
8370 :obj:`tuple`:
8471
8572 :obj:`VariableResults`: results of variables
8673 :obj:`TaskLog`: log
8774 '''
88- config = get_config ()
75+ config = config or get_config ()
8976
90- log = log or TaskLog ()
77+ if config .LOG and not log :
78+ log = TaskLog ()
9179
9280 model = task .model
9381 sim = task .simulation
@@ -121,7 +109,7 @@ def exec_sed_task(task, variables, log=None):
121109 raise NotImplementedError (msg )
122110
123111 # determine the simulation algorithm
124- algorithm_substitution_policy = get_algorithm_substitution_policy ()
112+ algorithm_substitution_policy = get_algorithm_substitution_policy (config = config )
125113 exec_kisao_id = get_preferred_substitute_algorithm_by_ids (
126114 sim .algorithm .kisao_id , KISAO_ALGORITHMS_MAP .keys (),
127115 substitution_policy = algorithm_substitution_policy )
@@ -267,18 +255,19 @@ def exec_sed_task(task, variables, log=None):
267255 raise NotImplementedError (msg )
268256
269257 # log action
270- log .algorithm = exec_kisao_id
271- log .simulator_details = {
272- 'method' : "simulateSBMLFromFile" ,
273- 'arguments' : {
274- 'sim_time' : sim .output_end_time ,
275- 'dt' : time_step ,
276- 'print_interval' : print_interval ,
277- 'print_amount' : print_amount ,
278- 'method' : integrator ,
279- 'use_lazy_method' : use_lazy_newton_method ,
280- },
281- }
258+ if config .LOG :
259+ log .algorithm = exec_kisao_id
260+ log .simulator_details = {
261+ 'method' : "simulateSBMLFromFile" ,
262+ 'arguments' : {
263+ 'sim_time' : sim .output_end_time ,
264+ 'dt' : time_step ,
265+ 'print_interval' : print_interval ,
266+ 'print_amount' : print_amount ,
267+ 'method' : integrator ,
268+ 'use_lazy_method' : use_lazy_newton_method ,
269+ },
270+ }
282271
283272 # return results and log
284273 return variable_results , log
0 commit comments