Lance Stout
da332365d4
Make extending stanza objects nicer.
...
A stanza object may add is_extension = True to its class definition
to provide a single new interface to a parent stanza.
For example:
import sleekxmpp
from sleekxmpp import Iq
from sleekxmpp.xmlstream import ElementBase, register_stanza_plugin, ET
class Foo(ElementBase):
"""
Test adding just an attribute to a parent stanza.
Adding subelements works as expected.
"""
is_extension = True
interfaces = set(('foo',))
plugin_attrib = 'foo'
def setup(self, xml):
# Don't include an XML element in the parent stanza
# since we're adding just an attribute.
# If adding a regular subelement, no need to do this.
self.xml = ET.Element('')
def set_foo(self, val):
self.parent()._set_attr('foo', val)
def get_foo(self):
return self.parent()._get_attr('foo')
def del_foo(self):
self.parent()._del_attr('foo')
register_stanza_plugin(Iq, Foo)
i1 = Iq()
i2 = Iq(xml=ET.fromstring("<iq xmlns='jabber:client' foo='bar' />"))
>>> i1['foo'] = '3'
>>> i1
'3'
>>> i1
'<iq id="0" foo="3" />'
>>> i2
'<iq id="0" foo="bar" />'
>>> i2['foo']
'bar'
>>> del i2['foo']
>>> i2
'<iq id="0" />'
2011-01-19 19:49:13 -05:00
Lance Stout
f474d378ef
Add support for using xml:lang values.
...
Support is only for adding literal XML content
to stanzas. Full support for things like multiple
message bodies with different xml:lang values is
still in the works.
2010-12-07 23:07:40 -05:00
Lance Stout
4fb77ac878
Logging no longer uses root logger.
...
Each module should now log into its own logger.
2010-11-06 01:28:59 -04:00
Lance Stout
4375ac7d8b
Underscore names by default.
...
Stanza objects now accept the use of underscored names.
The CamelCase versions are still available for backwards compatibility,
but are discouraged.
The property stanza.values now maps to the old getStanzaValues and
setStanzaValues, in addition to _set_stanza_values and
_get_stanza_values.
2010-10-17 22:04:42 -04:00
Lance Stout
e02ffe8547
Corrected test errors.
...
There was a bug in the XML compare method.
2010-10-07 19:42:28 -04:00
Lance Stout
c294c1a85c
More PEP8 compliance cleanups.
...
Cleaned up the atom entry stanza.
2010-10-06 15:12:39 -04:00
Lance Stout
aebd115ba2
A few cleanups to make things simpler.
2010-09-01 14:20:34 -04:00
Lance Stout
3749c1b88c
Fixed ElementBase.match to match using sub_interface elements.
2010-08-30 17:12:10 -04:00
Lance Stout
998741b87e
Fixed typos in ElementBase._fix_ns
2010-08-30 15:25:59 -04:00
Lance Stout
9c62bce206
Updated ElementBase.match to respect namespaces with slashes.
...
Required adding option to _fix_ns to not propagate namespaces to child elements.
2010-08-30 14:55:30 -04:00
Lance Stout
bb6f4af8e2
Added unit tests for StanzaBase.
2010-08-27 12:22:35 -04:00
Lance Stout
a2c515bc97
Updated StanzaBase with documentation.
2010-08-27 11:07:20 -04:00
Lance Stout
ca6ce26b0d
Added comments to _fix_ns to clarify the cleaning procedure.
2010-08-26 18:40:58 -04:00
Lance Stout
00d7952001
Fixed ElementBase._fix_ns and related methods to respect namespaces which contain forward slashes.
2010-08-26 18:18:00 -04:00
Lance Stout
56766508b3
Fixed indentation in StanzaBase.
2010-08-26 14:19:36 -04:00
Lance Stout
5c59f5baca
Clarify ElementBase documentation.
2010-08-26 14:07:09 -04:00
Lance Stout
e16b37d2be
Fixed line lengths in ElementBase to comply with PEP8.
2010-08-26 13:55:23 -04:00
Lance Stout
d68bc2ba07
Finished the update of ElementBase with docs and unit tests.
...
Corrected bugs in equality comparisons between stanzas.
2010-08-26 13:49:36 -04:00
Lance Stout
10298a6eab
Updated the remaining ElementBase methods.
...
Remaining ElementBase todos:
Write the class documentation for ElementBase.
Write unit tests for the __magic__ methods.
2010-08-26 10:08:22 -04:00
Lance Stout
a3580dcef9
Fixed ElementBase.match to respect namespaces.
2010-08-25 14:54:09 -04:00
Lance Stout
1eaa9cb28c
Updated ElementBase.match and added unit tests.
2010-08-25 14:40:16 -04:00
Lance Stout
5d458bf6c2
Updated ElementBase._delSub and added unit tests.
...
_delSub can now accept a path and will optionally remove any empty parent elements after deleting the target elements.
2010-08-25 10:52:07 -04:00
Lance Stout
2fa58a74ab
Fixed indenting issue.
2010-08-24 09:44:09 -04:00
Lance Stout
c8f406d1b3
Updated ElementBase._setSubText and added unit tests.
...
_setSubText can now handle elements specified by an XPath expression, and
will build up the element tree as needed, reusing an existing elements in
the path.
2010-08-24 09:37:42 -04:00
Lance Stout
203986dd7c
Updated ElementBase._getSubText and added unit tests.
...
Also added ElementBase._fix_ns() to apply the stanza namespace to elements that don't have a namespace.
2010-08-24 08:55:37 -04:00
fritzy
345656926e
added form compatibility with old api, stanzas now bool() to True on 2.x, jid attributes will return '' if not set
2010-08-21 22:48:43 +00:00
Lance Stout
8a0616b3e0
Updated ElementBase methods _getAttr, _setAttr, and _delAttr with docs and tests.
2010-08-19 20:41:26 -04:00
Lance Stout
b71cfe0492
Small cleanup in ElementBase.__setitem__
2010-08-19 19:14:18 -04:00
Lance Stout
fac3bca1f6
Updated ElementBase.__delitem__ and added unit tests.
2010-08-19 19:11:12 -04:00
Lance Stout
e4240dd593
Updated ElementBase.__setitem__ and added unit tests.
2010-08-19 14:21:58 -04:00
Lance Stout
2f6f4fc16d
Updated ElementBase.__getitem__ with docs and unit tests.
2010-08-13 21:33:11 -04:00
Lance Stout
fe49b8c377
Updated getStanzaValues and setStanzaValues with docs and unit tests.
2010-08-13 20:05:24 -04:00
Lance Stout
b580a3138d
Updated ElementBase.enable and ElementBase.initPlugin
2010-08-13 12:51:07 -04:00
Lance Stout
c20fab0f6c
Updated ElementBase.setup, and added unit tests.
2010-08-13 12:24:47 -04:00
Lance Stout
415520200e
Updated ElementBase.__init__
2010-08-13 10:26:33 -04:00
Lance Stout
747001d33c
Adjust first level indenting in ElementBase to prepare for cleanup.
2010-08-13 10:15:52 -04:00
Lance Stout
b0fb205c16
Updated registerStanzaPlugin and the XML test type.
2010-08-13 10:12:51 -04:00
Lance Stout
4b52007e8c
Cleaned stanzabase imports.
2010-08-12 23:24:09 -04:00
Lance Stout
e077204a16
Replaced the ToString class with a tostring function.
...
The sleekxmpp.xmlstream.tostring and sleekxmpp.xmlstream.tostring26 packages
have been merged to sleekxmpp.xmlstream.tostring. The __init__.py file will
import the appropriate tostring function depending on the Python version.
The setup.py file has been updated with the package changes.
ElementBase is now a direct descendent of object and does not subclass ToString.
Stanza objects now return their XML contents for __repr__.
2010-08-05 20:26:41 -04:00
Lance Stout
1cedea2804
Added optional default value to _getAttr.
2010-07-30 14:11:24 -04:00
Lance Stout
d148f633f3
Modified ElementBase _getSubText, _setSubText, and _delSubText to
...
use the namespace in a tag name if one is given and to use
self.namespace otherwise.
2010-07-29 11:04:21 -04:00
Nathan Fritz
2b6454786a
Merge branch 'experimental' of git@github.com:fritzy/SleekXMPP into experimental
2010-07-26 18:13:54 -07:00
Nathan Fritz
a349a2a317
removed jid from stanzabase to external file
2010-07-26 18:13:34 -07:00
Lance Stout
c8989c04f3
Replaced traceback calls to use logging.exception where applicable.
2010-07-26 21:02:25 -04:00
Joe Hildebrand
d70a6e6f32
Issue 26. Only set from address in reply() for components
2010-07-20 13:55:48 -07:00
Lance Stout
690eaf8d3c
Updated license notices to use the correct MIT format. Also corrected references to nonexistant license.txt to LICENSE.
2010-07-20 11:19:49 -04:00
Nathan Fritz
fec8578cf6
stanza should not have setValues/getValues because that conflicts with attribute accessors
2010-07-19 15:38:48 -07:00
Nathan Fritz
f80b3285d4
indent problem on stanzabase
2010-07-19 14:57:21 -07:00
Lance Stout
d5e42ac0e7
Condensed all of the stanzaPlugin functions into a single registerStanzaPlugin function.
...
Updated plugins and tests to use new function.
2010-07-19 13:58:53 -04:00
Lance Stout
8bb0f5e34c
Needed to use copy.deepcopy() to copy XML objects to make sure that the entire tree is copied.
2010-06-07 19:55:39 -04:00
Lance Stout
9962f1a664
Added a __copy__ method to both ElementBase and StanzaBase.
...
Stanzas may now be copied using copy.copy(), which will be useful to prevent
stanza objects from being shared between event handlers.
2010-06-06 23:12:54 -04:00
Nathan Fritz
82a3918aa4
Scheduler waits too longer, and pubsubstate registration was backwards
2010-05-31 03:36:25 -07:00
Nathan Fritz
3a28f9e5d2
added pubsub state stanzas and scheduled events
2010-05-27 04:58:57 -07:00
Lance Stout
35f4ef3452
Modified the return values for several methods so that they can be chained.
...
For example:
iq.reply().error().setPayload(something.xml).send()
2010-05-25 07:28:43 +08:00
Nathan Fritz
223507f36f
fixed a rather large memory leak
2010-05-12 13:45:36 -07:00
Nathan Fritz
602a6d8491
bugfixes and continuing to work on pubsub tests
2010-04-22 21:24:28 -07:00
Nathan Fritz
37b571c55a
added pubsub#event stanzas, multi-subtypes iterable stanzas, pubsub#event test coverage
2010-04-21 23:51:37 -07:00
Nathan Fritz
212660091f
added pubsub tests and fixed match on iterator error
2010-04-19 01:03:27 -07:00
Nathan Fritz
80e7e0d0ee
adding tests, fixed stanzapath matching to match keys, fixed pubsub#owner stanzas
2010-04-14 01:23:17 -07:00
Nathan Fritz
fef511fd51
bugfix for .disconnect() hanging
2010-04-13 19:35:47 -07:00
Nathan Fritz
935ee4d14e
changed license to MIT
2010-03-26 14:32:16 -07:00
Nathan Fritz
7383f72367
stanzabase indent fix
2010-03-24 17:18:39 -07:00
Nathan Fritz
95d2614f21
fix for bug #18
2010-03-24 16:03:16 -07:00
Nathan Fritz
e06cdec81a
fixed some unicode problems for 2.6
2010-02-25 01:12:15 +00:00
Nathan Fritz
395618d3d3
fixed unicode problems in 2.6
2010-01-29 02:04:15 -08:00
Nathan Fritz
e39a2395d7
xep 30 and 50 always reply from jid iq sent to
2010-01-15 21:07:28 -08:00
Nathan Fritz
5345e9a46b
fixed bug from duplicate append methods in stanzabase
2010-01-14 07:37:44 -08:00
Nathan Fritz
6e1aa0690f
Completed basic test coverage of xmlns http://jabber.org/protocol/pubsub stanzas
2010-01-13 09:04:05 -08:00
Nathan Fritz
d14045f5a6
added stanza.get(key, defaultvalue)
2010-01-09 13:17:08 -08:00
Nathan Fritz
0af468b435
* fixed stanza.keys()
2010-01-08 05:26:37 +00:00
Nathan Fritz
8e3168e145
* added first stanza tests
...
* added stanza.keys()
* stanza.getValues() now return substanzas and plugins
* stanza.setValues() now can read substanzas and plugins
* stanzas can now be iterable if stanza.subitem is set to a class
2010-01-08 01:45:11 +00:00
Nathan Fritz
093644ffbd
* major stanza improvements
...
* raise XMPPError in handler to reply with error stanza
* started work on pubsub stanzas
2010-01-05 21:56:48 +00:00
Nathan Fritz
805afa4bc1
* fixed unhandled iqs
2009-12-22 10:05:53 +00:00
Nathan Fritz
07018c0afa
* fixed many stanza bugs
...
* added stanza unhandled (unhandled iqs now reply with feature-not-implemented)
* added stanza exceptions (stanzas may now reply with exceptions when their handler raises an exception)
2009-12-17 01:54:22 +00:00
Nathan Fritz
8854509ccd
* started converstion to stanza objects
2009-12-11 01:29:46 +00:00
Nathan Fritz
a031dd24a6
tweaked stanzas for easy use
2009-12-10 07:33:59 +00:00
Nathan Fritz
007b04dd30
* added proper message and iq stanzas. presence left to do
2009-12-10 01:23:03 +00:00
Nathan Fritz
96b103b275
moved seesmic branch to trunk
2009-06-03 22:56:51 +00:00