Issue35985
Created on 2019-02-13 12:08 by Lukas J, last changed 2022-04-11 14:59 by admin. This issue is now closed.
| Messages (8) | |||
|---|---|---|---|
| msg335424 - (view) | Author: Lukas J (Lukas J) | Date: 2019-02-13 12:08 | |
When converting an email.message.Message with the policy set to email.policy.EmailPolicy with all default settings, I eventually end up with this exception: File "/usr/lib/python3.7/email/_header_value_parser.py", line 2727, in _fold_as_ew first_part = to_encode[:text_space] TypeError: slice indices must be integers or None or have an __index__ method Which is caused because text_space is a float of value +inf. This is set on line 2594 of the same file: maxlen = policy.max_line_length or float("+inf") For some reason policy.max_line_length is set to zero, even though the default should be 78 after a glance into the source. So there's maybe even two issues: 1.) The fallback for maxlen shouldn't be float("+inf"), as that is not an integer and thus can't be sliced by. I think a big integer would suffice instead, for example 100000000 2.) policy.max_line_length seems to lose it's value in the default settings somewhere along the way if it isn't explicitly set. Current workaround: Set max_line_length of the policy to a value (78 is default) |
|||
| msg335425 - (view) | Author: Karthikeyan Singaravelan (xtreak) * ![]() |
Date: 2019-02-13 12:15 | |
This seems to be same as issue33524 ? |
|||
| msg335426 - (view) | Author: Lukas J (Lukas J) | Date: 2019-02-13 12:22 | |
Indeed it is. Sorry I didn't find it before.
So it seems that changing float("+inf") to sys.maxsize would solve the problem? I've tried it in an interactive shell:
>>> a = "asd"; import sys
>>> a[:sys.maxsize]
'asd'
|
|||
| msg335430 - (view) | Author: Stéphane Wirtel (matrixise) * ![]() |
Date: 2019-02-13 12:28 | |
Could you share your example? Thank you |
|||
| msg335431 - (view) | Author: Lukas J (Lukas J) | Date: 2019-02-13 12:37 | |
Minimal example: import email.policy import email.mime.text responsehtml = "<html>somehtmlbody</html>" msg = email.mime.text.MIMEText(responsehtml, "html", policy=email.policy.EmailPolicy()) msg["to"] = "test@example.com" msg["cc"] = "äöü <foo@bar.com>" msg["From"] = "foo@bar.com" msg["Subject"] = "test" msg.as_string() |
|||
| msg335432 - (view) | Author: Karthikeyan Singaravelan (xtreak) * ![]() |
Date: 2019-02-13 12:42 | |
Thanks for the confirmation. I would propose closing this as a duplicate. The PR on the other issue might fix your issue and is just waiting on a NEWS entry. |
|||
| msg335433 - (view) | Author: Lukas J (Lukas J) | Date: 2019-02-13 12:45 | |
Ok thank you! |
|||
| msg335435 - (view) | Author: Stéphane Wirtel (matrixise) * ![]() |
Date: 2019-02-13 12:57 | |
Just add the link to the other issue: https://bugs.python.org/issue33524 |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022-04-11 14:59:11 | admin | set | github: 80166 |
| 2019-02-13 13:06:27 | xtreak | set | superseder: non-ascii characters in headers causes TypeError on email.policy.Policy.fold |
| 2019-02-13 12:57:50 | matrixise | set | messages: + msg335435 |
| 2019-02-13 12:45:45 | Lukas J | set | status: open -> closed resolution: duplicate messages: + msg335433 stage: resolved |
| 2019-02-13 12:42:58 | xtreak | set | messages: + msg335432 |
| 2019-02-13 12:37:00 | Lukas J | set | messages: + msg335431 |
| 2019-02-13 12:28:04 | matrixise | set | nosy:
+ matrixise messages: + msg335430 |
| 2019-02-13 12:22:40 | Lukas J | set | messages: + msg335426 |
| 2019-02-13 12:15:53 | xtreak | set | nosy:
+ xtreak messages: + msg335425 |
| 2019-02-13 12:08:03 | Lukas J | create | |
