Source code for aioxmpp.disco
########################################################################
# File name: __init__.py
# This file is part of: aioxmpp
#
# LICENSE
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program. If not, see
# <http://www.gnu.org/licenses/>.
#
########################################################################
"""
:mod:`~aioxmpp.disco` --- Service discovery support (:xep:`0030`)
#################################################################
This module provides support for :xep:`Service Discovery <30>`. For this, it
provides a :class:`~aioxmpp.service.Service` subclass which can be loaded into
a client using :meth:`.Client.summon`.
Services
========
The following services are provided by this subpackage and available directly
from :mod:`aioxmpp`:
.. currentmodule:: aioxmpp
.. autosummary::
:nosignatures:
DiscoServer
DiscoClient
.. versionchanged:: 0.8
Prior to version 0.8, both services were provided by a single class
(:class:`aioxmpp.disco.Service`). This is not the case anymore, and there is
no replacement.
If you need to write backwards compatible code, you could be doing something
like this::
try:
aioxmpp.DiscoServer
except AttributeError:
aioxmpp.DiscoServer = aioxmpp.disco.Service
aioxmpp.DiscoClient = aioxmpp.disco.Service
This should work, because the old :class:`Service` class provided the
features of both of the individual classes.
The detailed documentation of the classes follows:
.. autoclass:: DiscoServer
.. autoclass:: DiscoClient
.. currentmodule:: aioxmpp.disco
Entity information
------------------
.. autoclass:: Node
.. autoclass:: StaticNode
.. autoclass:: mount_as_node
.. autoclass:: register_feature
.. module:: aioxmpp.disco.xso
.. currentmodule:: aioxmpp.disco.xso
:mod:`.disco.xso` --- IQ payloads
=================================
The submodule :mod:`aioxmpp.disco.xso` contains the :class:`~aioxmpp.xso.XSO`
classes which describe the IQ payloads used by this subpackage.
You will encounter some of these in return values, but there should never be a
need to construct them by yourself; the :class:`~aioxmpp.disco.Service` handles
it all.
Information queries
-------------------
.. autoclass:: InfoQuery(*[, identities][, features][, node])
.. autoclass:: Feature(*[, var])
.. autoclass:: Identity(*[, category][, type_][, name][, lang])
Item queries
------------
.. autoclass:: ItemsQuery(*[, node][, items])
.. autoclass:: Item(*[, jid][, name][, node])
.. currentmodule:: aioxmpp.disco
"""
from . import xso # NOQA
from .service import (DiscoClient, DiscoServer, Node, StaticNode, # NOQA
mount_as_node, register_feature)