diff options
Diffstat (limited to 'mu4web/xapian.py')
-rw-r--r-- | mu4web/xapian.py | 25 |
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() |