All Versions
26
Latest Version
Avg Release Cycle
140 days
Latest Release
491 days ago

Changelog History
Page 1

  • v2.5.1 Changes

    June 18, 2020

    ๐Ÿ›  Backports two reference counting bugfixes from master.

    ๐Ÿ›  Many thanks two the reporters who also provided the fixes:

  • v2.5.0 Changes

    June 14, 2020

    ๐Ÿš€ > โš ๏ธ This release will be the last one supporting Python 2 and non-.NET-Standard builds.

    ๐ŸŽ This version improves performance on benchmarks significantly compared to 2.3 and includes various additions and improvements to the library.

    โž• Added

    • ๐Ÿ— Automatic NuGet package generation in appveyor and local builds
    • Function that sets Py_NoSiteFlag to 1.
    • ๐Ÿ‘Œ Support for Jetson Nano.
    • Support for __len__ for .NET classes that implement ICollection
    • PyExport attribute to hide .NET types from Python
    • PythonException.Format method to format exceptions the same as
      traceback.format_exception
    • Runtime.None to be able to pass None as parameter into Python from .NET
    • PyObject.IsNone() to check if a Python object is None in .NET.
    • ๐Ÿ‘Œ Support for Python 3.8
    • Codecs as the designated way to handle automatic conversions between
      .NET and Python types

    ๐Ÿ”„ Changed

    • โž• Added argument types information to "No method matches given arguments" message
    • ๐Ÿšš Moved wheel import in setup.py inside of a try/except to prevent pip collection failures
    • Removes PyLong_GetMax and PyClass_New when targetting Python3
    • ๐Ÿ‘Œ Improved performance of calls from Python to C#
    • โž• Added support for converting python iterators to C# arrays
    • ๐Ÿ”„ Changed usage of the obsolete function
      GetDelegateForFunctionPointer(IntPtr, Type) to
      GetDelegateForFunctionPointer<TDelegate>(IntPtr)
    • When calling C# from Python, enable passing argument of any type to a
      parameter of C# type object by wrapping it into PyObject instance.
      ([#881][i881])
    • โž• Added support for kwarg parameters when calling .NET methods from Python
    • ๐Ÿ”„ Changed method for finding MSBuild using vswhere
    • Reworked Finalizer. Now objects drop into its queue upon finalization,
      which is periodically drained when new objects are created.
    • Marked Runtime.OperatingSystemName and Runtime.MachineName as
      Obsolete, should never have been public in the first place. They also
      don't necessarily return a result that matches the platform module's.
    • ๐Ÿ“œ Unconditionally depend on pycparser for the interop module generation

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fixed runtime that fails loading when using pythonnet in an environment
      together with Nuitka
    • ๐Ÿ›  Fixes bug where delegates get casts (dotnetcore)
    • Determine size of interpreter longs at runtime
    • Handling exceptions ocurred in ModuleObject's getattribute
    • Fill __classcell__ correctly for Python subclasses of .NET types
    • ๐Ÿ›  Fixed issue with params methods that are not passed an array.
    • ๐Ÿ‘‰ Use UTF8 to encode strings passed to PyRun_String on Python 3

    Acknowledgements

    ๐Ÿš€ These authors have contributed to this release:

  • v2.5.0-rc2 Changes

    June 07, 2020

    ๐ŸŽ This version improves performance on benchmarks significantly compared to 2.3.

    โž• Added

    • ๐Ÿ— Automatic NuGet package generation in appveyor and local builds
    • Function that sets Py_NoSiteFlag to 1.
    • ๐Ÿ‘ Support for Jetson Nano.
    • Support for __len__ for .NET classes that implement ICollection
    • PyExport attribute to hide .NET types from Python
    • PythonException.Format method to format exceptions the same as traceback.format_exception
    • Runtime.None to be able to pass None as parameter into Python from .NET
    • PyObject.IsNone() to check if a Python object is None in .NET.
    • ๐Ÿ‘ Support for Python 3.8
    • Codecs as the designated way to handle automatic conversions between .NET and Python types

    ๐Ÿ”„ Changed

    • Added argument types information to "No method matches given arguments" message
    • ๐Ÿšš Moved wheel import in setup.py inside of a try/except to prevent pip collection failures
    • Removes PyLong_GetMax and PyClass_New when targetting Python3
    • ๐ŸŽ Improved performance of calls from Python to C#
    • ๐Ÿ‘ Added support for converting python iterators to C# arrays
    • Changed usage of the obsolete function GetDelegateForFunctionPointer(IntPtr, Type) to GetDelegateForFunctionPointer<TDelegate>(IntPtr)
    • When calling C# from Python, enable passing argument of any type to a parameter of C# type object by wrapping it into PyObject instance. ([#881][i881])
    • ๐Ÿ‘ Added support for kwarg parameters when calling .NET methods from Python
    • Changed method for finding MSBuild using vswhere
    • Reworked Finalizer. Now objects drop into its queue upon finalization, which is periodically drained when new objects are created.
    • Marked Runtime.OperatingSystemName and Runtime.MachineName as Obsolete, should never have been public in the first place. They also don't necessarily return a result that matches the platform module's.

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fixed runtime that fails loading when using pythonnet in an environment together with Nuitka
    • ๐Ÿ›  Fixes bug where delegates get casts (dotnetcore)
    • Determine size of interpreter longs at runtime
    • Handling exceptions ocurred in ModuleObject's getattribute
    • Fill __classcell__ correctly for Python subclasses of .NET types
    • ๐Ÿ›  Fixed issue with params methods that are not passed an array.
    • Use UTF8 to encode strings passed to PyRun_String on Python 3
  • v2.5.0-rc1

    May 18, 2020
  • v2.4.0 Changes

    May 03, 2019

    โž• Added

    • ๐Ÿ‘ Added support for embedding python into dotnet core 2.0 (NetStandard 2.0)
    • ๐Ÿ‘ท Added new build system (pythonnet.15.sln) based on dotnetcore-sdk/xplat(crossplatform msbuild). Currently there two side-by-side build systems that produces the same output (net40) from the same sources. After a some transition time, current (mono/ msbuild 14.0) build system will be removed.
    • โฌ†๏ธ NUnit upgraded to 3.7 (eliminates travis-ci random bug)
    • Added C# PythonEngine.AddShutdownHandler to help client code clean up on shutdown.
    • Added clr.GetClrType ([#432][i432])([#433][p433])
    • Allowed passing None for nullable args ([#460][p460])
    • Added keyword arguments based on C# syntax for calling CPython methods ([#461][p461])
    • Catches exceptions thrown in C# iterators (yield returns) and rethrows them in python ([#475][i475])([#693][p693])
    • Implemented GetDynamicMemberNames() for PyObject to allow dynamic object members to be visible in the debugger ([#443][i443])([#690][p690])
    • ๐Ÿ’… Incorporated reference-style links to issues and pull requests in the CHANGELOG ([#608][i608])
    • ๐Ÿ‘ Added PyObject finalizer support, Python objects referred by C# can be auto collect now ([#692][p692]).
    • Added detailed comments about aproaches and dangers to handle multi-app-domains ([#625][p625])
    • ๐Ÿ— Python 3.7 support, builds and testing added. Defaults changed from Python 3.6 to 3.7 ([#698][p698])
    • Added support for C# types to provide __repr__ ([#680][p680])

    ๐Ÿ”„ Changed

    • PythonException included C# call stack
    • ๐Ÿ‘ป Reattach python exception traceback information (#545)
    • ๐ŸŽ‰ PythonEngine.Intialize will now call Py_InitializeEx with a default value of 0, so signals will not be configured by default on embedding. This is different from the previous behaviour, where Py_Initialize was called instead, which sets initSigs to 1. ([#449][i449])
    • โ™ป๏ธ Refactored MethodBinder.Bind in preparation to make it extensible (#829)
    • When calling C# from Python, enable passing argument of any type to a parameter of C# type object by wrapping it into PyObject instance. ([#881][i881])
    • ๐Ÿ Look for installed Windows 10 sdk's during installation instead of relying on specific versions.

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fixed secondary PythonEngine.Initialize call, all sensitive static variables now reseted. This is a hidden bug. Once python cleaning up enough memory, objects from previous engine run becomes corrupted. ([#534][p534])
    • ๐Ÿ›  Fixed Visual Studio 2017 compat ([#434][i434]) for setup.py
    • ๐Ÿ›  Fixed crashes when integrating pythonnet in Unity3d ([#714][i714]), related to unloading the Application Domain
    • Fixed interop methods with Py_ssize_t. NetCoreApp 2.0 is more sensitive than net40 and requires this fix. ([#531][p531])
    • ๐Ÿ›  Fixed crash on exit of the Python interpreter if a python class derived from a .NET class has a __namespace__ or __assembly__ attribute ([#481][i481])
    • ๐Ÿ›  Fixed conversion of 'float' and 'double' values ([#486][i486])
    • ๐Ÿ›  Fixed 'clrmethod' for python 2 ([#492][i492])
    • ๐Ÿ›  Fixed double calling of constructor when deriving from .NET class ([#495][i495])
    • ๐Ÿ›  Fixed clr.GetClrType when iterating over System members ([#607][p607])
    • ๐Ÿ›  Fixed LockRecursionException when loading assemblies ([#627][i627])
    • ๐Ÿ›  Fixed errors breaking .NET Remoting on method invoke ([#276][i276])
    • ๐Ÿ›  Fixed PyObject.GetHashCode ([#676][i676])
    • Fix memory leaks due to spurious handle incrementation ([#691][i691])
    • Fix spurious assembly loading exceptions from private types ([#703][i703])
    • Fix inheritance of non-abstract base methods ([#755][i755])
  • v2.4.0-rc2

    April 07, 2019
  • v2.4.0-rc1 Changes

    March 06, 2019

    โž• Added

    • โž• Added support for embedding python into dotnet core 2.0 (NetStandard 2.0)
    • โž• Added new build system (pythonnet.15.sln) based on dotnetcore-sdk/xplat(crossplatform msbuild).
      ๐Ÿ‘ท Currently there two side-by-side build systems that produces the same output (net40) from the same sources.
      ๐Ÿ‘ท After a some transition time, current (mono/ msbuild 14.0) build system will be removed.
    • โฌ†๏ธ NUnit upgraded to 3.7 (eliminates travis-ci random bug)
    • โž• Added C# PythonEngine.AddShutdownHandler to help client code clean up on shutdown.
    • โž• Added clr.GetClrType (#432)(#433)
    • ๐Ÿ‘ Allowed passing None for nullable args (#460)
    • โž• Added keyword arguments based on C# syntax for calling CPython methods (#461)
    • Catches exceptions thrown in C# iterators (yield returns) and rethrows them in python (#475)(#693)
    • Implemented GetDynamicMemberNames() for PyObject to allow dynamic object members to be visible in the debugger (#443)(#690)
    • ๐Ÿ’… Incorporated reference-style links to issues and pull requests in the CHANGELOG (#608)
    • โž• Added detailed comments about aproaches and dangers to handle multi-app-domains (#625)
    • ๐Ÿ— Python 3.7 support, builds and testing added. Defaults changed from Python 3.6 to 3.7 ([#698][p698])

    ๐Ÿ”„ Changed

    • ๐Ÿ‘ป Reattach python exception traceback information (#545)
    • ๐ŸŽ‰ PythonEngine.Intialize will now call Py_InitializeEx with a default value of 0, so signals will not be configured by default on embedding. This is different from the previous behaviour, where Py_Initialize was called instead, which sets initSigs to 1. (#449)

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fixed secondary PythonEngine.Initialize call, all sensitive static variables now reseted.
      This is a hidden bug. Once python cleaning up enough memory, objects from previous engine run becomes corrupted. (#534)
    • ๐Ÿ›  Fixed Visual Studio 2017 compat (#434) for setup.py
    • ๐Ÿ›  Fixed crashes when integrating pythonnet in Unity3d (#714),
      related to unloading the Application Domain
    • Fixed interop methods with Py_ssize_t. NetCoreApp 2.0 is more sensitive than net40 and requires this fix. (#531)
    • ๐Ÿ›  Fixed crash on exit of the Python interpreter if a python class
      derived from a .NET class has a __namespace__ or __assembly__
      attribute (#481)
    • ๐Ÿ›  Fixed conversion of 'float' and 'double' values (#486)
    • ๐Ÿ›  Fixed 'clrmethod' for python 2 (#492)
    • ๐Ÿ›  Fixed double calling of constructor when deriving from .NET class (#495)
    • ๐Ÿ›  Fixed clr.GetClrType when iterating over System members (#607)
    • ๐Ÿ›  Fixed LockRecursionException when loading assemblies (#627)
    • ๐Ÿ›  Fixed errors breaking .NET Remoting on method invoke (#276)
    • ๐Ÿ›  Fixed PyObject.GetHashCode (#676)
    • ๐Ÿ›  Fix memory leaks due to spurious handle incrementation ([#691][i691])
    • ๐Ÿ›  Fix spurious assembly loading exceptions from private types ([#703][i703])
    • ๐Ÿ›  Fix inheritance of non-abstract base methods (#755)
  • v2.3.0 Changes

    March 11, 2017

    โž• Added

    • โž• Added Code Coverage (#345)
    • โž• Added PySys_SetArgvEx (#347)
    • โž• Added XML Documentation (#349)
    • โž• Added Embedded_Tests on AppVeyor (#224)(#353)
    • โž• Added Embedded_Tests on Travis (#224)(#391)
    • โž• Added PY3 settings to solution configuration-manager (#346)
    • โž• Added Slack (#384)(#383)(#386)
    • โž• Added function of passing an arbitrary .NET object as the value
      of an attribute of PyObject (#370)(#373)
    • โž• Added Coverity scan (#390)
    • โž• Added bumpversion for version control (#319)(#398)
    • โž• Added tox for local testing (#345)
    • โž• Added requirements.txt
    • โž• Added to PythonEngine methods Eval and Exec (#389)
    • โž• Added implementations of ICustomMarshal (#407)
    • โž• Added docker images (#322)
    • โž• Added hooks in pyinstaller and cx_freeze for pythonnet (#66)
    • โž• Added nuget packages (#165)

    ๐Ÿ”„ Changed

    • โ™ป๏ธ Refactored python unittests (#329)
    • โ™ป๏ธ Refactored python setup.py (#337)
    • โ™ป๏ธ Refactored remaining of Build Directives on runtime.cs (#339)
    • โ™ป๏ธ Refactored Embedded_Tests to make easier to write tests (#369)
    • ๐Ÿ”„ Changed unittests to pytest (#368)
    • โฌ†๏ธ Upgraded NUnit framework from 2.6.3 to 3.5.0 (#341)
    • โฌ‡๏ธ Downgraded NUnit framework from 3.5.0 to 2.6.4 (#353)
    • โฌ†๏ธ Upgraded NUnit framework from 2.6.4 to 3.6.0 (#371)
    • Unfroze Mono version on Travis (#345)
    • ๐Ÿ”„ Changed conda.recipe build to only pull-requests (#345)
    • Combine Py_DEBUG and PYTHON_WITH_PYDEBUG flags (#362)

    ๐Ÿ—„ Deprecated

    • ๐Ÿ—„ Deprecated RunString (#401)

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fixed crash during Initialization (#262)(#343)
    • ๐Ÿ›  Fixed crash during Shutdown (#365)
    • ๐Ÿ›  Fixed multiple build warnings
    • ๐Ÿ›  Fixed method signature match for Object Type (#203)(#377)
    • ๐Ÿ›  Fixed outdated version number in AssemblyInfo (#398)
    • ๐Ÿ›  Fixed wrong version number in conda.recipe (#398)
    • ๐Ÿ›  Fixed fixture location for Python tests and Embedded_Tests
    • ๐Ÿ›  Fixed PythonException crash during Shutdown (#400)
    • ๐Ÿ›  Fixed AppDomain unload during GC (#397)(#400)
    • Fixed Py_Main & PySys_SetArgvEx no mem error on UCS4/PY3 (#399)
    • ๐Ÿ›  Fixed Python.Runtime.dll.config on macOS (#120)
    • ๐Ÿ›  Fixed crash on PythonEngine.Version (#413)
    • ๐Ÿ›  Fixed PythonEngine.PythonPath issues (#179)(#414)(#415)

    โœ‚ Removed

    • โœ‚ Removed six dependency for unittests (#329)
    • โœ‚ Removed Mono.Unix dependency for UCS4 (#360)
    • โœ‚ Removed need for Python.Runtime.dll.config
    • Removed PY32 build option PYTHON_WITH_WIDE_UNICODE (#417)
  • v2.2.2 Changes

    January 29, 2017

    ๐Ÿ›  Fixed

    • Missing files from packaging (#336)
  • v2.2.1 Changes

    January 26, 2017

    ๐Ÿ†• News

    ๐Ÿ”„ Changelog since v2.2.0-dev1

    ๐Ÿš€ v2.2.0 had a release issue on pypi. Bumped to v2.2.1

    โž• Added

    • ๐Ÿ‘ Python 3.6 support (#310)
    • ๐Ÿ”– Added __version__ to module (#312)
    • โž• Added conda recipe (#281)
    • โšก๏ธ Nuget update on build (#268)
    • Added __cause__ attribute on exception (#287)

    ๐Ÿ”„ Changed

    • License to MIT (#314)
    • Project clean-up (#320)
    • โ™ป๏ธ Refactor #if directives
    • ๐Ÿ“‡ Rename Decref/Incref to XDecref/XIncre (#275)
    • โœ‚ Remove printing if Decref is called with NULL (#275)

    โœ‚ Removed

    • ๐Ÿ‘ Python 2.6 support (#270)
    • ๐Ÿ‘ Python 3.2 support (#270)

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fixed isinstance refcount_leak (#273)
    • Comparison Operators (#294)
    • ๐Ÿ‘Œ Improved Linux support (#300)
    • ๐Ÿ‘ป Exception pickling (#286)

    Known Issues

    • Subclassing .NET classes (#264)
    • Mixing python and .NET constructors (#252)
    • Overloading on constructors, ref/out and subtypes (#265)
    • pythonhome and pythonpath (#186)
    • Regression bug on numpy arrays (#249)