All Versions
26
Latest Version
Avg Release Cycle
140 days
Latest Release
789 days ago
Changelog History
Page 1
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 PythonPythonException.Format
method to format exceptions the same as
traceback.format_exception
Runtime.None
to be able to passNone
as 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_GetMax
andPyClass_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# typeobject
by wrapping it intoPyObject
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
andRuntime.MachineName
as
Obsolete
, should never have beenpublic
in the first place. They also
don't necessarily return a result that matches theplatform
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 astraceback.format_exception
-
Runtime.None
to be able to passNone
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
andPyClass_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)
toGetDelegateForFunctionPointer<TDelegate>(IntPtr)
- When calling C# from Python, enable passing argument of any type to a
parameter of C# type
object
by wrapping it intoPyObject
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
andRuntime.MachineName
asObsolete
, should never have beenpublic
in the first place. They also don't necessarily return a result that matches theplatform
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, wherePy_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 intoPyObject
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 overSystem
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, wherePy_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 overSystem
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 ofPyObject
(#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
methodsEval
andExec
(#389) - โ Added implementations of
ICustomMarshal
(#407) - โ Added docker images (#322)
- โ Added hooks in
pyinstaller
andcx_freeze
forpythonnet
(#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
topytest
(#368) - โฌ๏ธ Upgraded NUnit framework from
2.6.3
to3.5.0
(#341) - โฌ๏ธ Downgraded NUnit framework from
3.5.0
to2.6.4
(#353) - โฌ๏ธ Upgraded NUnit framework from
2.6.4
to3.6.0
(#371) - Unfroze Mono version on Travis (#345)
- ๐ Changed
conda.recipe
build to only pull-requests (#345) - Combine
Py_DEBUG
andPYTHON_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
onUCS4/PY3
(#399) - ๐ Fixed
Python.Runtime.dll.config
on macOS (#120) - ๐ Fixed crash on
PythonEngine.Version
(#413) - ๐ Fixed
PythonEngine.PythonPath
issues (#179)(#414)(#415)
โ Removed
-
v2.2.2 Changes
January 29, 2017๐ Fixed
- Missing files from packaging (#336)
-
v2.2.1 Changes
January 26, 2017๐ 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 tov2.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
๐ Fixed
- ๐ Fixed
isinstance
refcount_leak (#273) - Comparison Operators (#294)
- ๐ Improved Linux support (#300)
- ๐ป Exception pickling (#286)
Known Issues