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
This commit is contained in:
Sviatoslav Sydorenko 2019-07-13 16:47:15 +02:00 committed by Miss Islington (bot)
parent ed184c06e2
commit e44184749c
3 changed files with 5 additions and 0 deletions

View file

@ -308,6 +308,9 @@ Supported mailbox formats are Maildir, mbox, MH, Babyl, and MMDF.
representation. If *create* is ``True``, the mailbox is created if it does not
exist.
If *create* is ``True`` and the *dirname* path exists, it will be treated as
an existing maildir without attempting to verify its directory layout.
It is for historical reasons that *dirname* is named as such rather than *path*.
Maildir is a directory-based mailbox format invented for the qmail mail

View file

@ -1613,6 +1613,7 @@ Kalle Svensson
Andrew Svetlov
Paul Swartz
Al Sweigart
Sviatoslav Sydorenko
Thenault Sylvain
Péter Szabó
John Szakmeister

View file

@ -0,0 +1 @@
Documented that :class:`mailbox.Maildir` constructor doesn't attempt to verify the maildir folder layout correctness. Patch by Sviatoslav Sydorenko.