The question says everything. Or am I trying to use zope.interface for the wrong purpose?
What I need is basically the One Way To Do It for registering classes that implement a certain functionality (Widgets or Portlets for a CMS). Basically like django does with its ModelAdmin classes, but not automatic and not magic.
This is what the
zope.componentarchitecture solves, but you must register all uses of an interface. By itself,zope.interfacedoes not keep track of what objects implement a given interface.What you are looking for is utility registrations; all implementations of a given service as defined by an interface.