X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=bindings%2Fpython%2Fnotmuch%2Fglobals.py;h=e5399beda0d47043a47c715db3b03b80ca406542;hb=0241a68e9eb67904ac1805ccc82910c555711ac6;hp=77f2905b2fb405d3583e98525e463430ec2ea4c4;hpb=c49bcfd4e2b539e65b0b4d59a414c2101f5178a2;p=notmuch diff --git a/bindings/python/notmuch/globals.py b/bindings/python/notmuch/globals.py index 77f2905b..e5399bed 100644 --- a/bindings/python/notmuch/globals.py +++ b/bindings/python/notmuch/globals.py @@ -65,6 +65,7 @@ STATUS = Status(['SUCCESS', 'NULL_POINTER', 'TAG_TOO_LONG', 'UNBALANCED_FREEZE_THAW', + 'UNBALANCED_ATOMIC', 'NOT_INITIALIZED']) """STATUS is a class, whose attributes provide constants that serve as return indicators for notmuch functions. Currently the following ones are defined. For @@ -81,6 +82,7 @@ description. * NULL_POINTER * TAG_TOO_LONG * UNBALANCED_FREEZE_THAW + * UNBALANCED_ATOMIC * NOT_INITIALIZED Invoke the class method `notmuch.STATUS.status2str` with a status value as @@ -98,3 +100,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 +