Andrei Troie <andreitroi...@gmail.com> 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 <rep...@bugs.python.org>
<https://bugs.python.org/issue38332>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to