On 2020-02-07 5:38 p.m., Ram Rachum wrote:
> I would like to raise a sort-of ultimatum to everyone in this thread.
> As far as I know, the `raise foo from bar` syntax, and the distinction
> between the two exception-chaining messages, didn't really catch on. I
> know about them, like them and use them, but most Python developers
> and open-source packages don't.
> If I understand correctly, the `raise from` syntax was introduced in
> Python 3.0, so in 2008. It's been with us for 12 years. We finally
> made the transition to Python 3, and I feel that most Python
> developers I interact with are using Python 3. But the `raise from`
> syntax is something that's still considered esoteric.
> My point is that so far, its adoption was a failure.
> If we have any hopes that its adoption will be a success, we should
> think, what is our plan for its success? Here are a few options:
> 1. Keep waiting a few more years and see whether people will
> spontaneously feel like starting to use it.
> 2. Accept the fact that it's a failed feature that would never get
> 3. Start an effort to transition to `raise from` in appropriate cases
> in high-profile Python projects such as Django, hoping it'll trickle
> down from there to the wider public.
> 4. Figure out why people don't use `raise from`, and find solutions to
> these problems. If the Django maintainers don't use it because it's
> too verbose, introduce less verbose way. Even if it takes 6 years to
> get into Django because of the release delay, it's worth to start
> working on it now.
> 5. Accept the fact that Django isn't the beacon of Pythonic-ness that
> many of us see it as, and maybe it can stay behind in this regard
> while other, newer projects are adopting more Pythonic practices.
> Any other options?
I'm gonna make a wild suggestion:
An explicit "raise" in an "except" body gets rewritten as "raise from"
the parent exception.
Hopefully this doesn't break anything, but, who knows. This means you get:
except Foo as e:
# raises Bar, because of Foo, as if by "raise Bar from e"
except Foo as e:
# raises Bar while handling Foo, as it currently stands.
Python-ideas mailing list -- firstname.lastname@example.org
To unsubscribe send an email to email@example.com
Message archived at https://firstname.lastname@example.org/message/XN7B2ZSHKXAYN2G3OV2UVZD7JMIZ2PXV/
Code of Conduct: http://python.org/psf/codeofconduct/