diff options
author | Sascha Silbe <sascha@silbe.org> | 2009-07-20 12:16:43 (GMT) |
---|---|---|
committer | Sascha Silbe <sascha@silbe.org> | 2009-07-20 12:16:43 (GMT) |
commit | ea0750fa0fbc99d66f1707a18b79c4cadf923d88 (patch) | |
tree | 51c9f58ad030253be2a7ec56bd5a1502a0038413 | |
parent | 3cee29ab3d28f19598d56deae1f80492cd22f044 (diff) |
API fix (byte_arrays), add ChangedMetadata signal, some minor changes
-rw-r--r-- | src/carquinyol/datastore.py | 20 | ||||
-rw-r--r-- | src/carquinyol/indexstore.py | 12 |
2 files changed, 22 insertions, 10 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 1c1a2a2..84db3d2 100644 --- a/src/carquinyol/indexstore.py +++ b/src/carquinyol/indexstore.py @@ -80,7 +80,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', '')) @@ -113,7 +114,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): @@ -223,11 +224,11 @@ class IndexStore(object): '') 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: - queries.append(self._parse_query_xapian(query_str)) + queries.append(self._parse_query_xapian(str(query_str))) # construct queries for term-stored metadata queries += [ @@ -245,8 +246,9 @@ 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) + logging.debug("queries: %r", [str(q) for q in queries]) return Query(Query.OP_AND, queries) def delete(self, tree_id, version_id): |