mirror of
https://github.com/ANL-CEEESA/MIPLearn.git
synced 2025-12-06 17:38:51 -06:00
Serialize instances as JSON
This commit is contained in:
@@ -3,7 +3,7 @@
|
|||||||
# Released under the modified BSD license. See COPYING.md for more details.
|
# Released under the modified BSD license. See COPYING.md for more details.
|
||||||
|
|
||||||
from abc import ABC, abstractmethod
|
from abc import ABC, abstractmethod
|
||||||
import pickle, gzip
|
import pickle, gzip, json
|
||||||
|
|
||||||
|
|
||||||
class Instance(ABC):
|
class Instance(ABC):
|
||||||
@@ -121,9 +121,11 @@ class Instance(ABC):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
def load(self, filename):
|
def load(self, filename):
|
||||||
with gzip.open(filename, "rb") as f:
|
with gzip.GzipFile(filename, 'r') as f:
|
||||||
self.__dict__ = pickle.load(f)
|
data = json.loads(f.read().decode('utf-8'))
|
||||||
|
self.__dict__ = data
|
||||||
|
|
||||||
def dump(self, filename):
|
def dump(self, filename):
|
||||||
with gzip.open(filename, "wb") as f:
|
data = json.dumps(self.__dict__, indent=2).encode('utf-8')
|
||||||
pickle.dump(self.__dict__, f)
|
with gzip.GzipFile(filename, 'w') as f:
|
||||||
|
f.write(data)
|
||||||
Reference in New Issue
Block a user