Releases · pythonnet/pythonnet
- fixed
object[]parameters having precedence over anything else compatible #1211 - fixed calling from Python methods, defined in F# with no names for a parameter #1375
Additionally, includes support for Python 3.9.
Assets
2
Backports two reference counting bugfixes from master.
Many thanks two the reporters who also provided the fixes:
Assets
2
⚠️ 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_NoSiteFlagto 1. - Support for Jetson Nano.
- Support for
__len__for .NET classes that implement ICollection PyExportattribute to hide .NET types from PythonPythonException.Formatmethod to format exceptions the same as
traceback.format_exceptionRuntime.Noneto be able to passNoneas parameter into Python from .NETPyObject.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_GetMaxandPyClass_Newwhen 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# typeobjectby wrapping it intoPyObjectinstance.
([#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.OperatingSystemNameandRuntime.MachineNameas
Obsolete, should never have beenpublicin the first place. They also
don't necessarily return a result that matches theplatformmodule's. - Unconditionally depend on
pycparserfor 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_Stringon Python 3
Acknowledgements
These authors have contributed to this release:
Assets
2
v2.4.0 Bump version to 2.4.0
Assets
2
Bump all relevant versions to 2.4.0-rc2
Assets
2
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.AddShutdownHandlerto help client code clean up on shutdown. - Added
clr.GetClrType(#432)(#433) - Allowed passing
Nonefor 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_InitializeExwith a default value of 0, so signals will not be configured by default on embedding. This is different from the previous behaviour, wherePy_Initializewas 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.GetClrTypewhen iterating overSystemmembers (#607) - Fixed
LockRecursionExceptionwhen 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)
Assets
2
Added
- Added Code Coverage (#345)
- Added
PySys_SetArgvEx(#347) - Added XML Documentation (#349)
- Added
Embedded_Testson AppVeyor (#224)(#353) - Added
Embedded_Testson 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 ofPyObject(#370)(#373) - Added
Coverity scan(#390) - Added
bumpversionfor version control (#319)(#398) - Added
toxfor local testing (#345) - Added
requirements.txt - Added to
PythonEnginemethodsEvalandExec(#389) - Added implementations of
ICustomMarshal(#407) - Added docker images (#322)
- Added hooks in
pyinstallerandcx_freezeforpythonnet(#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_Teststo make easier to write tests (#369) - Changed
unitteststopytest(#368) - Upgraded NUnit framework from
2.6.3to3.5.0(#341) - Downgraded NUnit framework from
3.5.0to2.6.4(#353) - Upgraded NUnit framework from
2.6.4to3.6.0(#371) - Unfroze Mono version on Travis (#345)
- Changed
conda.recipebuild to only pull-requests (#345) - Combine
Py_DEBUGandPYTHON_WITH_PYDEBUGflags (#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
PythonExceptioncrash during Shutdown (#400) - Fixed
AppDomainunload during GC (#397)(#400) - Fixed
Py_Main&PySys_SetArgvExno mem erroronUCS4/PY3(#399) - Fixed
Python.Runtime.dll.configon macOS (#120) - Fixed crash on
PythonEngine.Version(#413) - Fixed
PythonEngine.PythonPathissues (#179)(#414)(#415)
Removed
Assets
2
Fixed
- Missing files from packaging (#336)
Assets
2
News
- transition from Zope to MIT license is completed!
- 3 new pythonnet core developers @denfromufa @filmor @vmuriart
- 32+1 contributors
- clrmagic for IPython kernel
- presentation on PyOhio 2016
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
condarecipe (#281) - Nuget update on build (#268)
- Added
__cause__attribute on exception (#287)
Changed
- License to MIT (#314)
- Project clean-up (#320)
- Refactor
#ifdirectives - Rename Decref/Incref to XDecref/XIncre (#275)
- Remove printing if Decref is called with NULL (#275)
Removed
Fixed
- Fixed
isinstancerefcount_leak (#273) - Comparison Operators (#294)
- Improved Linux support (#300)
- Exception pickling (#286)