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