Package pywbem

[frames] | no frames]

# Source Code for Package pywbem

      1  #
      2  # (C) Copyright 2004,2006 Hewlett-Packard Development Company, L.P.
      3  #
      4  # This library is free software; you can redistribute it and/or
      5  # modify it under the terms of the GNU Lesser General Public
      6  # License as published by the Free Software Foundation; either
      7  # version 2.1 of the License, or (at your option) any later version.
      8  #
      9  # This program is distributed in the hope that it will be useful, but
     10  # WITHOUT ANY WARRANTY; without even the implied warranty of
     11  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     12  # Lesser General Public License for more details.
     13  #
     14  # You should have received a copy of the GNU Lesser General Public
     15  # License along with this program; if not, write to the Free Software
     16  # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
     17  #
     18  # Author: Tim Potter <tpot@hp.com>
     19  # Author: Martin Pool <mbp@hp.com>
     20  #
     21
     22  """
     23  PyWBEM provides a WBEM client library and some related utilities, written in
     24  pure Python.
     25
     26  The WBEM client library allows issuing operations to a WBEM server, using
     27  the CIM operations over HTTP (CIM-XML) protocol defined in the DMTF standards
     28  DSP0200 and DSP0201. See http://www.dmtf.org/standards/wbem for information
     29  about WBEM.
     30
     31  It is based on the idea that a good WBEM client should be easy to use and not
     32  necessarily require a large amount of programming knowledge. It is suitable for
     33  a large range of tasks from simply poking around to writing web and GUI
     34  applications.
     35
     36  * `WBEMConnection` :  Main class of the WBEM client library and a good starting
     37    point to read about it.
     38
     39  The WBEM-related utilities included in this package are:
     40
     41  * `mof_compiler` :   Script for compiling MOF files, can also be used as a
     42    module.
     43
     44  * `cim_provider` :   Module for writing CIM providers in Python.
     45
     46  * `cim_provider2` :  Another module for writing CIM providers in Python.
     47
     48  * `twisted_client` : An experimental alternative WBEM client library that uses
     49    the Python `twisted` package.
     50
     51  * `wbemcli` :  Script providing a WBEM client CLI as an interactive shell.
     52
     53  Importing the `pywbem` package causes a subset of symbols from its sub-modules
     54  to be folded into the target namespace.
     55
     56  The use of these folded symbols is shown for the example of class
     57  `WBEMConnection`:
     58
     59  .. code:: python
     60
     61      import pywbem
     62      conn = pywbem.WBEMConnection(...)
     63
     64  or:
     65
     66  .. code:: python
     67
     68      from pywbem import WBEMConnection
     69      conn = WBEMConnection(...)
     70
     71  or (less preferred):
     72
     73  .. code:: python
     74
     75      from pywbem import *
     76      conn = WBEMConnection(...)
     77
     78  The folded symbols' origin symbols in the sub-modules are also considered part
     79  of the public interface of the `pywbem` package.
     80
     81  Programs using sub-modules that are not part of the WBEM client library, or
     82  specific symbols that are not folded into the target namespace of the `pywbem`
     83  package need to import the respective sub-modules explicitly.
     84
     85  The use of such sub-modules is shown for the example of class
     86  `cim_provider.CIMProvider`:
     87
     88  .. code:: python
     89
     90      from pywbem import cim_provider
     91      provider = cim_provider.CIMProvider(...)
     92
     93  or:
     94
     95  .. code:: python
     96
     97      from pywbem.cim_provider import CIMProvider
     98      provider = CIMProvider(...)
     99
    100  or:
    101
    102  .. code:: python
    103
    104      import pywbem.cim_provider
    105      provider = pywbem.cim_provider.CIMProvider(...)
    106
    107  Version
    108  -------
    109
    110  This version of PyWBEM is 0.8.0-dev.
    111
    112  The version number follows the conventions of semantic versioning (see
    113  http://semver.org/):
    114
    115  * M.N.U-dev  : Preliminary version during development of the future M.N.U
    116    release.
    117  * M.N.U-rc.1 : Preliminary version for release candidate 1 of the future M.N.U
    118    release.
    119  * M.N.U      : Final version for the M.N.U release.
    120
    121  When creating correspondingly versioned RPM packages, the hyphen (-) after
    122  the M.N.U version needs to be replaced by a tilde (~) to cause RPM to correctly
    123  treat the preliminary versions to be younger than the final version.
    124
    125  Changes
    126  -------
    127
    128  The change log is in the `NEWS <../NEWS>`_ file.
    129
    130  Compatibility
    131  -------------
    132
    133  PyWBEM has been tested with Python 2.7 on Windows and Linux, and with Python
    134  2.6 on Linux (due to a restriction of the `M2Crypto` package on Windows).
    135
    136  Python 2.6 is the minimum version of Python that is supported.
    137
    138  Python 3 is not yet supported.
    139
    140  Contributing
    141  ------------
    142
    143  PyWBEM is on SourceForge (http://sourceforge.net/projects/pywbem/). Bug
    144  reports and discussion on the mailing list are welcome.
    145
    146  License
    147  -------
    148
    149  PyWBEM is licensed with GNU LGPL v2.
    150  See the `LICENSE.txt <../LICENSE.txt>`_ file.
    151  """
    152
    153  # Version of the pywbem package
    154  # !!! Keep in sync with version stated in module docstring, above !!!
    155  __version__ = '0.8.0-dev'
    156
    157  # There are submodules, but clients shouldn't need to know about them.
    158  # Importing just this module is enough.
    159
    160  # These are explicitly safe for 'import *'
    161
    162  from pywbem.cim_types import *
    163  from pywbem.cim_constants import *
    164  from pywbem.cim_operations import *
    165  from pywbem.cim_obj import *
    166  from pywbem.tupleparse import ParseError
    167  from pywbem.cim_http import Error, ConnectionError, AuthError, TimeoutError
    168
    169  import sys
    170  if sys.version_info < (2,6,0):
    171      raise RuntimeError('PyWBEM requires Python 2.6.0 or higher')
    172