.. wxPython Phoenix documentation
This file was generated by Phoenix's sphinx generator and associated
tools, do not edit by hand.
Copyright: (c) 2011-2020 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

Inheritance diagram for class
TopicDefnProvider:
|
|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().