2012/5/20 Tres Seaver <tseaver@palladion.com>:
On 05/19/2012 07:23 PM, Jim Fulton wrote:
On Sat, May 19, 2012 at 5:59 PM, Tres Seaver <tseaver@palladion.com> wrote:
On 05/19/2012 12:12 PM, Jim Fulton wrote:
The declaration-syntax warnings in the zope.interface 4.0.0 are annoying and mostly pointless.
There will be enough pain in porting applications to Python 3, avoiding the surprise of having to use a different interface-declaration syntax will not be of any consequence.
While the deprecation warning may provide some tiny benefit, the annoyance, especially for applications or libraries that still support Python 2.5 far outweights the benefit.
We're in an odd spot: the Python3 support for zope.interface mostly works, but the class advice bits (implements, implementsOnly, classProvides) fail silently under Python3 before 4.0.0: they literally have no effect due to changes in class initialization machinery. zope.interface 4.0.0 changes those silent failures into exceptions (which is what I thought you were going to complain about).
I'd forgotten the fail silently bit. Can't we make the fail loudly for Python 3?
They already do: 4.0.0 makes them exceptions under Python3: that fact was actually my rationale for the warnings under Python2, to allow folks to find and remediate them before porting.
If they are exceptions under Python 3, developers will get them and have to fix when porting to Python 3. There is a lot of other work to be done at the same time. But under Python 2, implements and friends continue to work, so the warnings are very annoying.
I will release a 4.0.1 silencing the warnings unless somebody speaks up in their favor.
Please, only warn on Python 3. -- Gediminas Paulauskas