mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-12-24 10:24:53 +01:00
Implement Database.count_messages()
This commit is contained in:
parent
350a6884de
commit
cd19699e0d
1 changed files with 23 additions and 0 deletions
|
@ -250,6 +250,11 @@ class Query(object):
|
||||||
_search_messages = nmlib.notmuch_query_search_messages
|
_search_messages = nmlib.notmuch_query_search_messages
|
||||||
_search_messages.restype = c_void_p
|
_search_messages.restype = c_void_p
|
||||||
|
|
||||||
|
|
||||||
|
"""notmuch_query_count_messages"""
|
||||||
|
_count_messages = _nmlib.notmuch_query_count_messages
|
||||||
|
_count_messages.restype = c_uint
|
||||||
|
|
||||||
def __init__(self, db, querystr):
|
def __init__(self, db, querystr):
|
||||||
"""
|
"""
|
||||||
:param db: An open database which we derive the Query from.
|
:param db: An open database which we derive the Query from.
|
||||||
|
@ -327,6 +332,24 @@ class Query(object):
|
||||||
|
|
||||||
return Messages(msgs_p,self)
|
return Messages(msgs_p,self)
|
||||||
|
|
||||||
|
def count_messages(self):
|
||||||
|
"""Estimate the number of messages matching the query
|
||||||
|
|
||||||
|
This function performs a search and returns Xapian's best
|
||||||
|
guess as to the number of matching messages. It is somewhat
|
||||||
|
faster than performing :meth:`search_messages` and counting
|
||||||
|
the result with `len()`. Technically, it wraps the underlying
|
||||||
|
*notmuch_query_count_messages* function.
|
||||||
|
|
||||||
|
:returns: :class:`Messages`
|
||||||
|
:exception: :exc:`NotmuchError`
|
||||||
|
|
||||||
|
* STATUS.NOT_INITIALIZED if query is not inited
|
||||||
|
"""
|
||||||
|
if self._query is None:
|
||||||
|
raise NotmuchError(STATUS.NOT_INITIALIZED)
|
||||||
|
|
||||||
|
return Query._count_messages(self._query)
|
||||||
|
|
||||||
def __del__(self):
|
def __del__(self):
|
||||||
"""Close and free the Query"""
|
"""Close and free the Query"""
|
||||||
|
|
Loading…
Reference in a new issue