NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #2920 most downloaded on PyPI
.NET and Mono integration for Python
Last release 5 days ago
29 Sep 2026
Release timing varies
gaps range from 8 days to 1.2 years
Nearly every release is documented
notes for 16 of 17 stable releases
2 versions withdrawn
withdrawn after publishing
13 years old
35 releases · first in 2014
Migrate to slnx by @filmor in #2733
Full Changelog: v3.1.0...v3.2.0
One column per quarter.
Py_GIL_DISABLED) (#2721).slnx format (#2733)PyBuffer_GetPointer to prevent memory
corruption (#2745)Python exception raised on conversion failure by @macaronikazoo in #2741
Full Changelog: v3.2.0-rc1...v3.2.0-rc2
Migrate to slnx by @filmor in #2733
Full Changelog: v3.1.0...v3.2.0-rc1
ci: properly exclude job by @RobPasMue in #2542
__delitem__ for IList<T> and IDictionary<K,V> by @lostmsu in #2533Full Changelog: v3.0.5...v3.1.0
del obj[...] for types derived from IList<T> and IDictionary<K, V> (#2533)IDisposable types, allowing use of with statements
for IDisposable objects (#2568)del clrObj[...] for non-arraysBinaryFormatter (#2639)__all__ on re-import (#2717)CI Improvements by @filmor in #2669
Full Changelog: v3.1.0-rc0...v3.1.0-rc1
ci: properly exclude job by @RobPasMue in #2542
__delitem__ for IList<T> and IDictionary<K,V> by @lostmsu in #2533Full Changelog: v3.0.5...v3.1.0-rc0
Drop console application by @filmor in #2456
Allow setting of the python module file by @bmello4688 in #2044
ToPythonAs<T>() by @lostmsu in #2330IComparable and IEquatable implementations by @lostmsu in #2322sys.path by @lostmsu in #2383Add method and improve message for some other internal errors by @lostmsu in #2409Full Changelog: v3.0.3...v3.0.4
ToPythonAs<T>() extension method to allow for explicit conversion
using a specific type. ([#2311][i2311])IComparable and IEquatable implementations to PyInt, PyFloat,
and PyString to compare with primitive .NET types like long.FormatterFactory member in RuntimeData to create formatters with
parameters. For compatibility, the FormatterType member is still present
and has precedence when defining both FormatterFactory and FormatterTypeAddMethodsys.path failing when a path in sys.path
has invalid characters. See #2376change PyScope to PyModule by @OmkarBorhade98 in #2231
Full Changelog: v3.0.2...v3.0.3
1776 Generic Virtual Method Causes Invalid Program: Fix + test by @rmadsen-ks in #2026
load only runs once by @filmor in #2079internal functions by @filmor in #2092GetBuffer throwing ArgumentOutOfRangeException by @legomanww in #2120Full Changelog: v3.0.1...v3.0.2
pythonnet.load a no-op, as it was intendedGetBuffer for anything other than PyBUF.SIMPLEclr_loader dependency to incorporate patchesGot rid of a few deprecation warnings that pollute GitHub code review by @lostmsu in #1850
PyObject instances by @lostmsu in #1849PyInt converted to negative BigInteger by @lostmsu in #1993Full Changelog: v3.0.0...v3.0.1
PyInt conversion to BigInteger and System.String produced incorrect result for values between 128 and 255.Nothing published for this version
Remove deprecated implicit assembly loading by @lostmsu in #1277
CheckExceptionOccurred calls by @amos402 in #1175len work for ICollection<> interface objects by @danabr in #1253find_libpython during import clr as Python.Runtime can find it on its own by @lostmsu in #1440__cause__ on overload bind failure and array conversion by @lostmsu in #1442PyType_Ready in CLR MetaType's tp_new by @lostmsu in #1486Py.Import and PyModule.Import return PyObject instead of PyModule by @lostmsu in #1530needsResolution hack by @lostmsu in #1531PyObject.As<object>() by @lostmsu in #1546threading module after TestInterrupt by @lostmsu in #1560ClassManager illegally decrefed ClassObject's refcount on shutdown by @lostmsu in #1563PythonEngine have similar SetUp and TearDown by @lostmsu in #1564Note truncated.
CheckExceptionOccurred calls by @amos402 in https://github.com/pythonnet/pythonnet/pull/1175len work for ICollection<> interface objects by @danabr in https://github.com/pythonnet/pythonnet/pull/1253find_libpython during import clr as Python.Runtime can find it on its own by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1440__cause__ on overload bind failure and array conversion by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1442PyType_Ready in CLR MetaType's tp_new by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1486Py.Import and PyModule.Import return PyObject instead of PyModule by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1530needsResolution hack by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1531PyObject.As<object>() by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1546threading module after TestInterrupt by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1560ClassManager illegally decrefed ClassObject's refcount on shutdown by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1563PythonEngine have similar SetUp and TearDown by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1564tpHandle in ClassBase.tp_clear - it might be used in tp_dealloc by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1566collections.abc interfaces by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1543Dispatcher by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1559ResolveHandler, and use official assembly name parsing by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1570FileLoadException when trying clr.AddReference('/full/path.dll') by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1573BadPythonDllException instead of confusing TypeLoadException when PythonDLL was not configured properly by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1577PyScope/PyModule API cleanup by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1569PyType is allocated by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1579GetAttr(name, default) by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1578PyType.Get by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1581PySequence and PyIterable by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1580IPyObjectDecoder.CanDecode by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1583float and bool implicit conversions by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1584__call__ method callable from Python by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1589PythonMethodAttribute by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1609ShutdownMode. Now always behaves like original Reload by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1638Py class into its own file by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1649__int__ instance method on enum types to support int(Enum.Member) by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1661PyBuffer a bit by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1662PyObject conversion to IEnumerable by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1697PyObject inherited from its base .NET classes GIL-safe by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1711BigInteger (C#) <-> PyInt by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1710NativeTypeSpec on 32 bit platforms by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1765Min/MaxSupportedVersion and IsSupportedVersion on PythonEngine by @filmor in https://github.com/pythonnet/pythonnet/pull/1799Min/MaxSupportedVersion and IsSupportedVersion on PythonEngine by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1798NewReference.Move by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1873Initialize and BeginAllowThreads in the README by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1897Full Changelog: https://github.com/pythonnet/pythonnet/compare/v2.5.2...v3.0.0
Ability to instantiate new .NET arrays using Array[T](dim1, dim2, ...) syntax
Python operator method will call C# operator method for supported binary and unary operators ([#1324][p1324]).
Add GetPythonThreadID and Interrupt methods in PythonEngine
Ability to implement delegates with ref and out parameters in Python, by returning the modified parameter values in a tuple. ([#1355][i1355])
Ability to override .NET methods that have out or ref in Python by returning the modified parameter values in a tuple. ([#1481][i1481])
PyType - a wrapper for Python type objects, that also permits creating new heap types from TypeSpec
Improved exception handling:
exceptions can now be converted with codecs
InnerException and __cause__ are propagated properly
__name__ and __signature__ to reflected .NET methods
.NET collection types now implement standard Python collection interfaces from collections.abc.
See Mixins/collections.py.
you can cast objects to generic .NET interfaces without specifying generic arguments as long as there is no ambiguity.
.NET arrays implement Python buffer protocol
Python integer interoperability with System.Numerics.BigInteger
Python.NET will correctly resolve .NET methods, that accept PyList, PyInt,
and other PyObject derived types when called from Python.
.NET classes, that have __call__ method are callable from Python
PyIterable type, that wraps any iterable object in Python
PythonEngine properties for supported Python versions: MinSupportedVersion, MaxSupportedVersion, and IsSupportedVersion
The runtime that is loaded on import clr can now be configured via environment variables
wchar_t size aka Runtime.UCS is now determined at runtimeclr.AddReference may now throw errors besides FileNotFoundException, that provide more
details about the cause of the failureclr.AddReference no longer adds ".dll" implicitlyPyIter(PyObject) constructor replaced with static PyIter.GetIter(PyObject) method__implementation__ or __raw_implementation__ properties to
if you need to "downcast" to the implementation class.== and != operators on PyObject instances now use Python comparison
(previously was equivalent to object.ReferenceEquals(,))ParameterAttributes.Out are no longer returned in addition
to the regular method return value (unless they are passed with ref or out keyword).PyObject now implements IEnumerable<PyObject> in addition to IEnumerablePyObject inherited from System.Object andDynamicObject` now autoacquire GIL__init__ you
must explicitly call base constructor using super().__init__(.....). Not doing so will lead
to undefined behavior.PyScope methods will never return null. Instead, PyObject None will be returned.PyScope was renamed to PyModuleref or out parameters and void return type return a tuple of only the ref and out parameters.Runtime.PythonDLL property must be set to Python DLL name
or the DLL must be loaded in advance. This must be done before calling any other Python.NET functions.PyObject.Length() now raises a PythonException when object does not support a concept of length.int and back.
One must now either use enum members (e.g. MyEnum.Option), or use enum constructor
(e.g. MyEnum(42) or MyEnum(42, True) when MyEnum does not have a member with value 42).System.Object. The conversion is still attempted when the
target type is a System.Array.clr_loader instead of the included ClrModule, enables
support for .NET CoreSystem.TypePythonException.Restore no longer clears PythonException instance.__import__ hook hack with a PEP302-style Meta Path Loaderstr(__class__)) changed to better support generic typesPy.GIL no longer forces PythonEngine to initializeExec and Eval from PythonEngine no longer accept raw pointers.collections.abc.
See Mixins/collections.py.int to System.Object, result will
be of type PyInt instead of System.Int32 due to possible loss of information.
Python float will continue to be converted to System.Double.numpy.float64, that implement __float__ to
System.Single and System.Double. An explicit conversion is required on Python or .NET side.PyObject.GetHashCode can fail.System.Boolean.PyObject.GetAttr(name, default) now only ignores AttributeError (previously ignored all exceptions).PyObject no longer implements IEnumerable<PyObject>.
Instead, PyIterable does that.IPyObjectDecoder.CanDecode objectType parameter type changed from PyObject to PyTypetp_repr, which may result in a program crashobject[] parameters taking precedence when should not in overload resolution__len__ also on ICollection<> interface objectsToString, GetHashCode, and GetType on inteface objectsPyObject being disposed too soonimport may now raise errors with more detail than "No module named X"PythonException.StackTrace are now properly formattedReload mode now supports generic methods (previously Python would stop seeing them after reload)out parameters (#1672)ShutdownMode has been removed. The only shutdown mode supported now is an equivalent of ShutdownMode.Reload.
There is no need to specify it.clr.AddReference before doing import)PythonException no longer start with exception typePyScopeManager, PyScopeException, PyScope (use PyModule instead)Implicit float conversion in function calls by @filmor in https://github.com/pythonnet/pythonnet/pull/1908
Full Changelog: https://github.com/pythonnet/pythonnet/compare/v3.0.0-rc5...v3.0.0-rc6
Add XML docs to NuGet by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1878
Initialize and BeginAllowThreads in the README by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1897Full Changelog: https://github.com/pythonnet/pythonnet/compare/v3.0.0-rc4...v3.0.0-rc5
Fixed a leak in NewReference.Move by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1873
NewReference.Move by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1873Full Changelog: https://github.com/pythonnet/pythonnet/compare/v3.0.0-rc3...v3.0.0-rc4
Fix (U)IntPtr construction by @filmor in https://github.com/pythonnet/pythonnet/pull/1861
Full Changelog: https://github.com/pythonnet/pythonnet/compare/v3.0.0-rc2...v3.0.0-rc3
Implemented dynamic equality and inequality for PyObject instances by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1849
import clr behaviourFull Changelog: https://github.com/pythonnet/pythonnet/compare/v3.0.0-rc1...v3.0.0-rc2
Match generic and private methods upon runtime reload by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1637
ShutdownMode. Now always behaves like original Reload by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1638Py class into its own file by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1649__int__ instance method on enum types to support int(Enum.Member) by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1661PyBuffer a bit by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1662PyObject conversion to IEnumerable by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1697PyObject inherited from its base .NET classes GIL-safe by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1711BigInteger (C#) <-> PyInt by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1710NativeTypeSpec on 32 bit platforms by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1765Min/MaxSupportedVersion and IsSupportedVersion on PythonEngine by @filmor in https://github.com/pythonnet/pythonnet/pull/1799Min/MaxSupportedVersion and IsSupportedVersion on PythonEngine by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1798Full Changelog: https://github.com/pythonnet/pythonnet/compare/v3.0.0-a2...v3.0.0-rc1
Track Runtime run number by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1074
Full Changelog: https://github.com/pythonnet/pythonnet/compare/v3.0.0-a1...v3.0.0-a2
Remove deprecated implicit assembly loading by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1277
CheckExceptionOccurred calls by @amos402 in https://github.com/pythonnet/pythonnet/pull/1175len work for ICollection<> interface objects by @danabr in https://github.com/pythonnet/pythonnet/pull/1253find_libpython during import clr as Python.Runtime can find it on its own by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1440__cause__ on overload bind failure and array conversion by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1442PyType_Ready in CLR MetaType's tp_new by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1486Py.Import and PyModule.Import return PyObject instead of PyModule by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1530needsResolution hack by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1531PyObject.As<object>() by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1546threading module after TestInterrupt by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1560ClassManager illegally decrefed ClassObject's refcount on shutdown by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1563PythonEngine have similar SetUp and TearDown by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1564tpHandle in ClassBase.tp_clear - it might be used in tp_dealloc by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1566collections.abc interfaces by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1543Dispatcher by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1559ResolveHandler, and use official assembly name parsing by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1570FileLoadException when trying clr.AddReference('/full/path.dll') by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1573BadPythonDllException instead of confusing TypeLoadException when PythonDLL was not configured properly by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1577PyScope/PyModule API cleanup by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1569PyType is allocated by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1579GetAttr(name, default) by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1578PyType.Get by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1581PySequence and PyIterable by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1580IPyObjectDecoder.CanDecode by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1583float and bool implicit conversions by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1584__call__ method callable from Python by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1589PythonMethodAttribute by @lostmsu in https://github.com/pythonnet/pythonnet/pull/1609Full Changelog: https://github.com/pythonnet/pythonnet/compare/v2.5.0...v3.0.0-a1
fixed object[] parameters having precedence over anything else compatible https://github.com/pythonnet/pythonnet/issues/1211
object[] parameters having precedence over anything else compatible https://github.com/pythonnet/pythonnet/issues/1211Additionally, includes support for Python 3.9.
Bugfix release.
object[] parameters taking precedence when should not in overload resolutionBackports two reference counting bugfixes from master.
Backports two reference counting bugfixes from master.
Many thanks two the reporters who also provided the fixes:
Bugfix release.
tp_repr, which may result in a program crash> :warning: This release will be the last one supporting Python 2 and non-.NET-Standard builds.
: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.
Py_NoSiteFlag to 1.__len__ for .NET classes that implement ICollectionPyExport attribute to hide .NET types from PythonPythonException.Format method to format exceptions the same as
traceback.format_exceptionRuntime.None to be able to pass None as parameter into Python from .NETPyObject.IsNone() to check if a Python object is None in .NET.PyLong_GetMax and PyClass_New when targetting Python3GetDelegateForFunctionPointer(IntPtr, Type) to
GetDelegateForFunctionPointer<TDelegate>(IntPtr)object by wrapping it into PyObject instance.
([#881][i881])Finalizer. Now objects drop into its queue upon finalization,
which is periodically drained when new objects are created.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.pycparser for the interop module generation__classcell__ correctly for Python subclasses of .NET typesPyRun_String on Python 3These authors have contributed to this release:
Nothing published for this version
Added support for embedding python into dotnet core 2.0 (NetStandard 2.0)
PythonEngine.AddShutdownHandler to help client code clean up on shutdown.clr.GetClrType ([#432][i432])([#433][p433])None for nullable args ([#460][p460])__repr__ ([#680][p680])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][i449])LoadLibrary call. ([#880][p880])__namespace__ or __assembly__
attribute ([#481][i481])clr.GetClrType when iterating over System members ([#607][p607])LockRecursionException when loading assemblies ([#627][i627])Nothing published for this version
Added Embedded_Tests on AppVeyor
PySys_SetArgvEx (#347)Embedded_Tests on AppVeyor (#224)(#353)Embedded_Tests on Travis (#224)(#391)Slack (#384)(#383)(#386)PyObject (#370)(#373)Coverity scan (#390)bumpversion for version control (#319)(#398)tox for local testing (#345)requirements.txtPythonEngine methods Eval and Exec (#389)ICustomMarshal (#407)pyinstaller and cx_freeze for pythonnet (#66)unittests (#329)setup.py (#337)runtime.cs (#339)Embedded_Tests to make easier to write tests (#369)unittests to pytest (#368)2.6.3 to 3.5.0 (#341)3.5.0 to 2.6.4 (#353)2.6.4 to 3.6.0 (#371)conda.recipe build to only pull-requests (#345)Py_DEBUG and PYTHON_WITH_PYDEBUG flags (#362)RunString (#401)conda.recipe (#398)Embedded_TestsPythonException crash during Shutdown (#400)AppDomain unload during GC (#397)(#400)Py_Main & PySys_SetArgvEx no mem error on UCS4/PY3 (#399)Python.Runtime.dll.config on macOS (#120)PythonEngine.Version (#413)PythonEngine.PythonPath issues (#179)(#414)(#415)six dependency for unittests (#329)Mono.Unix dependency for UCS4 (#360)Python.Runtime.dll.configPYTHON_WITH_WIDE_UNICODE (#417)PySys_SetArgvEx ([#347][p347])Embedded_Tests on AppVeyor ([#224][i224])([#353][p353])Embedded_Tests on Travis ([#224][i224])([#391][p391])Slack ([#384][p384])([#383][i383])([#386][p386])PyObject ([#370][i370])([#373][p373])Coverity scan ([#390][i390])bumpversion for version control ([#319][i319])([#398][p398])tox for local testing ([#345][p345])requirements.txtPythonEngine methods Eval and Exec ([#389][p389])ICustomMarshal ([#407][p407])pyinstaller and cx_freeze for pythonnet ([#66][i66])unittests ([#329][p329])setup.py ([#337][p337])runtime.cs ([#339][p339])Embedded_Tests to make easier to write tests ([#369][p369])unittests to pytest ([#368][p368])2.6.3 to 3.5.0 ([#341][p341])3.5.0 to 2.6.4 ([#353][p353])2.6.4 to 3.6.0 ([#371][p371])conda.recipe build to only pull-requests ([#345][p345])Py_DEBUG and PYTHON_WITH_PYDEBUG flags ([#362][i362])RunString ([#401][i401])conda.recipe ([#398][p398])Embedded_TestsPythonException crash during Shutdown ([#400][p400])AppDomain unload during GC ([#397][i397])([#400][p400])Py_Main & PySys_SetArgvEx no mem error on UCS4/PY3 ([#399][p399])Python.Runtime.dll.config on macOS ([#120][i120])PythonEngine.Version ([#413][i413])PythonEngine.PythonPath issues ([#179][i179])([#414][i414])([#415][p415])six dependency for unittests ([#329][p329])Mono.Unix dependency for UCS4 ([#360][p360])Python.Runtime.dll.configPYTHON_WITH_WIDE_UNICODE ([#417][i417])### Fixed - Missing files from packaging
transition from Zope to MIT license is completed!
v2.2.0 had a release issue on pypi. Bumped to v2.2.1
__version__ to module (#312)conda recipe (#281)__cause__ attribute on exception (#287)#if directivesisinstance refcount_leak (#273)v2.2.0 had a release issue on PyPi. Bumped to v2.2.1__version__ to module ([#312][p312])conda recipe ([#281][p281])__cause__ attribute on exception ([#287][p287])#if directivesisinstance refcount_leak ([#273][p273])3 new pythonnet core developers @denfromufa @filmor @vmuriart
setup.py improvements for locating build tools ([#208][p208])Managed classes can be subclassed in Python
Nothing published for this version
- Release
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →