############################################################################### # Description ############################################################################### # Prints records to standard out ############################################################################### # Public functions ############################################################################### def stdout_printer(stream): for record in stream: if record.record_type == "event": _print_event(record) elif record.record_type == "meta" and record.type_name == "stats": _print_stats(record) elif record.record_type == "error" and record.type_name == 'inversion_start': _print_inversion_start(record) elif record.record_type == "error" and record.type_name == 'inversion_end': _print_inversion_end(record) else: continue print("") ############################################################################### # Private functions ############################################################################### def _print_event(record): print("Job: {}.{}".format(record.pid,record.job)) print("Type: {}".format(record.type_name)) print("Time: {}".format(record.when)) def _print_inversion_start(record): print("Type: {}".format("Inversion start")) print("Time: {}".format(record.job.inversion_start)) print("Job: {}.{}".format(record.job.pid,record.job.job)) print("Deadline: {}".format(record.job.deadline)) print("Eligible: ",end="") for job in record.eligible: print(str(job) + " ",end="") print("") print("On CPU: ",end="") for job in record.on_cpu: print(str(job) + " ",end="") print("") #newline def _print_inversion_end(record): print("Type: {}".format("Inversion end")) print("Time: {}".format(record.job.inversion_end)) print("Duration: {}".format( record.job.inversion_end - record.job.inversion_start)) print("Job: {}.{}".format(record.job.pid,record.job.job)) print("Deadline: {}".format(record.job.deadline)) print("Eligible: ",end="") for job in record.eligible: print(str(job) + " ",end="") print("") print("On CPU: ",end="") for job in record.on_cpu: print(str(job) + " ",end="") print("") #newline def _print_stats(record): print("Inversion statistics") print("Num inversions: {}".format(record.num_inversions)) print("Min inversion: {}".format(record.min_inversion)) print("Max inversion: {}".format(record.max_inversion)) print("Avg inversion: {}".format(record.avg_inversion))