wx.lib.pubsub.core.topicdefnprovider.TopicDefnProvider¶
Default implementation of the ITopicDefnProvider API. This implementation accepts several formats for the topic tree source data and delegates to a registered ITopicDefnDeserializer that converts source data into topic definitions.
This provider is instantiated automatically by
pub.addTopicDefnProvider(source, format)
when source is not an ITopicDefnProvider.
Additional de-serializers can be registered via registerTypeForImport().
Class Hierarchy¶
Known Superclasses¶
wx.lib.pubsub.core.topicdefnprovider.ITopicDefnProvider
Methods Summary¶
Find the correct de-serializer class from registry for the given |
|
Must return a pair (string, ArgSpecGiven) for given topic. |
|
Get the docstring for the topic tree. |
|
If a new type of importer is defined for topic definitions, it |
|
Return an iterator over topic names available from this provider. |
Class API¶
- class TopicDefnProvider(ITopicDefnProvider)¶
Default implementation of the ITopicDefnProvider API. This implementation accepts several formats for the topic tree source data and delegates to a registered ITopicDefnDeserializer that converts source data into topic definitions.
This provider is instantiated automatically by
pub.addTopicDefnProvider(source, format)
when source is not an ITopicDefnProvider.Additional de-serializers can be registered via registerTypeForImport().
Methods¶
- __init__(self, source, format, \*\*providerKwargs)¶
Find the correct de-serializer class from registry for the given format; instantiate it with given source and providerKwargs; get all available topic definitions.
- getDefn(self, topicNameTuple)¶
Must return a pair (string, ArgSpecGiven) for given topic. The first item is a description for topic, the second item contains the message data specification (MDS). Note topic name is in tuple format (‘a’, ‘b’, ‘c’) rather than ‘a.b.c’.
- getTreeDoc(self)¶
Get the docstring for the topic tree.
- classmethod initTypeRegistry(cls)¶
- classmethod registerTypeForImport(cls, typeName, providerClassObj)¶
If a new type of importer is defined for topic definitions, it can be registered with pubsub by providing a name for the new importer (typeName), and the class to instantiate when pub.addTopicDefnProvider(obj, typeName) is called. For instance,
from pubsub.core.topicdefnprovider import ITopicDefnDeserializer class SomeNewImporter(ITopicDefnDeserializer): ... TopicDefnProvider.registerTypeForImport('some name', SomeNewImporter) # will instantiate SomeNewImporter(source) pub.addTopicDefnProvider(source, 'some name')
- topicNames(self)¶
Return an iterator over topic names available from this provider. Note that the topic names should be in tuple rather than dotted-string format so as to be compatible with getDefn().