From 03e6db43936aa605422a744205a66646eb392a0a Mon Sep 17 00:00:00 2001 From: Simon Schampijer Date: Tue, 2 Oct 2007 23:40:39 +0200 Subject: [PATCH 1/2] Add support for 'keys' and 'in' method in datastore metadata --- sugar/datastore/datastore.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/sugar/datastore/datastore.py b/sugar/datastore/datastore.py index 0c2379d3..a5ac3d0e 100644 --- a/sugar/datastore/datastore.py +++ b/sugar/datastore/datastore.py @@ -60,8 +60,14 @@ class DSMetadata(gobject.GObject): def __delitem__(self, key): del self._props[key] + def __contains__(self, key): + return self._props.__contains__(key) + def has_key(self, key): return self._props.has_key(key) + + def keys(self): + return self._props.keys() def get_dictionary(self): return self._props From fab9ac8972efa12cb5d0ab9f950c7a3e2baffefc Mon Sep 17 00:00:00 2001 From: Tomeu Vizoso Date: Wed, 3 Oct 2007 21:33:34 +0200 Subject: [PATCH 2/2] Add DSMetadata.get() method. --- sugar/datastore/datastore.py | 6 ++++++ sugar/datastore/dbus_helpers.py | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/sugar/datastore/datastore.py b/sugar/datastore/datastore.py index a5ac3d0e..0a7be50d 100644 --- a/sugar/datastore/datastore.py +++ b/sugar/datastore/datastore.py @@ -75,6 +75,12 @@ class DSMetadata(gobject.GObject): def copy(self): return DSMetadata(self._props.copy()) + def get(self, key, default=None): + if self._props.has_key(key): + return self._props[key] + else: + return default + class DSObject(object): def __init__(self, object_id, metadata=None, file_path=None): self.object_id = object_id diff --git a/sugar/datastore/dbus_helpers.py b/sugar/datastore/dbus_helpers.py index b0b636c7..a10feec8 100644 --- a/sugar/datastore/dbus_helpers.py +++ b/sugar/datastore/dbus_helpers.py @@ -75,7 +75,7 @@ def get_filename(uid): return filename def find(query, properties, reply_handler, error_handler): - logging.debug('dbus_helpers.find: %r' % query) + logging.debug('dbus_helpers.find: %r %r' % (query, properties)) if reply_handler and error_handler: return _get_data_store().find(query, properties, reply_handler=reply_handler, error_handler=error_handler)