Andrei Troie <[email protected]> added the comment:
I agree with you that according to the RFC, the cte can of course only be "B"
or "Q". My point is that, in my example, if you try to do that you get a
KeyError propagating all the way down to email.message.get(), which I believe
is incorrect.
Consider an encoded word which is syntactically incorrect in a different way,
like if for instance it's missing the terminating '?=':
'=?UTF-8?Q?somevalue'
Currently, this case will cause _encoded_words.py to throw a ValueError on this
line:
_, charset, cte, cte_string, _ = ew.split('?')
Which is then caught by _header_value_parser.get_encoded_word() and handled
appropriately.
To me this is the same kind of thing. I agree that an exception should be
thrown, I just don't think it should propagate all the way back to the caller
of email.message.get().
On a separate note, I agree with you that perhaps _encoded_words.decode()
should throw more specific exceptions instead of ValueError and KeyError but
that's a separate thing. I can fix that if you prefer.
----------
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue38332>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com