On Wed, Oct 30, 2019 at 11:29:55PM -0700, Ben Rudiak-Gould wrote: > On Sun, Oct 27, 2019 at 4:17 PM Andrew Barnert <abarn...@yahoo.com> wrote: > > On Oct 27, 2019, at 15:07, Ben Rudiak-Gould <benrud...@gmail.com> wrote: > > > from __future__ import raise_function > > That’s a pretty big breaking change. > > I agree, it's a bad idea. It'd have to be Python 4, like > print_function was Python 3.
I disagree. I think it's a pretty small breaking change, and precisely the sort of thing that __future__ was designed to handle. We could enable it on a module-by-module basis, and wouldn't need to rush to make it mandatory. The print thing in Python 3 was the most obvious and visible change, but the actual change from the perspective of the average coder was quite small. It was easily handled by a future import, and by 2to3 fixers. (Apart from one or two obscure corner cases involving softspace, if I remember correctly.) The raise statement is quite simple: raise [expression [from expression]] Syntactically, we could replace it with a function call with three cases: raise() raise(expression) raise(expression, from=expression) except we can't use "from" as the keyword name, we would have to use something else like "cause=expression" or similar. The only complexity I can think of is that tracebacks will have an extra entry, unless the traceback machinery knows enough to suppress it. I can't think of any situation where raise needs to be a statement. > Writing it in C would fix that, That might work too :-) and if raise became a builtin function, that would have to happen regardless. -- Steven _______________________________________________ Python-ideas mailing list -- python-ideas@python.org To unsubscribe send an email to python-ideas-le...@python.org https://mail.python.org/mailman3/lists/python-ideas.python.org/ Message archived at https://mail.python.org/archives/list/python-ideas@python.org/message/PJHTHLZVVF2SCXCGYV6FKA2DRO7XOFAC/ Code of Conduct: http://python.org/psf/codeofconduct/