pythonnet v2.5.0-rc2 Release Notes

Release Date: 2020-06-07 // almost 4 years ago
  • ๐ŸŽ 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