Package pyxmpp :: Module roster :: Class Roster

[hide private]

# Class Roster

source code

                     object --+
                              |
    objects.StanzaPayloadObject --+
                                  |
                                 Roster

Class representing XMPP-IM roster.

Iteration over Roster object iterates over roster items.

`for item in roster: ...` may be used to iterate over roster items, `roster[jid]` to get roster item by jid, `jid in roster` to test roster for jid presence.

Instance Methods | [hide private]

__init__(self, node=None, server=False, strict=True) Initialize Roster object. | source code

from_xml(self, node, strict=True) Initialize Roster object from XML node. | source code

complete_xml_element(self, xmlnode, doc) Complete the XML node with `self` content. | source code

__str__(self) str(x) | source code

__iter__(self) | source code

__contains__(self, jid) | source code

__getitem__(self, jid) | source code

get_items(self) Return a list of items in the roster. | source code

get_groups(self) Return a list of groups in the roster. | source code

get_items_by_name(self, name, case_sensitive=True) Return a list of items with given `name`. | source code

get_items_by_group(self, group, case_sensitive=True) Return a list of groups with given name. | source code

get_item_by_jid(self, jid) Return roster item with given jid. | source code

add_item(self, item_or_jid, subscription=`'``none``'`, name=None, groups=`(``)`, ask=None) Add an item to the roster. | source code

remove_item(self, jid) Remove item from the roster. | source code

update(self, query) Apply an update request to the roster. | source code

Inherited from `objects.StanzaPayloadObject`: `as_xml` Inherited from `object`: `__delattr__`, `__format__`, `__getattribute__`, `__hash__`, `__new__`, `__reduce__`, `__reduce_ex__`, `__repr__`, `__setattr__`, `__sizeof__`, `__subclasshook__`

Class Variables | [hide private]

: `unicode` | xml_element_name = ``'``query``'`` : name for the XML element provided by the class.
: `unicode` | xml_element_namespace = ``'``jabber:iq:roster``'`` : namespace URI for the XML element provided by the class.

Instance Variables | [hide private]

: `dict` of JID -> RosterItem | items_dict : items indexed by JID.

Properties | [hide private]

| items Return a list of items in the roster.
Inherited from `object`: `__class__`

Method Details | [hide private]

### __init__(self, node=None, server=False, strict=True)
(Constructor)

source code

Initialize Roster object.

`node` should be an XML representation of the roster (e.g. as sent from server in response to roster request). When `node` is None empty roster will be created.

If `server` is true the object is considered server-side roster.

If `strict` is False, than invalid items in the XML will be ignored.

Overrides: object.__init__

### from_xml(self, node, strict=True)

source code

Initialize Roster object from XML node.

If `strict` is False, than invalid items in the XML will be ignored.

### complete_xml_element(self, xmlnode, doc)

source code

Complete the XML node with `self` content.

Should be overriden in classes derived from StanzaPayloadObject.

Parameters:
  - `xmlnode` (: `libxml2.xmlNode`) - : XML node with the element being built. It has already right name and namespace, but no attributes or content.
  - `doc` (: `libxml2.xmlDoc`) - : document to which the element belongs.
Overrides: objects.StanzaPayloadObject.complete_xml_element

### __str__(self)
(Informal representation operator)

source code

str(x)

Overrides: object.__str__
  (inherited documentation)

### get_items_by_name(self, name, case_sensitive=True)

source code

Return a list of items with given `name`.

If `case_sensitive` is False the matching will be case insensitive.

### get_items_by_group(self, group, case_sensitive=True)

source code

Return a list of groups with given name.

If `case_sensitive` is False the matching will be case insensitive.

### get_item_by_jid(self, jid)

source code

Return roster item with given jid.

Raises:
  - `KeyError` - if the item is not found.

### add_item(self, item_or_jid, subscription=`'``none``'`, name=None, groups=`(``)`, ask=None)

source code

Add an item to the roster.

The `item_or_jid` argument may be a RosterItem object or a JID. If it is a JID then `subscription`, `name`, `groups` and `ask` may also be specified.

### update(self, query)

source code

Apply an update request to the roster.

`query` should be a query included in a "roster push" IQ received.

Property Details | [hide private]

### items

Return a list of items in the roster.

Get Method:
  get_items(self) - Return a list of items in the roster.