Commit graph

293 commits

Author SHA1 Message Date
Florian Klink
91fe20cd90 python: open messages in binary mode
currently, notmuch's get_message_parts() opens the file in text mode and passes
the file object to email.message_from_file(fp). In case the email contains
UTF-8 characters, reading might fail inside email.parser with the following exception:

  File "/usr/lib/python3.6/site-packages/notmuch/message.py", line 591, in get_message_parts
    email_msg = email.message_from_binary_file(fp)
  File "/usr/lib/python3.6/email/__init__.py", line 62, in message_from_binary_file
    return BytesParser(*args, **kws).parse(fp)
  File "/usr/lib/python3.6/email/parser.py", line 110, in parse
    return self.parser.parse(fp, headersonly)
  File "/usr/lib/python3.6/email/parser.py", line 54, in parse
    data = fp.read(8192)
  File "/usr/lib/python3.6/codecs.py", line 321, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe4 in position 1865: invalid continuation byte

To fix this, read file in binary mode and pass to
email.message_from_binary_file(fp).

Unfortunately, Python 2 doesn't support
email.message_from_binary_file(fp), so keep using
email.message_from_file(fp) there.

Signed-off-by: Florian Klink <flokli@flokli.de>
2017-10-02 07:21:33 -03:00
Gaute Hope
227ecf4949 python: deprecated add_message calls index_file correctly and returns result
The deprecated Database.add_message now calls the new index_file with
correct number of arguments (without an extra `self`), and returns the
tuple from index_file - as it used to do before.

This change also adds a DeprecationWarning to the function.
2017-09-12 15:21:40 -03:00
David Bremner
4366895062 notmuch 0.25.1 release
-----BEGIN PGP SIGNATURE-----
 
 iQGzBAABCAAdFiEE3VS2dnyDRXKVCQCp8gKXHaSnniwFAlm3OCwACgkQ8gKXHaSn
 niz5Swv/bhm/cSBRoav7deonMPfAAqloeNSdCpcOksEvGFtn6PZMHPDLfQ0DORcb
 pHIfGnrIpGFKlOZ8zO4Q3ANhito7hCCaasn6k70Zhpu5KV+YMCKMABtnho1p3jKT
 elK/3tkvlcWFEgRBVbuLsTn/iYFz8kaukfRyh+BhlchJSifSZQDFaPnmxOCvOfNK
 Aipp7o/yAQGgiXUczISgceirOEruq3QePC9Bjbzj3UKa5D/UUqki37xlojl9dUC7
 eNmt/grittR4e0eU5ytKck5KlVwxirs9U3Hm9A8o9giWkk98lJYobLXpDFPQ8Ock
 7GGIMyP3DGBGTfn5mswKUdiEsuCgobH47y4RBd0jpSyTpFDSTD/BTYTiU/kSa8k4
 XNO9uS4+jrgUJ4rfrZYK1VNXfQ85L17zZCpgeGgV+XguVcLKwQEjQ945/wk32pVh
 03vdQX57myPLWeWVo5pIB0qzKeuEuaZ5b2m1QngHYUgROEm5PZnBGGHkgS50dNxp
 5156wSur
 =dTj5
 -----END PGP SIGNATURE-----

Merge tag '0.25.1'

notmuch 0.25.1 release (bugfix for emacs bug 28350)
2017-09-11 22:32:00 -03:00
David Bremner
0fa257cb74 version: bump to 0.25.1 2017-09-11 22:19:46 -03:00
Daniel Kahn Gillmor
b10ce6bc23 database: add n_d_index_file (deprecates n_d_add_message)
We need a way to pass parameters to the indexing functionality on the
first index, not just on reindexing.  The obvious place is in
notmuch_database_add_message.  But since modifying the argument list
would break both API and ABI, we needed a new name.

