Age | Commit message (Collapse) | Author |
|
Although the do_parse function is deferred to threads, we were actually
waiting till its return to fire the callback of the deferred, and hence
the "append ok" was being delayed. During massive appends, this was a
tight loop contributing as much as 35 msec, of a total of 100 msec
average.
Several ineficiencies are addressed here:
* use pycryptopp hash functions.
* avoiding function calling overhead.
* avoid duplicate call to message.as_string
* make use of the string size caching capabilities.
* avoiding the mail Parser initialization/method call completely,
in favor of the module helper to get the object from string.
Overall, these changes cut parsing to 50% of the initial timing by my
measurements with line_profiler, YMMV.
|
|
|
|
So we're safe under the green lights before further rewriting.
:)
|
|
|
|
|
|
Also some fixes for None comparisons.
|
|
|
|
Increase default testing duration to 200 secs.
|
|
|
|
|
|
* documents of only three types:
* flags
* headers
* content
* add algorithm for walking the parsed message tree.
* treat special cases like a multipart with a single part.
* modify add_msg to use the walk routine
* modify twisted interfaces to use the new storage schema.
* tests for different multipart cases
* fix multipart detection typo in the fetch
This is a merge proposal for the 0.5.0-rc3.
known bugs
----------
Some things are still know not to work well at this point
(some cases of multipart messages do not display the bodies).
IMAP server also is left in a bad internal state after a logout/login.
|
|
|
|
|
|
|
|
Other fixes in the commit:
* Correct the semantic for the recent flag (reset)
* Minor unicode fixes.
* Use a field for tracking the last_uid
In general, this tries to squash all the quick and naive methods
that were relying on evaluating all the message objects before returning
a result.
Further work is still needed, planned also for 0.5 release.
get_by_index needs to be indexed too.
|
|
|
|
right now, the exceptions were visible in the stdout,
but the test was not *actually* failing.
using nose deferred decorator for this.
|
|
|
|
|
|
|
|
|
|
* Also fix some tests that where not up-to-date with code.
|
|
The imap service is launched from the tac file,
and still needs some information to be provided in separate
config files that stub much of the initialization parameters.
working fetch and store methods.
tested with offlineimap and thunderbird.
several mailboxes might be broken.
|
|
|