Array[T](dim1, dim2, ...) syntaxref and out parameters in Python, by returning the modified parameter values in a tuple. ([#1355][i1355])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 TypeSpecInnerException and __cause__ are propagated properly__name__ and __signature__ to reflected .NET methodscollections.abc.
👀 See [Mixins/collections.py](src/runtime/Mixins/collections.py).System.Numerics.BigIntegerPyList, PyInt,
and other PyObject derived types when called from Python.__call__ method are callable from PythonPyIterable type, that wraps any iterable object in PythonPythonEngine properties for supported Python versions: MinSupportedVersion, MaxSupportedVersion, and IsSupportedVersionimport clr can now be configured via environment variableswchar_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](src/runtime/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](i1672))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)