[Zope-dev] implementing zope.component 4.0

Hanno Schlichting hanno at hannosch.eu
Mon Nov 30 11:42:19 EST 2009


On Mon, Nov 30, 2009 at 5:09 PM, Martijn Faassen <faassen at startifact.com> wrote:
> Leonardo Rochael Almeida wrote:
>>  * Use a different package name!
>
> We don't have that option, as we're talking about changing the behavior
> of calling IFoo.

It's very well possible. You create a new distribution called for
example "Interface". Now you can write:

import interface
import zope.interface

class IFoo(interface.Interface): pass

class IBar(zope.interface.Interface): pass

Depending on what "kind" of interface you have the semantics of
calling these are different. Not that I'm proposing to do this, as it
leads to a pretty horrible mess, but it's possible.

We are just now getting rid of the old Zope2 Interface package and its
usage in Plone land, which has the same kind of incompatibility
problem. I expect that old version of interfaces is still going to be
with us for a number of years. So experience shows that something so
central, even if not used for many important things, has a much much
longer lifetime than you'd expect.

Hanno


More information about the Zope-Dev mailing list