I considered notmuch_database_add_message_with_params(), but the
functionality we're talking about doesn't always add a message.  It
tries to index a specific file, possibly adding a message, but
possibly doing other things, like adding terms to an existing message,
or failing to deal with message objects entirely (e.g. because the
file didn't contain a message).

So i chose the function name notmuch_database_index_file.

I confess i'm a little concerned about confusing future notmuch
developers with the new name, since we already have a private
_notmuch_message_index_file function, and the two do rather different
things.  But i think the added clarity for people linking against the
future libnotmuch and the capacity for using index parameters makes
this a worthwhile tradeoff.  (that said, if anyone has another name
that they strongly prefer, i'd be happy to go with it)

This changeset also adjusts the tests so that we test whether the new,
preferred function returns bad values (since the deprecated function
just calls the new one).

We can keep the deprecated n_d_add_message function around as long as
we like, but at the next place where we're forced to break API or ABI
we can probably choose to drop the name relatively safely.

NOTE: there is probably more cleanup to do in the ruby and go bindings
to complete the deprecation directly.  I don't know those languages
well enough to attempt a fix; i don't know how to test them; and i
don't know the culture around those languages about API additions or
deprecations.
2017-08-23 07:38:37 -03:00
Daniel Kahn Gillmor
0155411e05 fix typo 2017-08-18 19:47:40 -03:00
Vladimir Panteleev
ca4688e103 Use rooted paths in .gitignore files
A leading / in paths in a .gitignore file matches the beginning of the
path, meaning that for patterns without slashes, git will match files
only in the current directory as opposed to in any subdirectory.

Prefix relevant paths with / in .gitignore files, to prevent
accidentally ignoring files in subdirectories and possibly slightly
improve the performance of "git status".
2017-08-18 19:42:35 -03:00
David Bremner
7a4c60e446 version: bump to 0.25 2017-07-25 07:21:29 -04:00
David Bremner
b8ccfe342d version: bump to 0.25~rc1 2017-07-18 07:04:29 -03:00
Daniel Kahn Gillmor
87bdfbc91f Fix orthography 2017-07-18 06:50:44 -03:00
David Bremner
694e443db5 version: bump version to 0.25~rc0 2017-07-16 08:01:42 -03:00
David Bremner
1ec634461e Merge branch 'release' 2017-06-01 07:54:38 -03:00
David Bremner
4fb08341a4 version: bump to 0.24.2 2017-06-01 07:13:00 -03:00
David Bremner
d877240f4e Merge branch 'release'
wildcard search fixes, plus release busywork
2017-03-25 11:51:03 -03:00
David Bremner
d9ec7e3483 version: bump to 0.24.1
The release is not yet finalized, but start the busywork needed.
2017-03-25 11:20:56 -03:00
David Bremner
a35040eec7 python: bump SOVERSION to 5
Otherwise hilarity ensues when the python bindings try to use the new
API against the old shared library.
2017-03-22 09:25:59 -03:00
David Bremner
3721bd45d7 lib: replace deprecated n_q_count_threads with status returning version
This function was deprecated in notmuch 0.21.  We re-use the name for
a status returning version, and deprecate the _st name.
2017-03-22 08:35:07 -03:00
David Bremner
5ce8e0b11b lib: replace deprecated n_q_count_messages with status returning version
This function was deprecated in notmuch 0.21.  We re-use the name for
a status returning version, and deprecate the _st name. One or two
remaining uses of the (removed) non-status returning version fixed at
the same time
2017-03-22 08:35:07 -03:00
David Bremner
86cbd215eb lib: replace deprecated n_q_search_messages with status returning version
This function was deprecated in notmuch 0.21.  We re-use the name for
a status returning version, and deprecate the _st name.
2017-03-22 08:35:07 -03:00
David Bremner
1e982de508 lib: replace n_query_search_threads with status returning version
This function was deprecated in notmuch 0.21. We finally remove the
deprecated API, and rename the status returning version to the simpler
name. The status returning is kept as a deprecated alias.
2017-03-22 08:28:09 -03:00
David Bremner
c0c5645538 Merge branch 'release'
final 0.24 release
2017-03-12 22:43:11 -03:00
David Bremner
339dfd4241 version: bump to 0.24 2017-03-12 22:08:54 -03:00
Gaute Hope
a39a1ee152 bindings/python: add bindings for notmuch_database_get_revision
Database.get_revision () returns a tuple with the current database
revision and the UUID string representing the database.
2017-03-09 10:20:50 -04:00
David Bremner
15f8fc78c8 version: bump version to 0.24~rc1 2017-03-08 08:04:42 -04:00
David Bremner
08c6731761 version: bump to 0.24~rc0 2017-03-05 19:30:21 -04:00
David Bremner
770d00a895 update version to 0.23.7 2017-02-28 20:49:24 -04:00
David Bremner
48253190ad version: bump to 0.23.6
python and debian bumped at the same time
2017-02-23 09:03:41 -04:00
David Bremner
186436a04c bump version to 0.23.5 2017-01-08 08:32:56 -04:00
David Bremner
4dde1e6774 version: update to 0.23.4 2016-12-24 17:52:11 +09:00
David Bremner
805ad03317 version: bump to 0.23.3 2016-11-24 20:29:18 -04:00
David Bremner
b88fe84bbc version: bump to 0.23.2 2016-11-16 21:53:07 -04:00
David Bremner
f053bb8bd9 version: bump to 0.23.1 2016-10-22 12:35:25 -03:00
David Bremner
3b760413c5 version: bump to 0.23 2016-10-03 22:40:22 -03:00
David Bremner
efd79aedf2 version: update to 0.23~rc1 2016-09-30 07:18:04 -03:00
David Bremner
76a1f46a44 version: bump to 0.23~rc0 2016-09-26 07:22:21 -03:00
David Bremner
07dff49630 Merge branch 'release'
hand fixed conflicts with NEWS
2016-09-08 22:18:37 -03:00
David Bremner
afef676793 version: bump to 0.22.2 2016-09-08 19:05:12 -03:00
Jaime Velasco Juan
4bf82dea2d Fix typo in Message.maildir_flags_to_tags
It has been calling _tags_to_maildir_flags instead since the beginning,
2016-07-29 05:57:13 +09:00
David Bremner
92d8eae8f1 Merge branch 'release' 2016-07-19 09:03:19 -03:00
David Bremner
51816247d2 version: bump to 0.22 2016-07-19 06:33:37 -03:00
David Bremner
308b44290d version: bump to 0.21.1~rc0
Getting ready for the point release
2016-06-30 17:52:42 +02:00
Daniel Kahn Gillmor
6a833a6e83 Use https instead of http where possible
Many of the external links found in the notmuch source can be resolved
using https instead of http.  This changeset addresses as many as i
could find, without touching the e-mail corpus or expected outputs
found in tests.
2016-06-05 08:32:17 -03:00
Daniel Kahn Gillmor
9b9c265a25 NEWS, python: update pointer to online documentation
Currently, http://packages.python.org/notmuch/ goes through a series
of redirections and ends up pointing to readthedocs.  Since we're
using readthedocs directly anyway, just point to it directly.

readthedocs are also now sensibly using a separate domain
(readthedocs.io) for their hosted documentation as distinct from their
own domain (readthedocs.org), so use the correct tld.
2016-06-05 08:25:22 -03:00
David Bremner
e6e395435d bump version and NEWS date for 0.22 release 2016-04-26 21:36:53 -03:00
David Bremner
0a58d534a5 version: bump to 0.22~rc1 2016-04-24 18:02:05 -03:00
David Bremner
73334f403c version: bump to 0.22~rc0 2016-04-16 08:44:39 -03:00
Justus Winter
bd68a862ae python: update the README
Signed-off-by: Justus Winter <justus@gnupg.org>
2016-03-14 20:29:08 +01:00
Daniel Kahn Gillmor
fa0bc2ef91 notmuch.Database.remove_message should raise exception on failure
The notmuch python bindings document that database.remove_message
should raise an exception when the message removal fails, but they
don't actually do it.
2016-02-11 20:41:54 +01:00
Justus Winter
a5c1536d9a python: cleanup imports
Drop unused imports, and avoid warning about unused imports when we
import something on behalf of another module.

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
2016-01-08 13:58:33 +01:00
Justus Winter
096c600b96 python: Remove {Filenames,Threads}.__len__
Remove the __len__ functions, as they exhaust the iterator, breaking
'list(x)'.

This is a follow-up to 8866a89e.

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
2016-01-08 13:58:33 +01:00