1
0
Fork 0
mirror of https://github.com/Findus23/collision-analyisis-and-interpolation.git synced 2024-09-19 15:13:50 +02:00

use save path relative to script file

This commit is contained in:
Lukas Winkler 2019-09-11 11:32:18 +02:00
parent 9b0fe5b174
commit 1ef7e8beea
Signed by: lukas
GPG key ID: 54DE4D798D244853

View file

@ -1,4 +1,5 @@
import json
import os
import pickle
from typing import List
@ -20,24 +21,30 @@ class SimulationList:
def append(self, value: Simulation):
self.simlist.append(value)
def pickle_save(self, filebasename="save"):
with open(f'{filebasename}.pickle', 'wb') as file:
def save_path(self, extension):
script_dir = os.path.dirname(__file__)
rel_path = "save" + extension
return os.path.join(script_dir, rel_path)
def pickle_save(self):
with open(self.save_path(".pickle"), 'wb') as file:
pickle.dump(self.simlist, file)
@classmethod
def pickle_load(cls, filebasename="save"):
with open(f'{filebasename}.pickle', 'rb') as file:
def pickle_load(cls):
tmp = cls()
with open(cls.save_path(tmp, ".pickle"), 'rb') as file:
return cls(pickle.load(file))
def jsonlines_save(self, filebasename="save"):
with open(f'{filebasename}.jsonl', 'w') as file:
def jsonlines_save(self):
with open(self.save_path(".jsonl"), 'w') as file:
for sim in self.simlist:
file.write(json.dumps(vars(sim)) + "\n")
@classmethod
def jsonlines_load(cls, filebasename="save"):
def jsonlines_load(cls):
simlist = cls()
with open(f'{filebasename}.jsonl', 'r') as file:
with open(cls.save_path(simlist, ".jsonl"), 'r') as file:
for line in file:
sim = Simulation.from_dict(json.loads(line))
simlist.append(sim)