[Python-Dev] PEP 415: Implementing PEP 409 differently
Ethan Furman
ethan at stoneleaf.us
Mon Feb 27 21:29:23 CET 2012
Benjamin Peterson wrote:
> 2012/2/27 Ethan Furman <ethan at stoneleaf.us>:
>> Benjamin Peterson wrote:
>>> 2012/2/26 Nick Coghlan <ncoghlan at gmail.com>:
>>>> Thanks for writing that up. I'd be amenable if the PEP was clearly
>>>> updated to say that ``raise exc from cause`` would change from being
>>>> syntactic sugar for ``_hidden = exc; _hidden.__cause__ = cause; raise
>>>> exc`` (as it is now) to ``_hidden = exc; _hidden.__cause__ = cause;
>>>> _hidden.__suppress_context__ = True; raise exc``. The patch should
>>>> then be implemented accordingly (including appropriate updates to the
>>>> language reference).
>>>
>>> I add the following lines to the PEP:
>>>
>>> To summarize, ``raise exc from cause`` will be equivalent to::
>>>
>>> exc.__cause__ = cause
>>> exc.__suppress_context__ = cause is None
>>> raise exc
>>
>> So exc.__cause__ will be None both before and after `raise Exception from
>> None`?
>
> Yes.
And the primary advantage being that we don't lose an already set
__cause__ (since most of the time __cause__ would be empty and we're
just suppressing __context__)... seems like a good idea. +1
As far as Ellipsis goes -- I do think it works well in this case, but I
am not opposed to changing it. I do think we do ourselves a disservice
if we refuse to use it in other situations because "it's only for slices".
~Ethan~
More information about the Python-Dev
mailing list