.. wxPython Phoenix documentation This file was generated by Phoenix's sphinx generator and associated tools, do not edit by hand. Copyright: (c) 2011-2018 by Total Control Software License: wxWindows License .. include:: headings.inc .. currentmodule:: wx.lib.pubsub.core.topicdefnprovider .. highlight:: python .. _wx.lib.pubsub.core.topicdefnprovider.TopicDefnProvider: ========================================================================================================================================== |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 ================================= .. raw:: html <div id="toggleBlock" onclick="return toggleVisibility(this)" class="closed" style="cursor:pointer;"> <img id="toggleBlock-trigger" src="_static/images/closed.png"/> Inheritance diagram for class <strong>TopicDefnProvider</strong>: </div> <div id="toggleBlock-summary" style="display:block;"></div> <div id="toggleBlock-content" style="display:none;"> <p class="graphviz"> <center><img src="_static/images/inheritance/wx.lib.pubsub.core.topicdefnprovider.TopicDefnProvider_inheritance.png" alt="Inheritance diagram of TopicDefnProvider" usemap="#dummy" class="inheritance"/></center> <script type="text/javascript">toggleVisibilityOnLoad(document.getElementById('toggleBlock'))</script> <map id="dummy" name="dummy"> <area shape="rect" id="node1" href="wx.lib.pubsub.core.topicdefnprovider.TopicDefnProvider.html" title="Default implementation of the ITopicDefnProvider API. This" alt="" coords="7,83,405,112"/> <area shape="rect" id="node2" href="wx.lib.pubsub.core.topicdefnprovider.ITopicDefnProvider.html" title="All topic definition providers added via pub.addTopicDefnProvider()" alt="" coords="5,5,407,35"/> </map> </p> </div> | |super_classes| Known Superclasses ================================== :class:`wx.lib.pubsub.core.topicdefnprovider.ITopicDefnProvider` | |method_summary| Methods Summary ================================ ===================================================================================== ================================================================================ :meth:`~wx.lib.pubsub.core.topicdefnprovider.TopicDefnProvider.__init__` Find the correct de-serializer class from registry for the given :meth:`~wx.lib.pubsub.core.topicdefnprovider.TopicDefnProvider.getDefn` Must return a pair (string, ArgSpecGiven) for given topic. :meth:`~wx.lib.pubsub.core.topicdefnprovider.TopicDefnProvider.getTreeDoc` Get the docstring for the topic tree. :meth:`~wx.lib.pubsub.core.topicdefnprovider.TopicDefnProvider.initTypeRegistry` :meth:`~wx.lib.pubsub.core.topicdefnprovider.TopicDefnProvider.registerTypeForImport` If a new type of importer is defined for topic definitions, it :meth:`~wx.lib.pubsub.core.topicdefnprovider.TopicDefnProvider.topicNames` Return an iterator over topic names available from this provider. ===================================================================================== ================================================================================ | |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(). .. method:: __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. .. method:: 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'. .. method:: 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') .. method:: 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().