''' File: tools.py Project: PatternsRecognizer Author: Milko Videv (milko.videv@thalesgroup.com) ----- Last Modified: Saturday, 2nd March 2024 10:25:48 am Modified By: Milko Videv (milko.videv@thalesgroup.com>) ----- Copyright 2017 - 2024, Thales DIS, MCS SSH ----- HISTORY: Date By Comments ---------- --- --------------------------------------------------------- ''' import sys import time import os import random def get_yes_no(prompt): while True: response = input(prompt + " [y]|n: ").strip().lower() if response == "" or response in ["yes", "y"]: return True elif response in ["no", "n"]: return False else: print("\nPlease enter 'yes|y|no|n': ") def debugger_is_active() -> bool: return hasattr(sys, 'gettrace') and sys.gettrace() is not None def pick_random_file(directory): files = [file for file in os.listdir(directory) if os.path.isfile(os.path.join(directory, file))] if files: return os.path.join(directory, random.choice(files)) else: return None class Stopwatch: def __init__(self): self.start_time = None self.end_time = None def start(self): self.start_time = time.time() def stop(self): self.end_time = time.time() def elapsed_time(self): if self.start_time is None: return 0 if self.end_time is None: elapsed = time.time() - self.start_time else: elapsed = self.end_time - self.start_time return elapsed def reset(self): self.start_time = None self.end_time = None