diff options
author | Sascha Silbe <sascha@silbe.org> | 2009-08-17 11:23:32 (GMT) |
---|---|---|
committer | Sascha Silbe <sascha@silbe.org> | 2009-08-17 11:23:32 (GMT) |
commit | 1dd650d774dc3d6797934e3ca479b5e81ee0cd8f (patch) | |
tree | e0fc698f664f51e8cdf1f1079500d5f851b6bf0d | |
parent | 2d74b6d2df03dc77e64c82e4a754200bad21a0b5 (diff) |
API fix (byte_arrays), add ChangedMetadata signal, some minor changes (ea0750fa0fbc99d66f1707a18b79c4cadf923d88 rebased)
-rw-r--r-- | src/carquinyol/datastore.py | 20 | ||||
-rw-r--r-- | src/carquinyol/indexstore.py | 9 |
2 files changed, 20 insertions, 9 deletions
diff --git a/src/carquinyol/datastore.py b/src/carquinyol/datastore.py index 03b0032..60cf94c 100644 --- a/src/carquinyol/datastore.py +++ b/src/carquinyol/datastore.py @@ -122,7 +122,7 @@ class DataStore(dbus.service.Object): byte_arrays=True) @trace() def save(self, tree_id, parent_id, metadata, path, delete_after): - return self._save(self, tree_id, parent_id, metadata, path, delete_after) + return self._save(tree_id, parent_id, metadata, path, delete_after) def _save(self, tree_id, parent_id, metadata, path, delete_after): # TODO: copy docstring from datastore-redesign.html @@ -188,17 +188,25 @@ class DataStore(dbus.service.Object): def change_metadata(self, tree_id, version_id, metadata) : # TODO: copy docstring from datastore-redesign.html self._metadata_store.store(tree_id, version_id, metadata) + self._index_store.store(tree_id, version_id, metadata) + self.ChangedMetadata(tree_id, version_id, metadata) + + @dbus.service.signal(DS_DBUS_INTERFACE, signature="ssa{sv}") + def ChangedMetadata(self, tree_id, version_id, metadata): + pass @dbus.service.method(DS_DBUS_INTERFACE, in_signature='a{sv}a{sv}', - out_signature='aa{sv}u') + out_signature='aa{sv}u', + byte_arrays=True) @trace() def find(self, query, options): return self._find(query, options) @dbus.service.method(DS_DBUS_INTERFACE, in_signature='sa{sv}a{sv}', - out_signature='aa{sv}u') + out_signature='aa{sv}u', + byte_arrays=True) @trace() def textsearch(self, querystring, query, options) : return self._find(query, options, querystring) @@ -249,7 +257,8 @@ class DataStore(dbus.service.Object): @dbus.service.method(DS_DBUS_INTERFACE, in_signature='ss', out_signature='s', - sender_keyword='sender') + sender_keyword='sender', + byte_arrays=True) @trace() def get_data(self, tree_id, version_id, sender=None): # TODO: copy docstring from datastore-redesign.html @@ -288,7 +297,8 @@ class DataStore(dbus.service.Object): @dbus.service.method(DS_DBUS_INTERFACE, in_signature='ss', - out_signature='') + out_signature='', + byte_arrays=True) def delete(self, tree_id, version_id): # TODO: version_id=None/'' => remove all versions self._optimizer.remove(tree_id, version_id) diff --git a/src/carquinyol/indexstore.py b/src/carquinyol/indexstore.py index 2aa90c3..a8061a3 100644 --- a/src/carquinyol/indexstore.py +++ b/src/carquinyol/indexstore.py @@ -78,7 +78,8 @@ class IndexStore(object): def store(self, tree_id, version_id, properties): document = Document() - document.add_term("%s%s%s%s" % (_PREFIX_TID, tree_id, _PREFIX_VID, version_id)) + docid = "%s%s%s%s" % (_PREFIX_TID, tree_id, _PREFIX_VID, version_id) + document.add_term(docid) document.add_term(_PREFIX_TID + tree_id) document.add_term(_PREFIX_VID + version_id) document.add_term(_PREFIX_BUNDLE_ID + properties.get('bundle_id', '')) @@ -111,7 +112,7 @@ class IndexStore(object): if not self.contains(tree_id, version_id): self._database.add_document(document) else: - self._database.replace_document("%s%s%s%s" % (_PREFIX_TID, tree_id, _PREFIX_VID, version_id), document) + self._database.replace_document(docid, document) self._flush() def _extract_text(self, properties): @@ -162,7 +163,7 @@ class IndexStore(object): 'keep': _PREFIX_KEEP, } def _parse_query(self, query_dict, query_str): - logging.debug('_parse_query %r' % query_dict) + logging.debug('_parse_query %r %r', query_dict, query_str) queries = [] if query_str: @@ -208,7 +209,7 @@ class IndexStore(object): queries.append(Query('')) if query_dict: - logging.warning('Unknown term(s): %r' % query_dict) + logging.warning('Unknown term(s): %r', query_dict) return Query(Query.OP_AND, queries) |