summaryrefslogtreecommitdiff
path: root/bindings/python-cffi
AgeCommit message (Collapse)Author
2025-03-13bindings/python-cffi: fix docstring for message.header()Michael J Gruber
The cffi bindings raise a LookupError in case a header is not present. Adjust the docstring to say so. The legacy bindings behaved differently, and this is one of the things to be aware of when migrating to the cffi bindings.
2025-02-28python: Fix message ID docstringFloris Bruynooghe
The messageidb attribute does not exist. The returned BinString type already allows use as both strings and binary. Presumably this was written before that type was adopted.
2025-02-22bindings/python: strip ~ from python versionDavid Bremner
Inspired by a suggestion of Xiyue Deng, this change ensures that the python bindings have a version that recent setuptools is happy with. This will have the unfortunate side effect of the python view of the version number differing from the rest of notmuch for the pre-releases. The alternative would be to transform the version numbers for the Debian packages for the pre-releases, as there is now no version scheme that works for both, since setuptools started rejecting versions with "~" in them. If we decide to go the latter way in the future, this change is easy to revert.
2025-02-22python: fix documentation typoDavid Bremner
The method is actually called 'getall'.
2025-02-07fix segfaults in Python cFFI API and add testsLars Kotthoff
Several iterators in the Python cFFI API destroyed the objects they iterated over too early (when the iterator was exhausted), causing subsequent segfaults in common cases like creating a list from the iterator. This patch fixes the segfaults and add tests to ensure that they don't happen again.
2022-08-16test: increase cffi timeoutMichael J Gruber
By default, the test suite uses 2min for other tests and 5s for cffi tests. Sporadically, this leads to test failures caused by the timeout on slower or loaded test infrastructure (as seen on ppc64le in Fedora's infrastructure during branch time). Increase the cffi timeout to the same 2m=120s. Signed-off-by: Michael J Gruber <git@grubix.eu>
2022-07-05bindings/python-cffi: fix docstringDavid Bremner
the method Database.get_message does exist any more (if it ever did). This makes the docstring unhelpful as an example.
2022-06-25lib: add NOTMUCH_STATUS_CLOSED_DATABASE, use in _n_d_ensure_writableDavid Bremner
In order for a database to actually be writeable, it must be the case that it is open, not just the correct type of Xapian object. By explicitely checking, we are able to provide better error reporting, in particular for the previously broken test in T566-lib-message.
2022-02-16python-cffi: use config_pairs API in ConfigIteratorDavid Bremner
This returns all of the config keys with non-empty values, not just those that happen to be stored in the database.
2022-01-15lib/open: no default mail root in split configurationsDavid Bremner
If we know the configuration is split, but there is no mail root defined, this indicates a (lack of) configuration error. Currently this can only arise in XDG configurations.
2022-01-09Merge tag '0.34.3'David Bremner
notmuch 0.34.3 release
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-09Merge branch 'release'David Bremner
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
2022-01-01bindings/python-cffi: add matched property to message objectsDavid Bremner
Existing users of the legacy python bindings use message.get_flags(Message.FLAG.MATCH) to determine which messages in a thread matched. Since the bindings don't provide get_flags anymore, they should provide a property analogous to the existing "excluded" property.
2021-12-09version: bump to 0.34.2David Bremner
2021-12-05python-cffi: fix out-of-tree buildDavid Bremner
The main idea is to replace the hack of copying version.txt into the bindings source with a generated _notmuch_config.py file. This will mean that the bindings only build after configuring and building notmuch itself. Given those constraints, "pip install ." should work.
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.