|
@@ -7,6 +7,7 @@ import os
|
|
|
|
|
|
from .basestorage import BaseStorage
|
|
|
|
|
|
+
|
|
|
class Storage(BaseStorage):
|
|
|
"""Provides file-based persistency for BaseStorage"""
|
|
|
|
|
@@ -21,9 +22,10 @@ class Storage(BaseStorage):
|
|
|
|
|
|
def open(self):
|
|
|
self.storage_file = open(self.storage_filename, 'a+b')
|
|
|
+ loaded_data = {}
|
|
|
try:
|
|
|
self.storage_file.seek(0, os.SEEK_SET)
|
|
|
- self.data = pickle.load(self.storage_file)
|
|
|
+ loaded_data = pickle.load(self.storage_file)
|
|
|
|
|
|
except EOFError:
|
|
|
self.logger.warn('The storage file was empty. I\'ll assume this is the first start with this storage directory.')
|
|
@@ -35,9 +37,8 @@ class Storage(BaseStorage):
|
|
|
))
|
|
|
raise err
|
|
|
|
|
|
- if self.data is None:
|
|
|
- self.data = {}
|
|
|
- self.logger.info('Opened storage with ' + str(len(self.data)) + ' entries.')
|
|
|
+ self.logger.info('Opened storage with %d entries.', len(loaded_data))
|
|
|
+ self.init_data(loaded_data)
|
|
|
|
|
|
def save(self):
|
|
|
if self.storage_file is None:
|
|
@@ -52,4 +53,4 @@ class Storage(BaseStorage):
|
|
|
self.save()
|
|
|
self.storage_file.close()
|
|
|
self.storage_file = None
|
|
|
- self.data = None
|
|
|
+ BaseStorage.close(self)
|