CHANGES
=======

1.0.8
-----

* python\_3.13: use Py\_(Is)Initialize(d) instead of (Is)PyEval\_InitThreads
* python: github\_actions: use v4 for artifact actions
* python: github\_actions: add test for Python 3.13
* Allow keeping bool return values

1.0.7
-----

* Add py 3.12 unicode fixes
* Add support for Python up to 3.12
* Fix building with mingw-w64
* Added github workflow to test/build/publish wheel

1.0.6
-----

* Statically link the VC runtime

1.0.5
-----

* Markup fixes
* [trivial] Fix attribute error handling
* Refactor build process
* EventWatcher: avoid using weakref conn
* Fix event listener crash
* Fix deleting WMI instances
* Add Py3.7 build config
* Implements \_\_str\_\_ and \_\_repr\_\_ method for PyMI objects
* Do an explicit unicode cast
* Use proper casing including MI.h
* Fix Instance::Clone declaration in header
* Add noexcept to what() const
* Update README with Python packages needed on build
* Fix Win32 and x64 release and debug build
* Adds Python 3.6 x64 build
* Enable eventlet nb mode by default only if 'thread' is patched

1.0.4
-----

* Add custom operation options support
* Enable credentials support
* Add basic functional tests
* Ensure destination options are preserved when having references
* Add operation timeout support
* Set destination options timeouts
* Greenify PyMI
* Adds computer, user, password arguments to WMI constructor

1.0.3
-----

* Properly handle null error messages
* Fixes moniker parsing when value is missing quotes

1.0.2
-----

* Properly handle accessing instance/class invalid attributes
* Expose MI exceptions to the Python module
* Fix line endings
* Forbid setting array items to NULL

1.0.2.dev1
----------

* Provide a reference to the previous instance in case of events

1.0.1
-----

* Fixes compatibility with the WMI module
* Removes unnecessary try-except
* Adds support for DestinationOptions in the wmi wrapper
* Adds support for DestinationOptions in PyMI
* Adds support for DestinationOptions in MI
* Normalize line endings to Unix style

1.0.0
-----

* Fixes get\_class when the class has no attributes

1.0.0.dev15
-----------

* wmi: Makes \_get\_method\_params thread safe
* Revert "wmi: Makes \_get\_method\_params thread safe"
* wmi: Makes \_get\_method\_params thread safe
* Adds mi.pdb to the PyMI package
* Adds watch\_for in the Connection class

1.0.0.dev14
-----------

* Fixes issue in \_EventWatcher
* Update com error excepinfo

1.0.0.dev13
-----------

* Improves exception handling

1.0.0.dev12
-----------

* Fixes issue in RelPath with ':' chars
* Removes obsolete TODO comment

1.0.0.dev11
-----------

* Adds a WMI SWbemObjectPath replacement
* Adds get\_server\_name for Class and Instance

1.0.0.dev10
-----------

* Adds workaround for methods returning void
* More checks for empty base class
* Checks for empty base class
* Adds error\_code to MIException
* Replaces CIM\_Error with MSFT\_WmiError

1.0.0.dev9
----------

* Adds parent class and better error handling
* Adds supports for integers in GetPath()

1.0.0.dev8
----------

* Adds loops for GetNextInstance
* Adds Operation::HasMoreResults()
* Adds workaround for Delete\_()
* Fixes issue in WMI call WQL syntax

1.0.0.dev7
----------

* Enter critical section after PyEval\_SaveThread
* Uses single MI application
* Adds critical sections for MI API calls
* Removes PyType\_GenericNew usage
* Adds weakref connection refs

1.0.0.dev6
----------

* Wraps MI exceptions with x\_wmi

1.0.0.dev5
----------

* Adds WMI instance Delete\_ method

1.0.0.dev4
----------

