> On Thu, Oct 8, 2009 at 7:23 PM, Brian Granger <ellisonbg....@gmail.com>wrote: > >> I know this is not the zope list >> > > You're right, it's not. Perhaps you could send a message to the interface > package development list? > > https://mail.zope.org/mailman/listinfo/interface-dev > > Yes, I will do that. I wanted to get an opinion here first from the "users of zope.interface" first though to see if anyone else had run into these things in the wild.
> The disturbing thing is that now A (which is just an object) has been >> hacked on >> by zope.interface. It has additional methods (__provides__, etc.) that >> are specific to >> zope. >> > > Why does this disturb you? Would you feel better if it were called > __zope_provides__? > > Maybe a little bit, but name collisions are a minor concern in my case... > Summary: If a class A is later subclassed by something B that calls >> zi.implements, the original class A >> becomes infected with all the zope.interface stuff. >> > > A gets an additional attribute. Its behavior doesn't change in any other > way. I don't really see what's wrong with that, unless you have a differing > definition of the __provides__ attribute in your code. > > ...but __provides__ is not exactly a "plain old attribute": * The __provides__ attribute is a descriptor that sometimes raises AttributeError even though it exists. This is how I found all of this. I called dir on my class and __provides__ was listed. But hasattr(cls, '__provides') returned False. I consider this to be a separate bug, but because __provides__ started to appear on all of my classes, I was seeing it *everywhere*. * The internal implementation of __provides__ is handled by a custom __metaclass__ hook. zope.interface tries to be pretty careful in not actually *using* a custom metaclass, but it does set and then later remove the __metaclass__ hook. In my mind, both of these things are in the "unwanted side effect" category. > Is there a way to avoid this? > > > Depending on what your definition of "this" is, there almost certainly is. > In the simplest case, you could submit a patch to zope interface. > > That is definitely a likely outcome of this discussion. For now though, I was just wondering if other's had run into this issue. For now, it sounds like not. Cheers, Brian > Doesn't this seem like a bad idea? >> > > No. > > > _______________________________________________ > Twisted-Python mailing list > Twisted-Python@twistedmatrix.com > http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python > >
_______________________________________________ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python