+if sys.version_info[0] == 2:
+ class Python3StringMixIn(object):
+ def __str__(self):
+ return unicode(self).encode('utf-8')
+
+
+ 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" % type(value))
+ if isinstance(value, unicode):
+ return value.encode('UTF-8')
+ return value
+else:
+ class Python3StringMixIn(object):
+ def __str__(self):
+ return self.__unicode__()
+
+
+ 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, str):
+ raise TypeError("Expected str, got %s" % type(value))
+ return value.encode('UTF-8')
+
+