Age | Commit message (Collapse) | Author |
|
The get_raw_docs method accesses header field content-transfer-encoding
using the string 'content-transfer-type' so the raw doc dict always ends
up with that value set to empty string.
|
|
sync_hooks to lambdas to real functions
|
|
|
|
|
|
mostly having to do with poor, missing or outdated documentation,
naming of confusing things and reordering of code blocks for improved
readability.
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
This was causing a bug, among other things, when saving to the Sent
folder for some messages. Closes #4914
|
|
|
|
* 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.
|