|
1 | 1 | # Changelog
|
2 | 2 |
|
3 |
| -All notable changes to Python for .NET will be documented in this file. |
4 |
| -This project adheres to [Semantic Versioning][]. |
| 3 | +All notable changes to Python.NET will be documented in this file. This |
| 4 | +project adheres to [Semantic Versioning][]. |
5 | 5 |
|
6 | 6 | This document follows the conventions laid out in [Keep a CHANGELOG][].
|
7 | 7 |
|
8 |
| -## [unreleased][] |
| 8 | +## [Unreleased][] |
9 | 9 |
|
10 | 10 | ### Added
|
11 | 11 |
|
12 |
| -- Added automatic NuGet package generation in appveyor and local builds |
13 |
| -- Added function that sets Py_NoSiteFlag to 1. |
14 |
| -- Added support for Jetson Nano. |
15 |
| -- Added support for __len__ for .NET classes that implement ICollection |
16 |
| -- Added `PyExport` attribute to hide .NET types from Python |
17 | 12 | - Added `__name__` and `__signature__` to reflected .NET methods
|
18 |
| -- Added PythonException.Format method to format exceptions the same as traceback.format_exception |
19 |
| -- Added Runtime.None to be able to pass None as parameter into Python from .NET |
20 |
| -- Added PyObject.IsNone() to check if a Python object is None in .NET. |
| 13 | + |
| 14 | +### Changed |
| 15 | + |
| 16 | +### Fixed |
| 17 | + |
| 18 | +- Fix incorrect dereference of wrapper object in tp_repr, which may result in a program crash |
| 19 | + |
| 20 | +## [2.5.0][] - 2020-06-14 |
| 21 | + |
| 22 | +This version improves performance on benchmarks significantly compared to 2.3. |
| 23 | + |
| 24 | +### Added |
| 25 | + |
| 26 | +- Automatic NuGet package generation in appveyor and local builds |
| 27 | +- Function that sets `Py_NoSiteFlag` to 1. |
| 28 | +- Support for Jetson Nano. |
| 29 | +- Support for `__len__` for .NET classes that implement ICollection |
| 30 | +- `PyExport` attribute to hide .NET types from Python |
| 31 | +- `PythonException.Format` method to format exceptions the same as |
| 32 | + `traceback.format_exception` |
| 33 | +- `Runtime.None` to be able to pass `None` as parameter into Python from .NET |
| 34 | +- `PyObject.IsNone()` to check if a Python object is None in .NET. |
21 | 35 | - Support for Python 3.8
|
| 36 | +- Codecs as the designated way to handle automatic conversions between |
| 37 | + .NET and Python types |
22 | 38 |
|
23 | 39 | ### Changed
|
24 | 40 |
|
25 | 41 | - Added argument types information to "No method matches given arguments" message
|
26 | 42 | - Moved wheel import in setup.py inside of a try/except to prevent pip collection failures
|
27 |
| -- Removes PyLong_GetMax and PyClass_New when targetting Python3 |
| 43 | +- Removes `PyLong_GetMax` and `PyClass_New` when targetting Python3 |
28 | 44 | - Improved performance of calls from Python to C#
|
29 | 45 | - Added support for converting python iterators to C# arrays
|
30 |
| -- Changed usage of obselete function GetDelegateForFunctionPointer(IntPtr, Type) to GetDelegateForFunctionPointer<TDelegate>(IntPtr) |
31 |
| -- 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]) |
| 46 | +- Changed usage of the obsolete function |
| 47 | + `GetDelegateForFunctionPointer(IntPtr, Type)` to |
| 48 | + `GetDelegateForFunctionPointer<TDelegate>(IntPtr)` |
| 49 | +- When calling C# from Python, enable passing argument of any type to a |
| 50 | + parameter of C# type `object` by wrapping it into `PyObject` instance. |
| 51 | + ([#881][i881]) |
32 | 52 | - Added support for kwarg parameters when calling .NET methods from Python
|
33 | 53 | - Changed method for finding MSBuild using vswhere
|
34 |
| -- Reworked `Finalizer`. Now objects drop into its queue upon finalization, which is periodically drained when new objects are created. |
35 |
| -- 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. |
| 54 | +- Reworked `Finalizer`. Now objects drop into its queue upon finalization, |
| 55 | + which is periodically drained when new objects are created. |
| 56 | +- Marked `Runtime.OperatingSystemName` and `Runtime.MachineName` as |
| 57 | + `Obsolete`, should never have been `public` in the first place. They also |
| 58 | + don't necessarily return a result that matches the `platform` module's. |
| 59 | +- Unconditionally depend on `pycparser` for the interop module generation |
36 | 60 |
|
37 | 61 | ### Fixed
|
38 | 62 |
|
39 |
| -- Fixed runtime that fails loading when using pythonnet in an environment |
40 |
| - together with Nuitka |
41 |
| -- Fixes bug where delegates get casts (dotnetcore) |
42 |
| -- Determine size of interpreter longs at runtime |
43 |
| -- Handling exceptions ocurred in ModuleObject's getattribute |
44 |
| -- Fill `__classcell__` correctly for Python subclasses of .NET types |
45 |
| -- Fixed issue with params methods that are not passed an array. |
| 63 | +- Fixed runtime that fails loading when using pythonnet in an environment |
| 64 | + together with Nuitka |
| 65 | +- Fixes bug where delegates get casts (dotnetcore) |
| 66 | +- Determine size of interpreter longs at runtime |
| 67 | +- Handling exceptions ocurred in ModuleObject's getattribute |
| 68 | +- Fill `__classcell__` correctly for Python subclasses of .NET types |
| 69 | +- Fixed issue with params methods that are not passed an array. |
| 70 | +- Use UTF8 to encode strings passed to `PyRun_String` on Python 3 |
46 | 71 |
|
47 |
| -## [2.4.0][] |
| 72 | +## [2.4.0][] - 2019-05-15 |
48 | 73 |
|
49 | 74 | ### Added
|
50 | 75 |
|
|
0 commit comments