PythonNet v2.4.0-rc1 Release Notes

Release Date: 2019-03-06 // about 5 years ago
  • โž• 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)