* Adds comment for setting ScopeContextOwner
* Sets Python errors for failed type checks
* Adds PyCheckNone
* Declares OperationOptions::Clone as const
* Adds VLD comment in stdafx.c
* Adds get\_namespace Class and Instance methods
* Improves GIL usage for multithreading
* Improves benchmark2 sample
* Clones instances returned from method calls
* Fixes issue with None type in method invoke
* Uses the v140 platform toolset by default
* Converts strings / unicode to numeric MI types
* Passes None for invoke empty params
* Fixes issue when invoking methods with empty params
* Adds Class methods support
* Removes unused import
* Fixes WMIDCOM method invoke issue on 2012 R2
* Revert "Sets MI protocol bases on target host or local OS"
* Sets MI protocol bases on target host or local OS
* Sorts method call return params by name
* Removes old samples
* Samples cleanup
* Retrieves class key using MI\_FLAG\_KEY
* Fixes NULL DECREF issue in Callbacks.py

1.0.0.dev3
----------

* Fixes issue in returning empty WMI events
* Fixes wmi module caching issues
* Renames className param to class\_name
* Adds MIValue type
* Fixes memory leak in serializer
* Additional std::shared\_ptr usage
* Fixes wrong type in Instance::operator[]
* Copies mi.pdb to src dir on release build
* Refactoring for std::shared\_ptr
* Removes scope owner reference in SetOutOfScope
* Fixes memory leak in PythonMICallbacks
* Adds scoped items and context owner
* Adds private copy constructors
* Fixes wrong exception cast operation
* Fixes WMI wrapper events
* Fixes Python 2.7 build issue
* Adds OperationOptions and event timeout in PyMI
* Adds OperationOptions in MI++
* Implements watch\_for in wmi module
* Renames a Session\_Subscribe parameter
* Adds sync subscription support
* Allows Python threads on long calls
* Adds MI event subcribe
* Minor update in README.rst
* Adds a top level README.rst
* Adds README.rst

1.0.0.dev2
----------

* Adds Python packaging
* Adds VM NIC switch port binding and default SG rules
* Adds WMI class cache and instance put, set
* Fixes namespace issue on new instances
* Improves benchmark3 test
* Adds some more type conversions
* Adds more Python type conversions
* Fixes WMI path unescaping
* Adds WMI str to bool conversion
* Adds WMI \_Instance path()
* Adds element assignment \_\_str\_\_ conversion
* Improves instance path escaping
* Adds WMI.py element unwrap
* Adds MI\_ type constants
* Fixes WMI moniker regex when the class is None
* Adds dummy WMI watch\_for
* Adds dynamic buffers in GetIndexOrName
* Fixes Py 2.7 module init naming
* Adds PythonDir project property sheet
* Fixes MI release CRT linking
* Updates benchmark3 to Liberty branch
* Adds Python 3.4 support
* Adds Python 3 support
* Fixes bool compiler warning
* Replaces unicode with u.text\_type
* Adds license file
* Improves samples
* Handle instance and ref types in invoke
* Moves sample files to Samples dir
* Sets wmi.py Unix EOL convention
* Adds WMI.py
* Adds Instance.get\_element
* Fixes string conversion issues
* Explicitly set RTTI default flag
* Normalizes method keywords
* Adds get\_instance
* Fixes None type issue
* Adds additional test modules
* Adds wmi Python module
* Adds MI serializer support
* Adds type conversions
* Fixes instance item assign issue
* Adds pyc files to .gitignore
* Adds IsClosed
* Fixes instance / class access issues
* Adds protocol Python module attributes
* Improves information hiding
* Disable direct object allocation
* Updates samples
* Adds Py with statement support
* Adds excetion handling
* More fixes for PyCFuntion functions
* Fixes some PyCFuntion return values
* Adds NewInstanceFromClass Py wrapper
* Adds Python instance CRUD methods
* Adds NewInstanceFromClass
* Adds more instance CRUD
* Adds associators support
* Fixes GetPath issue
* Adds benchmark2.py
* Adds instances values and array of instances
* Element data refactoring and some array support
* Adds NewMethodParamsInstance in MI++
* Adds params creation method
* Session creation refactoring
* PyMI refactoring
* Adds Python Class
* Adds GetMethodInfo
* Adds Py2MI and setattro
* Adds method call
* Some refactoring
* Adds simple type conversions
* Updated WiP
* WiP
