Age | Commit message (Collapse) | Author |
|
|
|
This wins about 4s over a 54s real-world benchmark.
|
|
Specifically, previously, each MUC would be added as a roster item, and
then each join presence would be counted as a resource of that item,
triggering 1 to 5 events and more backend logic in slixmpp.
As a result, joining big rooms is tremendously slow, (JID() calls,
event() calls, __getitem__ calls for nothing), and takes RAM (a quick
tracemalloc tells me around 1 MiB for 3500 participants, i.e. 2 big IRC
rooms). Those resources may not necessarily be cleaned properly, leading
to memory leaks on long-term usage.
This is a micro-optimization that adds an attribute to roster items so
that MUC room events can be ignored safely while not affecting common
roster usage.
|
|
|
|
|
|
|
|
|
|
function
This makes it go down from 8.767s to 7.960s in a random benchmark.
Remove unnecessary assignations, don’t create an OrderedDict from a
dict to then convert it to a dict again, only obtain the get_method2
name if get_method wasn’t present.
get_method2 (the title-case one) takes about 1/8th of the total time
spent in this function, we should eliminate it as soon as possible.
|
|
|
|
|
|
|
|
mostly useless, but allows to use LastActivity stanzas inside Presence
stanzas as well.
|
|
Improving the api if the developer wants to wait on them.
|
|
|
|
|
|
|
|
|
|
The keepalive ping was not working, and and ping() was tracebacking due
to a wrong parameter.
|
|
since iq.send is non-blocking, some features handlers could end up
being executed before others were set, leading to issues. Adding yield
from where it’s necessary fixes that.
|
|
|
|
|
|
|
|
|
|
|
|
See 5c769632e8d35ea76990a1de3ab405c57a21482e.
|
|
|
|
|
|
|
|
Conflicts:
README.rst
examples/IoT_TestDevice.py
examples/disco_browser.py
setup.py
sleekxmpp/jid.py
sleekxmpp/plugins/google/auth/stanza.py
sleekxmpp/plugins/google/gmail/notifications.py
sleekxmpp/plugins/google/nosave/stanza.py
sleekxmpp/plugins/google/settings/settings.py
sleekxmpp/thirdparty/__init__.py
sleekxmpp/thirdparty/socks.py
sleekxmpp/thirdparty/statemachine.py
sleekxmpp/util/__init__.py
sleekxmpp/xmlstream/xmlstream.py
slixmpp/basexmpp.py
slixmpp/plugins/xep_0004/stanza/form.py
slixmpp/plugins/xep_0009/rpc.py
slixmpp/plugins/xep_0050/adhoc.py
slixmpp/plugins/xep_0065/proxy.py
slixmpp/plugins/xep_0084/stanza.py
slixmpp/plugins/xep_0202/time.py
slixmpp/plugins/xep_0323/sensordata.py
slixmpp/plugins/xep_0325/control.py
slixmpp/plugins/xep_0325/stanza/control.py
slixmpp/roster/single.py
slixmpp/stanza/atom.py
slixmpp/stanza/rootstanza.py
slixmpp/test/slixtest.py
slixmpp/util/sasl/mechanisms.py
slixmpp/version.py
slixmpp/xmlstream/stanzabase.py
tests/test_stanza_xep_0323.py
tests/test_stanza_xep_0325.py
tests/test_stream_xep_0323.py
tests/test_stream_xep_0325.py
|
|
|
|
|
|
asyncio module is provisional, which means it gets updated everytime
|
|
|
|
Xep 0050 updates
|
|
# Conflicts:
# tests/test_stream_xep_0050.py
|
|
Merge to fritzy_master
|
|
XEP_0122: Add support for form validation
|
|
Only send time if Iq type is get.
|
|
Do not overwrite telephone numbers
|
|
Add get users by affiliation.
|
|
Fix UnboundlocalError in disco_browser.py example
|
|
iot: only add the 'done' field when all devices are done
|
|
XEP_0004: Data Forms use register_stanza_plugin
|
|
Should not use iterable for registering the stanza plugins.
|
|
|
|
changed xep_0121 to xep_0122
|
|
add_xep_0122
|
|
Add a test case that will verify that reported fields can contain data form validation data.
|
|
|
|
Previous stanza test cases didn't have test cases for reported and item field types in forms. This fixes that issue.
Modified stanzabase to use an ordered dict so that can guarentee the that 'items' in a form are added after reported. Also updated the set of interfaces that are stored in Form to be a ordered set. Used the order set implementation from: https://code.activestate.com/recipes/576694/
The OrderedSet implementation is licensed under the MIT license and is developed by the same developer of the ordereddict.
|