summaryrefslogtreecommitdiffstats
path: root/pyfirstaidkit/utils/backup.py
diff options
context:
space:
mode:
Diffstat (limited to 'pyfirstaidkit/utils/backup.py')
-rw-r--r--pyfirstaidkit/utils/backup.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/pyfirstaidkit/utils/backup.py b/pyfirstaidkit/utils/backup.py
index 31e2f07..b1f0c9e 100644
--- a/pyfirstaidkit/utils/backup.py
+++ b/pyfirstaidkit/utils/backup.py
@@ -22,6 +22,7 @@ from errors import NotImplemented
import os
import shutil
import hashlib
+import weakref
class BackupException(Exception):
pass
@@ -142,10 +143,11 @@ class FileBackupStore(BackupStoreIterface):
assert self.__class__._singleton==None
- self.__class__._singleton = self
self._path = path
self._backups = {}
os.makedirs(self._path)
+ self.__class__._singleton = weakref.proxy(self)
+ print "Backup system initialized"
def getBackup(self, id):
if not self._backups.has_key(id):
@@ -159,8 +161,13 @@ class FileBackupStore(BackupStoreIterface):
del self._backups[id]
def __del__(self):
- for id,backup in self._backups[id].iteritems():
+ if self.__class__._singleton is None:
+ return
+
+ for id,backup in self._backups.iteritems():
backup.cleanup()
+ os.rmdir(self._path)
+ print "Backup closed"
@classmethod
def get(cls, path):