Skip to content

Commit b815669

Browse files
bpo-30088: Document that existing dir structure isn't verified by mailbox.Maildir (GH-1163)
Hi, I've faced an issue w/ `mailbox.Maildir()`. The case is following: 1. I create a folder with `tempfile.TemporaryDirectory()`, so it's empty 2. I pass that folder path as an argument when instantiating `mailbox.Maildir()` 3. Then I receive an exception happening because "there's no such file or directory" (namely `cur`, `tmp` or `new`) during interaction with Maildir **Expected result:** subdirs are created during `Maildir()` instance creation. **Actual result:** subdirs are assumed as existing which leads to exceptions during use. **Workaround:** remove the actual dir before passing the path to `Maildir()`. It will be created automatically with all subdirs needed. **Fix:** This PR. Basically it adds creation of subdirs regardless of whether the base dir existed before. https://bugs.python.org/issue30088 (cherry picked from commit e441847) Co-authored-by: Sviatoslav Sydorenko <[email protected]>
1 parent 143672c commit b815669

File tree

3 files changed

+5
-0
lines changed

3 files changed

+5
-0
lines changed

Doc/library/mailbox.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -308,6 +308,9 @@ Supported mailbox formats are Maildir, mbox, MH, Babyl, and MMDF.
308308
representation. If *create* is ``True``, the mailbox is created if it does not
309309
exist.
310310

311+
If *create* is ``True`` and the *dirname* path exists, it will be treated as
312+
an existing maildir without attempting to verify its directory layout.
313+
311314
It is for historical reasons that *dirname* is named as such rather than *path*.
312315

313316
Maildir is a directory-based mailbox format invented for the qmail mail

Misc/ACKS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1608,6 +1608,7 @@ Kalle Svensson
16081608
Andrew Svetlov
16091609
Paul Swartz
16101610
Al Sweigart
1611+
Sviatoslav Sydorenko
16111612
Thenault Sylvain
16121613
Péter Szabó
16131614
John Szakmeister
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Documented that :class:`mailbox.Maildir` constructor doesn't attempt to verify the maildir folder layout correctness. Patch by Sviatoslav Sydorenko.

0 commit comments

Comments
 (0)