aboutsummaryrefslogtreecommitdiff
path: root/mu4web/xapian.py
diff options
context:
space:
mode:
Diffstat (limited to 'mu4web/xapian.py')
-rw-r--r--mu4web/xapian.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/mu4web/xapian.py b/mu4web/xapian.py
index d23b2d1..94e597d 100644
--- a/mu4web/xapian.py
+++ b/mu4web/xapian.py
@@ -1,8 +1,24 @@
+"""
+Extra xapian procedures.
+
+The python-xapian library exists, but doesn't seem to export metadata.
+"""
+
import subprocess
from typing import Optional
def metadata_list(db: str, prefix: Optional[str] = None) -> list[str]:
+ """
+ Enumerate all metadata entries in the given database.
+
+ :param db:
+ File system path to an Xapian "database". This is the
+ directory containing iamglass, flintlock, and .glass files.
+
+ :param prefix:
+ Limit list to entries starting with this string.
+ """
cmdline = ['xapian-metadata', 'list', db]
if prefix:
cmdline.append(prefix)
@@ -11,6 +27,15 @@ def metadata_list(db: str, prefix: Optional[str] = None) -> list[str]:
def metadata_get(db: str, key: str) -> str:
+ """
+ Get a xapian metadata value.
+
+ :param db:
+ Same as for metadata_list
+
+ :param key:
+ Exact name of key to look up.
+ """
cmd = subprocess.run(['xapian-metadata', 'get', db, key],
capture_output=True, text=True)
return cmd.stdout.strip()