From ede725828a262187b1e742fbdddee2f10f9ffd3e Mon Sep 17 00:00:00 2001 From: Timothy Morton Date: Fri, 4 Jan 2019 12:15:28 -0500 Subject: [PATCH] change pickle read/load to binary; fixes a py3 bug --- RealSpaceInterface/Calc2D/Database.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/RealSpaceInterface/Calc2D/Database.py b/RealSpaceInterface/Calc2D/Database.py index bc8f006c2..68b1bab4b 100644 --- a/RealSpaceInterface/Calc2D/Database.py +++ b/RealSpaceInterface/Calc2D/Database.py @@ -14,22 +14,22 @@ def __init__(self, directory, db_file="database.dat"): self.db_path = os.path.join(directory, db_file) if not os.path.exists(self.db_path): logging.info("No database found; Creating one at {}.".format(self.db_path)) - with open(self.db_path, "w") as f: + with open(self.db_path, "wb") as f: pickle.dump(dict(), f) self.db = self.__read_database() def __read_database(self): - with open(self.db_path) as f: + with open(self.db_path, "rb") as f: return pickle.load(f) def __write_database(self): - with open(self.db_path, "w") as f: + with open(self.db_path, "wb") as f: pickle.dump(self.db, f) def __create_file(self, data): filename = str(uuid.uuid4()) - with open(os.path.join(self.directory, filename), "w") as f: + with open(os.path.join(self.directory, filename), "wb") as f: pickle.dump(data, f) return filename @@ -40,7 +40,7 @@ def __getitem__(self, key): frozen_key = self.__get_frozen_key(key) if frozen_key in self.db: filename = self.db[frozen_key] - with open(os.path.join(self.directory, filename)) as f: + with open(os.path.join(self.directory, filename), "rb") as f: return pickle.load(f) else: raise KeyError("No data for key: {}".format(key)) @@ -55,4 +55,4 @@ def __contains__(self, key): Return whether `self` contains a record for the given `key`. """ - return self.__get_frozen_key(key) in self.db \ No newline at end of file + return self.__get_frozen_key(key) in self.db