Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSascha Silbe <sascha@silbe.org>2009-07-20 12:16:43 (GMT)
committer Sascha Silbe <sascha@silbe.org>2009-07-20 12:16:43 (GMT)
commitea0750fa0fbc99d66f1707a18b79c4cadf923d88 (patch)
tree51c9f58ad030253be2a7ec56bd5a1502a0038413
parent3cee29ab3d28f19598d56deae1f80492cd22f044 (diff)
API fix (byte_arrays), add ChangedMetadata signal, some minor changes
-rw-r--r--src/carquinyol/datastore.py20
-rw-r--r--src/carquinyol/indexstore.py12
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):