abrar-lohia's picture
Upload 473 files
d82cf6a
raw
history blame
1.03 kB
"""
Responsabilities
Handles accumulation of debug events while playing media_player and saves
when sample's play ends.
"""
import time
import pickle
class BufferedLogger:
def __init__(self, outfile):
self.outfile = outfile
self.log_entries = []
self.start_wall_time = None
# (fn, args)
self.on_close_callback_info = None
def init_wall_time(self):
self.start_wall_time = time.perf_counter()
def log(self, *args):
self.log_entries.append(args)
def rebased_wall_time(self):
return time.perf_counter() - self.start_wall_time
def close(self):
self.save_log_entries_as_pickle()
if self.on_close_callback_info is not None:
fn, args = self.on_close_callback_info
fn(self.log_entries, *args)
def save_log_entries_as_pickle(self):
with open(self.outfile, "wb") as f:
pickle.dump(self.log_entries, f)
def clear(self):
self.log_entries = []
logger = None