[sugar] [PATCH] activity.py: dirty flag and fix create_jobject == False case.

Tomeu Vizoso tomeu at tomeuvizoso.net
Mon May 19 08:40:14 EDT 2008


Hi,

+class WarningDictionary(dict):
+    def __getitem__(self,key):
+        warnings.warn("Trying to get key %s in unallocated activity
metadata dictionary %s"%(key,self),
+                RuntimeWarning, stacklevel=2)
+        return None
+    def __setetitem__(self,key,value):
+        warnings.warn("Trying to set key %s in unallocated activity
metadata dictionary %s"%(key,self),
+                RuntimeWarning, stacklevel=2)
+        return dict.__setitem__(self,key,value)

Why do you think this is needed?

+        self.dirty = bool(handle or create_jobject) #do not save if not dirty.

Why bool() and why not just initialize it to True? What do you think
about using is_dirty instead so it's clearer that it's a flag?

+        #Individual activities responsible for setting and clearing
+        #this flag, but activity.py respects it.

Perhaps this should be a pydocs comment?

+        logging.debug('Activity.save: %r' % self._jobject.object_id
if self._jobject else 'NOTHING')
...
+                if self._jobject:

Wouldn't be better to make sure that this method doesn't get executed
if there's no jobject?

+            logging.info('Activity.save: no need, nothing has
happened since last save.')

Should be logging.debug instead?

One concern I have about the general approach is that the activity
author needs to set dirty to False after a successful save, but that
info (when a save has finished successfully) is not available to the
activity.

Thanks,

Tomeu


More information about the Sugar mailing list