Fix unclosed file ResourceWarnings in FileRecips and ToDigest#36
Open
thegushi wants to merge 1 commit into
Open
Fix unclosed file ResourceWarnings in FileRecips and ToDigest#36thegushi wants to merge 1 commit into
thegushi wants to merge 1 commit into
Conversation
FileRecips.py: use 'with fp:' to ensure members.txt is closed after reading. ToDigest.py: Mailbox (mailbox.mbox subclass) opens its own file descriptor internally. Two instances were never closed: - process(): wrap Mailbox.AppendMessage() in try/finally to call close() - send_i18n_digests(): extract body into _send_i18n_digests() and close the Mailbox in a finally block to handle the early-return path On FreeBSD Python 3.11, Mailbox does not support the context manager protocol, so try/finally is used rather than a with-statement.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two handlers open file-like resources that are never explicitly closed, producing
ResourceWarningunder Python 3.FileRecips.py:open(members.txt)is read but never closed; wrap inwith fp:.ToDigest.py:Mailbox(amailbox.mboxsubclass) opens its own internal file descriptor. Two call sites never calledclose():process():Mailbox.AppendMessage()now wrapped intry/finallysend_i18n_digests(): body extracted to_send_i18n_digests()so theMailboxcan be closed in afinallyblock before any early returntry/finallyis used instead of awith-statement becauseMailboxdoes not support the context manager protocol on all Python 3 builds (confirmed failing on FreeBSD Python 3.11).Files changed:
Mailman/Handlers/FileRecips.pyMailman/Handlers/ToDigest.py