-
-
Notifications
You must be signed in to change notification settings - Fork 31.8k
bpo-133311: have MIMEImage respect policy.max_line_length #133322
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
This patch updates Lib/email/mime/image.py so that MIMEImage honors the max_line_length setting from the provided EmailPolicy when Base64-encoding image payloads. - Adds imports for base64 and textwrap.wrap - Replaces the old `set_payload(_imagedata)` + `_encoder(self)` calls with an explicit Base64 encode, wrap to `policy.max_line_length` (default 76), and then calls `set_payload` with the wrapped text. - Ensures CRLF line endings and proper headers are still applied by set_payload. Fixes issue python#133311: MIMEImage’s policy argument not taking effect.
Most changes to Python require a NEWS entry. Add one using the blurb_it web app or the blurb command-line tool. If this change has little impact on Python users, wait for a maintainer to apply the |
This patch updates Lib/email/mime/image.py so that MIMEImage honors the max_line_length setting from the provided EmailPolicy when Base64-encoding image payloads. - Adds imports for base64 and textwrap.wrap - Replaces the old `self.set_payload(_imagedata)` + `_encoder(self)` calls with an explicit Base64 encode, wrap to `policy.max_line_length` (default 76), and then calls `self.set_payload` with the wrapped text. - Ensures CRLF line endings and proper headers are still applied by set_payload.
Most changes to Python require a NEWS entry. Add one using the blurb_it web app or the blurb command-line tool. If this change has little impact on Python users, wait for a maintainer to apply the |
Most changes to Python require a NEWS entry. Add one using the blurb_it web app or the blurb command-line tool. If this change has little impact on Python users, wait for a maintainer to apply the |
self.set_payload(_imagedata) | ||
_encoder(self) | ||
|
||
#self.set_payload(_imagedata) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we remove these comments?
@@ -8,6 +8,8 @@ | |||
|
|||
from email import encoders | |||
from email.mime.nonmultipart import MIMENonMultipart | |||
import base64 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's best to sort the imports, although there won't be any negative impact if we don't do so :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does this repo allow some sort of pre-commit? Like isort and blake hooks. Those things can help do this automatically.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wait, I do see a pre-commit setup : https://github.com/python/cpython/blob/main/.pre-commit-config.yaml
The CIs don't seem to be imposing these?
Linter failures : https://github.com/python/cpython/actions/runs/14805087091/job/41571892036?pr=133322
This patch updates Lib/email/mime/image.py so that MIMEImage honors the max_line_length setting from the provided EmailPolicy when Base64-encoding image payloads.
set_payload(_imagedata)
+_encoder(self)
calls with an explicit Base64 encode, wrap topolicy.max_line_length
(default 76), and then callsset_payload
with the wrapped text.Fixes issue #133311: MIMEImage’s policy argument not taking effect.