[Python-Dev] PEP 409 and the stdlib (original) (raw)

Steven D'Aprano steve at pearwood.info
Tue May 28 20:34:23 CEST 2013


On 29/05/13 04:00, Antoine Pitrou wrote:

On Tue, 28 May 2013 16:02:00 +0300 Serhiy Storchaka <storchaka at gmail.com> wrote:

20.05.13 18:46, Antoine Pitrou написав(ла):

I think it is a legitimate case where to silence the original exception. However, the binascii.Error would be more informative if it said which non-base32 digit was encountered.

Please open a new issue for this request (note that no other binascii or base64 functions provide such information). No, my point was that the KeyError gives you this information (when displayed as a context), silencing it removes the information.

That is an accidental side-effect of the specific implementation, and does not occur in any of the versions of Python I have access to (production versions of 2.4 through 2.7, plus 3.2 and 3.3.0rc3). If the implementation changes again in the future, that information will be lost again.

Relying on the context in this case to display this information is harmful for at least three reasons:

I try not to throw references to the Zen around too lightly, but I think "Explicit is better than implicit" is appropriate here. If it is helpful for the error to show the invalid character, and I hope that we all agree that it is, then the binascii.Error message should explicitly show that character, rather than rely on the implementation implicitly showing it as a side-effect.

-- Steven



More information about the Python-Dev mailing list