3
class BufferedJsonWriter(object):
4
def __init__(self, file_name, buffer_size=50):
5
self.file_path = file_name
7
self.buffer_size = buffer_size
12
def __exit__(self, type, value, traceback):
15
def write(self, obj=None):
17
self.buffer.append(obj)
18
if len(self.buffer)>=self.buffer_size:
21
def write_buffer(self):
22
with open(self.file_path, "a") as data_file:
23
data_file.write(json.dumps(self.buffer))
27
class BufferedJsonReader(object):
28
def __init__(self, file_name):
29
self.file_path = file_name
34
def __exit__(self, type, value, traceback):
38
with open(self.file_path, "r") as data_file:
39
for line in data_file:
40
yield from json.loads(line)
43
return list(self.__itr__())
47
def get_cache_path(dataset):
48
cache_files = dataset.cache_files
49
if isinstance(cache_files,dict):
50
cache_files = next(iter(cache_files.values()))
51
return pathlib.Path(cache_files[0]['filename']).parent