This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Title: Add Maildir.get_flags() to access message flags without opening the file
Type: enhancement Stage: patch review
Components: Library (Lib) Versions: Python 3.11
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: gildea
Priority: normal Keywords: patch

Created on 2022-02-12 22:21 by gildea, last changed 2022-04-11 14:59 by admin.

Pull Requests
URL Status Linked Edit
PR 31302 open gildea, 2022-02-12 22:49
Messages (1)
msg413145 - (view) Author: Stephen Gildea (gildea) * Date: 2022-02-12 22:21
A message's flags are stored in its filename by Maildir, so the flags
are available without reading the message file itself.  The structured
message file name makes it efficient to scan a large mailbox to select
only messages that are, for example, not Trashed.

The mailbox.Maildir interface does not expose these flags, however.  The
only way to access the flags through the mailbox library is to create a
mailbox.MaildirMessage object, which has a get_flags() method.  But
creating a MaildirMessage requires opening the message file, which is slow.

I propose adding a parallel get_flags(key) method to mailbox.Maildir,
so that the flags are available without having to create a
MaildirMessage object.

In iterating through a mailbox with thousands of messages, I find that
this proposed Maildir.get_flags() method is 50 times faster than
Date User Action Args
2022-04-11 14:59:56adminsetgithub: 90890
2022-02-12 22:49:37gildeasetkeywords: + patch
stage: patch review
pull_requests: + pull_request29463
2022-02-12 22:21:50gildeacreate