bf5d7c83af
remove coroutine_wrapper, add a future_wrapper (which is only needed when the result stanza can be cached). Update the documentation as well.
47 lines
1.6 KiB
ReStructuredText
47 lines
1.6 KiB
ReStructuredText
.. _differences:
|
||
|
||
Differences from SleekXMPP
|
||
==========================
|
||
|
||
**Python 3.4+ only**
|
||
slixmpp will only work on python 3.4 and above.
|
||
|
||
**Stanza copies**
|
||
The same stanza object is given through all the handlers; a handler that
|
||
edits the stanza object should make its own copy.
|
||
|
||
**Replies**
|
||
Because stanzas are not copied anymore,
|
||
:meth:`Stanza.reply() <.StanzaBase.reply>` calls
|
||
(for :class:`IQs <.Iq>`, :class:`Messages <.Message>`, etc)
|
||
now return a new object instead of editing the stanza object
|
||
in-place.
|
||
|
||
**Block and threaded arguments**
|
||
All the functions that had a ``threaded=`` or ``block=`` argument
|
||
do not have it anymore. Also, :meth:`.Iq.send` **does not block
|
||
anymore**.
|
||
|
||
**Coroutine facilities**
|
||
**See** :ref:`using_asyncio`
|
||
|
||
If an event handler is a coroutine, it will be called asynchronously
|
||
in the event loop instead of inside the event caller.
|
||
|
||
A CoroutineCallback class has been added to create coroutine stream
|
||
handlers, which will be also handled in the event loop.
|
||
|
||
The :class:`~.slixmpp.stanza.Iq` object’s :meth:`~.slixmpp.stanza.Iq.send`
|
||
method now **always** return a :class:`~.asyncio.Future` which result will be set
|
||
to the IQ reply when it is received, or to ``None`` if the IQ is not of
|
||
type ``get`` or ``set``.
|
||
|
||
Many plugins (WIP) calls which retrieve information also return the same
|
||
future.
|
||
|
||
**Architectural differences**
|
||
slixmpp does not have an event queue anymore, and instead processes
|
||
handlers directly after receiving the XML stanza.
|
||
|
||
.. note::
|
||
If you find something that doesn’t work but should, please report it.
|