PlugInKind
Like a Zope meta_type
, a plug-in kind is a string which describes a kind of Zope object. Unlike a meta_type
, plug-in kinds are used by more than one class of object. You can think of a plug-in kind as a sort of meta-meta_type, which groups together a variety of similar meta-types by the collaboration interfaces they support.
For example, the string "Attribute Provider"
is a plug-in kind used for AttributeProviders. There can be many different classes whose instances act as AttributeProviders, but as long as their __plugin_kind__
attribute is set to "Attribute Provider"
, they will be recognized by their PlugInContainers as AttributeProviders.
PlugInGroups display an "Add" list that only includes registered plug-ins of the correct plug-in kinds. (PlugInGroups can support more than one PlugInKind, even though PlugIns can each only be of one PlugInKind.)
Since PlugInGroups are restricted to a specific set of plug-in kinds, PlugInContainers can be assured that the PlugIns in those groups support whatever collaboration interfaces are required by the container.