[prev in list] [next in list] [prev in thread] [next in thread]
List: python-dev
Subject: Re: [Python-Dev] Use Python 3.0 syntax for except and raise?
From: "Collin Winter" <collinw () gmail ! com>
Date: 2008-02-24 22:35:01
Message-ID: 43aa6ff70802241435lb1f9372r788be40bfceb7add () mail ! gmail ! com
[Download RAW message or body]
On Mon, Feb 18, 2008 at 3:44 PM, Guido van Rossum <guido@python.org> wrote:
> I don't know if you're done with this already, but there's a lot of
> experience suggesting such sweeps are quite dangerous. In the past,
> whenever a sweep across the entire stdlib was done, it's always caused
> a few breakages, some of which didn't get caught until the next
> release.
>
> Things to worry about with these two changes:
>
> raise X, y -> raise X(y): this is incorrect if y is a tuple; *only* if
> it's a tuple, the correct translation is raise X(*y). But 2to3 can't
> know that (unless the tuple is written out in place).
Yep. That's something I'd eventually like to correct by adding an
interactive mode (if 2to3 is unsure about a given fix, it can ask the
user). It's on my todo list for PyCon.
Collin Winter
> except X as y: in 3.0 this has different semantics -- y is explicitly
> deleted at the end of the except block. I don't know if this is also
> the semantics implemented in 2.6 (I think it should be), but again
> this can cause som equite subtle breakages that are hard to catch
> automatically.
>
> And since both of these are about exceptions, there's a high
> likelihood that some occurrences are not reached by a unittest.
>
> IOW, while I'm not dead set against it (I agree with your motivation
> in principle) I worry that in practice it may destabilize things., and
> would prefer a different approach where these things are only changed
> when someone is revising the module anyway.
>
> --Guido
>
>
> On Feb 17, 2008 8:57 AM, Christian Heimes <lists@cheimes.de> wrote:
>
>
> > Good evening everybody!
> >
> > I like to run the 2to3 tool with raise and except fixers over the 2.6
> > sources. The raise fixer changes "raise Exception, msg" to "raise
> > Exception(msg)" and the except fixer replaces "except Exception, err" by
> > "except Exception as err". In my humble opinion the Python stdlib should
> > give proper examples how write good code.
> >
> > During the migration period from the 2.x series to 3.x we have two
> > obvious ways to write code. Let's stick to the new and preferred way.
> >
> > Oh and please use the new syntax for patches, too. It makes my job with
> > svnmerge a little bit easier.
> >
> > Thanks!
> >
> > Christian
> >
> > _______________________________________________
> > Python-Dev mailing list
> > Python-Dev@python.org
> > http://mail.python.org/mailman/listinfo/python-dev
> > Unsubscribe: http://mail.python.org/mailman/options/python-dev/guido%40python.org
> >
>
>
>
> --
> --Guido van Rossum (home page: http://www.python.org/~guido/)
>
>
> _______________________________________________
> Python-Dev mailing list
> Python-Dev@python.org
> http://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe: http://mail.python.org/mailman/options/python-dev/collinw%40gmail.com
>
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: http://mail.python.org/mailman/options/python-dev/python-dev%40progressive-comp.com
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic