aboutsummaryrefslogtreecommitdiff
path: root/bindings/python/notmuch/tag.py
Commit message (Collapse)AuthorAge
* properly raise exceptions in python bindingsJustus Winter2011-09-29
| | | | | | | There are various locations where exceptions are constructed but not raised. This patch adds the necessary raise statements. Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
* python: Fix unsafe utf-8 decodingspazz2011-08-17
| | | | | | | | This prevents unsafe calls to decode for return value None in get_authors/get_subject which would current throw an Exception. Original patch modified by Sebastian Spaeth. Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
* python: remove Tags().__len__() implementationSebastian Spaeth2011-08-09
| | | | | | | | | | | len() exhausts the tag iterator and e.g. list() or "".join(tags) implicitly call len() if existing and then failing. So, we remove Tags.__len__(). If you need to know the number of tags a message has, do use len(list(tags)). It would be nicer to be able to support len() directly... Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
* python: Do explicitly check if the next tag existsSebastian Spaeth2011-08-09
| | | | | | | | If we try to pull a non-existing tag, Tags._get will return None and the appended .decode() command will fail. So make sure that there is a tag to be fetched before fetching it. Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
* python: pep8 compliance for tag.pypazz2011-08-09
|
* python: Fix copy'n paste typoCedric Cabessa2011-08-09
| | | | | | | we accessed a wrong attribute due to a copy and paste error. Thanks for catching this. Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
* python: represent message tags as unicode instancesSebastian Spaeth2011-07-11
| | | | | | | | | | | | Rather than returning simply strings and having to guess their encoding, return explicit unicode() strings for the tags. Xapian stores UTF8, so we know that they come as UTF8 encoded string. Note: I tried to directly use the c_wchar_p type of the ctypes library which translates directly into an unicode type, but that did not work out so well, so we take c_char_p and .decode() them manually. Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
* bindings/python: Implement Tags().__nonzero__()Sebastian Spaeth2011-06-02
| | | | | | | | Analog to Threads.__nonzero__ this allows us to perform list() on a Threads() object and to repeatedly call "if Tags():" or "bool(Tags())" without implicitly invoking len(), thus exhausting our iterator. While touching this code, I added a small micro-optimization to the Tag next() function. There is no need to explicitly check _is_valid, as _get implicitly does check for validness and returns None, if there is no more Tag to fetch. This avoids some roundtrips into the library when iterating through Tags. Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
* Move everything down into a bindings/python directory.Carl Worth2010-04-21
In preparation for merging the python bindings into the notmuch repository.