]> git.notmuchmail.org Git - notmuch/blobdiff - bindings/python/notmuch/globals.py
python: Ensure that we pass utf-8 encoded string to libnotmuch
[notmuch] / bindings / python / notmuch / globals.py
index 77f2905b2fb405d3583e98525e463430ec2ea4c4..05b9962a40a554ac83805191ac31fc745e181f51 100644 (file)
@@ -98,3 +98,15 @@ class NotmuchError(Exception):
             return self.args[0]
         else:
             return STATUS.status2str(self.args[1])
+
+def _str(value):
+    """Ensure a nicely utf-8 encoded string to pass to libnotmuch
+
+    C++ code expects strings to be well formatted and
+    unicode strings to have no null bytes."""
+    if not isinstance(value, basestring):
+        raise TypeError("Expected str or unicode, got %s" % str(type(value)))
+    if isinstance(value, unicode):
+        return value.encode('UTF-8')
+    return value
+