*************************** Python WMI Module - CHANGES *************************** What is it? =========== The Python WMI module is a lightweight wrapper on top of the pywin32 extensions, and hides some of the messy plumbing needed to get Python to talk to the WMI API. It's pure Python and should work with any version of Python from 2.1 onwards (list comprehensions) and any recent version of pywin32. Where do I get it? ================== http://timgolden.me.uk/python/wmi.html What's Changed? =============== 27th Dec 2007 1.3.2 . Squashed long-standing cached method bug which had resulted in an instance-level method being called even after that instance had died. . Added code from Igor Dvorkin to support IPython's getAttribute protocol. 11th Apr 2007 1.3.1 . Added positional params for methods . Intrinsic event watchers default to "modification" . New _wmi_event object returned from event watchers . A directly-instantiated class determines its own namespace 8th Feb 2007 1.3 . Added support for extrinsic events 28th Dec 2006 1.2.1 . Corrected problem with Event watcher reported by Charlie Taylor . First steps towards pythondoc-style docstrings 8th Oct 2006 1.2 . Improved performance by lazy lookups and cached values for both properties and methods. Allow a list of fields to be selected instead of the entire class properties. Added code supplied by Paul Tiemann offers a lightweight data-only version of the wmi query. This is useful where real-time repeated data is required which should interfere as little as possible with the host machine. Code now compatible with Python v2.0. 30th Sep 2006 1.2a . Cosmetic changes _wmi_namespace.classes is now a dict, and acts as a cache for wrapper classes. If find_classes is True in the __init__, the names are populated but not the classes; if it is False, the names are not populated. In either case, a lookup against the namespace (eg for i in c.Win32_DiskDrive) will check the cache first. Additional user-callable subclasses_of to allow finer grained control over which classes are used. 15th Aug 2006 1.1.1 . Fixed a small bug reported and patched by Jonas Bjering 7th Apr 2006 1.1 . Removed redundant qualifiers method of _wmi_object (the qualifiers are held as a dictionary member of the class). . If a moniker is passed which doesn't start with winmgmts: then add it automatically (this helps with associations). . Special-cased associations, whose properties are the paths of the associated classes: when the properties are requested, automatically return the instantiated class. 2nd Mar 2006 1.0 . Final release for v1.0 . Corrected example in .new method of _wmi_namespace, deprecating the previous inappropriate example of Win32_Process, and substituting Win32_ProcessStartup. 11th Feb 2006 1.0rc6 . Adjusted .set method so it won't try to .Put_ unless the instance has a path (ie has not been spawned). 10th Feb 2006 1.0rc5 . Fixed small bug in .new method of _wmi_class 10th Feb 2006 1.0rc4 . Added from_time function to convert Python times to WMI . Remove final Put_ from .new method as some classes are not intended to be created (eg Win32_ProcessStartup). . Add .put method to allow explicit instance creation. . Allow user to prevent the namespace from searching for valid classes at startup. This makes the startup much faster, but means you don't get a list of classes. 29th Nov 2005 1.0rc3 . Small changes to allow array of output parameters . Added qualifiers to list of private attributes . Added details of required privs to method docstring . Fixed long-standing bug in Usage example . Added provenance to WMI methods from MappingStrings 26th Oct 2005 1.0rc2 . Corrected __repr__ in _wmi_namespace 18th Oct 2005 1.0rc1 . Refactored into namespace, class, object classes. . This makes it easier to use certain things, such as the StdRegProv's registry object, and the XP SystemRestore functionality. . Added CompareTo_ to support __eq__ functionality. . Added username/password support to WMI connection. Saves having to do separate connect_server call. . Added optional debug flag to WMI connection. . Switched to MIT license (GPL-compatible and not Python-specific). . Bumped version to 1.0 25th May 2005 0.6b . Removed late-dispatch code (EnsureDispatch) and replaced with dynamic dispatch, using Thomas Heller's ProvideConstants class to avoid hard-coding WMI constants. This is to help people using py2exe who would otherwise need to specify one or more typelibs. 19th May 2004 0.6 . Added namespace support to wmi.__init__. This means you can now do, eg: wmi.WMI (namespace="MicrosoftIISv2") . _wmi_method parameters now check for array parameters, showing them on the __doc__ and raising an exception if the value passed in is not iterable. 17th Jan 2004 0.5 . Added support for the WMI Registry interface. The new module-level Registry method returns a WMI registry object whose methods include EnumKeys, CreateValue &c. 15th Dec 2003 0.4 . Added machines_in_domain (from a post to python-win32 by "Sean") . Factored out moniker construction to make it easier to support use of StdRegProv to update registry. (Coming soon). . Added support for a timeout on the event watcher; timeout is specified in milliseconds and raises x_wmi_timed_out on a call to the watcher object. This allows for the possibility of pumping for waiting messages to prevent eg, the PythonWin IDE locking up. See the docstring for the watch_for method. . Added connect_server function, making it slightly easier to construct a WMI object, eg with username and password. 10th Jul 2003 0.3 . Changes by Paul Moore to allow a ready-made WMI Services object to be passed in (WMI.__init__). . This header and the __VERSION__ number added by Tim G. 9th Jul 2003 0.2 . Sundry changes by Tim G, including but not limited to: + support for moniker parts (WMI.__init__) + creating new instances of WMI classes (WMI.new) + passing return value back from wmi methods (_wmi_method.__call__) + better COM error-handling (handle_com_error) 5th Jun 2003 0.1 Initial release by Tim Golden