import sys import re def extract_init_time(file_contents): lines = file_contents.split('\n') init_time = None for line in lines: if line.startswith("InitTime:"): init_time_str = line.split(":")[1].strip() init_time = float(init_time_str.split()[0]) break return init_time def extract_time_accesses(file_contents): time_accesses_section = re.search(r'time accesses:\s+([\d.]+) ms', file_contents) if time_accesses_section: time_accesses = float(time_accesses_section.group(1)) return time_accesses else: return None def extract_max_bytes_sent(file_contents): communication_section = re.search(r'communication accesses: {(.*?)}', file_contents, re.DOTALL) if communication_section: communication_stats = communication_section.group(1) num_bytes_sent = [int(match.group(1)) for match in re.finditer(r'num_bytes_sent: (\d+)', communication_stats)] max_bytes_sent = max(num_bytes_sent) return max_bytes_sent else: return None def extract_max_time_accesses(file_contents): max_time_accesses_section = re.search(r'Maximum time accesses: (\d+\.\d+) ms', file_contents) if max_time_accesses_section: max_time_accesses = float(max_time_accesses_section.group(1)) return max_time_accesses else: return None def extract_max_of_time_accesses(file_contents): max_of_time_accesses_section = re.search(r'Maximum of time accesses: (\d+\.\d+) ms', file_contents) if max_of_time_accesses_section: max_of_time_accesses = float(max_of_time_accesses_section.group(1)) return max_of_time_accesses else: return None def main(): if len(sys.argv) != 2: print("Usage: python script.py ") return filename = sys.argv[1] try: with open(filename, 'r') as file: file_contents = file.read() max_init_time = extract_init_time(file_contents) time_accesses = extract_time_accesses(file_contents) max_bytes_sent = extract_max_bytes_sent(file_contents) max_time_accesses = extract_max_time_accesses(file_contents) max_of_time_accesses = extract_max_of_time_accesses(file_contents) # if max_init_time is not None: # print("Maximum InitTime:", max_init_time, "ms") # else: # print("No InitTime found in the file.") # if time_accesses is not None: # print("Time Accesses:", time_accesses, "ms") # else: # print("No time accesses found in the file.") if max_bytes_sent is not None: print(max_bytes_sent) else: print("No communication stats found in the file.") if max_init_time is not None and time_accesses is not None: total_time = max_init_time + time_accesses print(total_time) else: print("Cannot calculate total time due to missing values.") except FileNotFoundError: print("File not found:", filename) if __name__ == "__main__": main()