Phoenix Logo

phoenix_title 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 Class Hierarchy

Inheritance diagram for class TopicDefnProvider:

method_summary Methods Summary

__init__ Find the correct de-serializer class from registry for the given
getDefn  
getTreeDoc  
initTypeRegistry  
registerTypeForImport If a new type of importer is defined for topic definitions, it
topicNames  

api 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)


getTreeDoc(self)


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)