Normal metaclass resolution not applied to InterfaceClass

Bug #791218 reported by Laurence Rowe on 2011-06-01
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
zope.interface
Won't Fix
Undecided
Unassigned

Bug Description

While experimenting with my InterfaceClass subclass I noticed that it was only being used when it was specified as the first of the bases. I believe this is because InterfaceClass is not a subclass of ``type``, so the normal metaclass derivation logic is not applied. The branch at svn+ssh://svn.zope.org/repos/main/zope.interface/branches/elro-metaclass-resolution implements that logic in InterfaceClass.__new__, picking from the base metaclasses that metaclass which subclasses all other base metaclasses.

The motivating factor here is: I need an Interface with a hook that gets called after InterfaceClass.__init__ to allow for:

  * Checking that field names supplied as tagged values from directives correspond to actual field names to detect typos.

  * Registering the Interface instance for further configuration to be executed by a zope.configuration action.

Relevant changeset: http://zope3.pov.lt/trac/changeset/121497/zope.interface/branches/elro-metaclass-resolution

Example InterfaceClass subclass: http://dev.plone.org/plone/browser/plone.supermodel/branches/elro-directives/plone/supermodel/model.py#L58

Tres Seaver (tseaver) wrote :
Changed in zope.interface:
status: New → Won't Fix
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers