summaryrefslogtreecommitdiff
path: root/bindings/python-cffi
AgeCommit message (Collapse)Author
2022-01-09version: bump to 0.34.3David Bremner
2022-01-09bindings/python-cffi: search for config by defaultDavid Bremner
The previous (pre-0.34.2) constructor searched for a config file but only if the database path was not specified, and only to retrieve database.path. Neither of the available options (CONFIG.SEARCH or CONFIG.NONE) matches this semantics exactly, but CONFIG.SEARCH causes less breakage for people who relied on the old behaviour to set their database.path [1]. Since it also seems like the friendlier option in the long run, this commit switches to CONFIG.SEARCH as default. This requires a certain amount of updating the pytest tests, but most users will actually have a config file, unlike the test environment. [1]: id:87fsqijx7u.fsf@metapensiero.it
2022-01-08python-cffi: returned OwnedMessage objects from Message.repliesDavid Bremner
If we return regular Message objects, python will try to destroy them, and the underlying notmuch object, causing e.g. the crash [1]. [1]: id:87sfu6utxg.fsf@tethera.net
2021-12-09version: bump to 0.34.2David Bremner
2021-12-05Fix error message when using notmuch_status_to_stringFloris Bruynooghe
The python exception class was incorrectly loading the error message which resulted in unprintable exception objects.
2021-12-04python-cffi: switch to notmuch_database_{open,create}_with_configDavid Bremner
Since release 0.32, libnotmuch provides searching for database and configuration paths. This commit changes the python module notmuch2 to use those facilities. This fixes the bug reported in [1], along with a couple of the deprecation warnings in the python bindings. Database.default_path is deprecated, since it no longer faithfully reflects what libnotmuch is doing, and it is also no longer used in the bindings themselves. This commit choose the default of config=CONFIG.EMPTY (equivalent to passing "" to notmuch_database_open_with_config). This makes the change upward compatible API-wise (at least as far as the test suite verifies), but changing the default to CONFIG.SEARCH would probably be more convenient for bindings users. [1]: id:87h7d4wp6b.fsf@tethera.net
2021-12-04python-cffi: fix typos in docstring for Database.default_pathDavid Bremner
These generate warnings from sphinx doc, which makes it harder to debug documentation changes. They also corrupt the output.
2021-10-31version: bump to 0.34.1David Bremner
2021-10-20version: bump to 0.34David Bremner
2021-10-15version: bump to 0.34~0David Bremner
Start release process for 0.34.
2021-09-30Merge tag '0.33.2'David Bremner
notmuch 0.33.2 release
2021-09-30version: bump to 0.33.20.33.2David Bremner
2021-09-10Merge tag '0.33.1'David Bremner
notmuch 0.33.1 release
2021-09-10version: bump to 0.33.1David Bremner
2021-09-04lib: add new status code for query syntax errors.David Bremner
This will help provide more meaningful error messages without special casing on the client side.
2021-09-03version: bump to 0.33David Bremner
2021-08-26version: bump to 0.33~rc0David Bremner
2021-08-17version: bump to 0.32.3David Bremner
2021-06-25version: bump to 0.32.2David Bremner
2021-05-15version: bump to 0.32.1David Bremner
2021-05-02version: bump to 0.32David Bremner
2021-04-28version: bump to 0.32~rc2David Bremner
2021-04-24version: bump to 0.32~rc1David Bremner
2021-04-24update version to 0.32~rc0David Bremner
2021-03-27lib: add NOTMUCH_STATUS_NO_DATABASEDavid Bremner
This will allow more precise return values from various open related functions.
2021-02-18Merge tag '0.31.4'David Bremner
notmuch 0.31.4 release
2021-02-18version: update to 0.31.4David Bremner
2021-02-06lib: introduce notmuch_database_create_with_configDavid Bremner
This takes a config path parameter, and can use that to decide the new database location.
2021-02-06lib: add NOTMUCH_STATUS_DATABASE_EXISTSDavid Bremner
It is desirable to distinguish between attempting to create a database that already exists, and more fatal errors like permission problems.
2021-02-06lib: add NOTMUCH_STATUS_NO_CONFIGDavid Bremner
This will allow client code to provide more meaningful diagnostics. In particular it will enable "notmuch new" to continue suggsting the user run "notmuch setup" to create a config after "notmuch new" is transitioned to the new configuration framework.
2021-02-06bindings/notmuch2: add missing crypto error status codesDavid Bremner
These are needed so that the later codes line up numerically.
2020-12-25version: bump 0.31.3David Bremner
2020-12-25python/notmuch2: fix exclude tag handlingJohannes Larsen
A typo in Database._create_query lost the exclude_tag names during the string to utf-8 conversion. Amended by DB: fixed patch format and updated commit message.
2020-11-08version: bump to 0.31.2David Bremner
2020-11-08update versionsDavid Bremner
2020-10-30Rename version to version.txtRalph Seichter
Building Notmuch on macOS is known to cause problems because the Notmuch distribution archive contains two files named "version". These names clash with the <version> header as defined in C++20. Therefore, the existing naming will likely become a problem on other platforms as well, once compilers adopt the new standard. Signed-off-by: Ralph Seichter <github@seichter.de> Amended-by: db s/keyword/header/ in commit message.
2020-09-05version: bump to 0.31David Bremner
2020-08-29version: bump to 0.31~rc2David Bremner
2020-08-17version: bump to 0.31~rc1David Bremner
2020-08-16version: bump to 0.31~rc0David Bremner
Start the release process for 0.31
2020-08-09Fix typosJonas Bernoulli
2020-07-10version: set to 0.30David Bremner
2020-07-03version: bump to 0.30~rc3David Bremner
2020-07-03bindings/python-cffi: copy version file into bindings dirDavid Bremner
Attempt to avoid breaking "pip install ." As far as I can tell, we need to have a copy (not just a relative symlink) of the version file.
2020-06-19python-cffi: read version from notmuch version fileFloris Bruynooghe
This keeps it in sync with the main notmuch version which is less confusing to users.
2020-06-16Support aborting the atomic contextFloris Bruynooghe
Since it is possible to use an atomic context to abort a number of changes support this usage. Because the only way to actually abort the transaction is to close the database this must also do so. Amended by db: Note the limitation requiring close is a limitation of the underlying notmuch API, which should be fixed in a future notmuch release.
2020-06-16Make messages returned by Thread objects ownedFloris Bruynooghe
This reverses the logic of StandaloneMessage to instead create a OwnedMessage. Only the Thread class allows retrieving messages more then once so it can explicitly create such messages. The added test fails with SIGABRT without the fix for the message re-use in threads being present.
2020-06-16python/notmuch2: do not destroy messages owned by a queryAnton Khirnov
Any messages retrieved from a query - either directly via search_messages() or indirectly via thread objects - are owned by that query. Retrieving the same message (i.e. corresponding to the same message ID / database object) several times will always yield the same C object. The caller is allowed to destroy message objects owned by a query before the query itself - which can save memory for long-lived queries. However, that message must then never be retrieved again from that query. The python-notmuch2 bindings will currently destroy every message object in Message._destroy(), which will lead to an invalid free if the same message is then retrieved again. E.g. the following python program leads to libtalloc abort()ing: import notmuch2 db = notmuch2.Database(mode = notmuch2.Database.MODE.READ_ONLY) t = next(db.threads('*')) msgs = list(zip(t.toplevel(), t.toplevel())) msgs = list(zip(t.toplevel(), t.toplevel())) Fix this issue by creating a subclass of Message, which is used for "standalone" message which have to be freed by the caller. Message class is then used only for messages descended from a query, which do not need to be freed by the caller.
2020-06-15python config access: fix style and KeyError bugFloris Bruynooghe
This fixes some minor style/pep8 things and adds tests for the new config support. Also fixes a bug where KeyError was never raised on a missing key.
2020-06-15python/notmuch2: add bindings for the database config stringsAnton Khirnov