Fixing some load/save issues with filebackend
authorEd Page <eopage@byu.net>
Mon, 27 Apr 2009 23:19:57 +0000 (18:19 -0500)
committerEd Page <eopage@byu.net>
Mon, 27 Apr 2009 23:19:57 +0000 (18:19 -0500)
src/file_backend.py
src/toolbox.py

index 954e38e..4d80fe5 100644 (file)
@@ -23,12 +23,19 @@ class FileBackend(object):
                        pickle.dump(state, pickleFile)
 
        def load(self):
+               state = {
+                       "projects": {},
+                       "items": {},
+                       "locations": {},
+               }
                try:
                        with open(self._filename, "rb") as pickleFile:
                                state = pickle.load(pickleFile)
                except IOError, e:
                        if e.errno != 2:
                                raise
+               except EOFError, e:
+                       pass
                self._projects = state["projects"]
                self._items = state["items"]
                self._locations = state["locations"]
index e21ca82..92cfeff 100644 (file)
@@ -6,6 +6,10 @@ from xml.dom import minidom
 import datetime
 
 
+class NonExistent(object):
+       pass
+
+
 class Optional(object):
        """
        Taglines:
@@ -41,9 +45,6 @@ class Optional(object):
        'Blacksheep'
        """
 
-       class NonExistent(object):
-               pass
-
        def __init__(self, value = NonExistent):
                self._value = value
 
@@ -51,10 +52,10 @@ class Optional(object):
                self._value = value
 
        def clear(self):
-               self._value = self.NonExistent
+               self._value = NonExistent
 
        def is_good(self):
-               return self._value is not self.NonExistent
+               return self._value is not NonExistent
 
        def get_nothrow(self, default = None):
                return self._value if self.is_good() else default