Package pyxmpp

[hide private]

# Source Code for Package pyxmpp

     1  #
     2  # (C) Copyright 2003-2010 Jacek Konieczny <jajcus@jajcus.net>
     3  #
     4  # This program is free software; you can redistribute it and/or modify
     5  # it under the terms of the GNU Lesser General Public License Version
     6  # 2.1 as published by the Free Software Foundation.
     7  #
     8  # This program is distributed in the hope that it will be useful,
     9  # but WITHOUT ANY WARRANTY; without even the implied warranty of
    10  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    11  # GNU Lesser General Public License for more details.
    12  #
    13  # You should have received a copy of the GNU Lesser General Public
    14  # License along with this program; if not, write to the Free Software
    15  # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
    16  #
    17
    18  """
    19  PyXMPP - Jabber/XMPP protocol implementation
    20  ============================================
    21
    22  Conventions
    23  -----------
    24
    25  PyXMPP is object-oriented, most of its fetures are implemented via classes,
    26  defined in various pyxmpp modules. The API is very asynchronous -- often
    27  requested objects are not returned immediately, but instead a callback is
    28  called when the object is available or an event occurs.
    29
    30  As python is not a strongly-typed language so the parameter and attribute types
    31  shown in this documentation are not enforced, but those types are expected by
    32  the package and others may simply not work or stop working in future releases
    33  of PyXMPP.
    34
    35  Module hierarchy
    36  ................
    37
    38  Base XMPP features (`RFC 3920 <http://www.ietf.org/rfc/rfc3920.txt>`__, `RFC
    39  3921 <http://www.ietf.org/rfc/rfc3921.txt>`__) are implemented in direct
    40  submodules of `pyxmpp` package. Most `JSF <http://www.jabber.org>`__ defined
    41  extensions are defined in `pyxmpp.jabber` package and modules for server
    42  components are placed in `pyxmpp.jabberd`.
    43
    44  For convenience most important names (classes for application use) may be
    45  imported into `pyxmpp`, `pyxmpp.jabber` or `pyxmpp.jabberd` packages. To do
    46  that `pyxmpp.all`, `pyxmpp.jabber.all` or `pyxmpp.jabberd.all` must be
    47  imported. One doesn't have to remember any other module name then.
    48
    49  Constructors
    50  ............
    51
    52  Most of PyXMPP object constructors are polymorphic. That means they accept
    53  different types and number of arguments to create object from various input.
    54  Usually the first argument may be an XML node to parse/wrap into the object
    55  or parameters needed to create a new object from scratch. E.g.
    56  `pyxmpp.stanza.Stanza` constructor accepts single `libxml2.xmlNode` argument
    57  with XML stanza or set of keyword arguments (from_jid, to_jid, stanza_type,
    58  etc.) to create such XML stanza. Most of the constructors will also accept
    59  instance of their own class to create a copy of it.
    60
    61  Common methods
    62  ..............
    63
    64  Most objects describing elements of the XMPP protocol or its extensions have
    65  method as_xml() providing their XML representations.
    66  """
    67
    68
    69  __docformat__="restructuredtext en"
    70
    71  # vi: sts=4 et sw=4
    72