Source code for atesa.interpret

"""
This portion of the program is responsible for handling update of the results, checking global termination criteria, and
implementing the calls to JobType methods to control the value of the thread.coordinates attribute for the next step.
"""

from atesa import factory

[docs]def interpret(thread, allthreads, running, settings): """ The main function of interpret.py. Makes calls to JobType methods to update results, check termination criteria, and update thread.coordinates Parameters ---------- thread : Thread The Thread object on which to act allthreads : list The list of all extant Thread objects running : list The list of all currently running Thread objects settings : argparse.Namespace Settings namespace object Returns ------- termination: bool True if a global termination criterion has been met; False otherwise """ jobtype = factory.jobtype_factory(settings.job_type) termination = False if jobtype.check_for_successful_step(thread, settings): # ensure this step did not crash/fail jobtype.update_results(thread, allthreads, settings) # update results as needed termination = jobtype.check_termination(thread, allthreads, settings) # check global termination criteria running = jobtype.algorithm(thread, allthreads, running, settings) # set thread parameters for next step if settings.DEBUG: termination = True running = [thread] return termination, running