From f1373936c0079a5022697f8b6b6415209bbec20d Mon Sep 17 00:00:00 2001 From: Sven Augustin Date: Tue, 6 Aug 2024 20:56:56 +0200 Subject: [PATCH] added BufferedJSON --- dap/utils/bufjson.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 dap/utils/bufjson.py diff --git a/dap/utils/bufjson.py b/dap/utils/bufjson.py new file mode 100644 index 0000000..2b243cd --- /dev/null +++ b/dap/utils/bufjson.py @@ -0,0 +1,35 @@ +import os +from time import sleep + +from .utils import json_load + + +class BufferedJSON: + + def __init__(self, fname): + self.fname = fname + self.last_time = self.get_time() + self.last_data = self.get_data() + + + def load(self): + current_time = self.get_time() + time_delta = current_time - self.last_time + if time_delta <= 2: #TODO: is that a good time? + return self.last_data + + sleep(0.5) #TODO: why? + current_data = self.get_data() + self.last_time = current_time + self.last_data = current_data + return current_data + + + def get_time(self): + return os.path.getmtime(self.fname) + + def get_data(self, *args, **kwargs): + return json_load(self.fname, *args, **kwargs) + + +