Pythonnet Versions Save

Python for .NET is a package that gives Python programmers nearly seamless integration with the .NET Common Language Runtime (CLR) and provides a powerful application scripting tool for .NET developers.

v3.0.0-a2

2 years ago

What's Changed

Full Changelog: https://github.com/pythonnet/pythonnet/compare/v3.0.0-a1...v3.0.0-a2

v3.0.0-a1

2 years ago

What's Changed

New Contributors

Full Changelog: https://github.com/pythonnet/pythonnet/compare/v2.5.0...v3.0.0-a1

v2.5.2

3 years ago

Additionally, includes support for Python 3.9.

v2.5.1

3 years ago

Backports two reference counting bugfixes from master.

Many thanks two the reporters who also provided the fixes:

  • @DanBarzilian
  • @lostmsu

v2.5.0

3 years ago

:warning: 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:

  • @alexhelms
  • @amos402
  • @andreydani
  • @benoithudson
  • @chrisjbremner
  • @Cronan
  • @filmor
  • @ftreurni
  • @henon
  • @inna-w
  • @Jeff17Robbins
  • @jmlidbetter
  • @koubaa
  • @lostmsu
  • @m-rossi
  • @matham
  • @mjmvisser
  • @NickSavin
  • @s4v4g3
  • @slide

v2.4.0

5 years ago

v2.4.0-rc2

5 years ago

v2.4.0-rc1

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)

v2.3.0

7 years ago

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

7 years ago

Fixed

  • Missing files from packaging (#336)