You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+62-2Lines changed: 62 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -9,16 +9,73 @@ This document follows the conventions laid out in [Keep a CHANGELOG][].
9
9
10
10
### Added
11
11
12
+
- Ability to instantiate new .NET arrays using `Array[T](dim1, dim2, ...)` syntax
13
+
- Python operator method will call C# operator method for supported binary and unary operators ([#1324][p1324]).
14
+
- Add GetPythonThreadID and Interrupt methods in PythonEngine
15
+
- Ability to implement delegates with `ref` and `out` parameters in Python, by returning the modified parameter values in a tuple. ([#1355][i1355])
16
+
-`PyType` - a wrapper for Python type objects, that also permits creating new heap types from `TypeSpec`
12
17
- Improved exception handling:
13
18
- exceptions can now be converted with codecs
14
19
-`InnerException` and `__cause__` are propagated properly
15
-
- .NET and Python exceptions are preserved when crossing Python/.NET boundary
16
20
17
21
### Changed
22
+
- Drop support for Python 2, 3.4, and 3.5
23
+
-`wchar_t` size aka `Runtime.UCS` is now determined at runtime
24
+
-`clr.AddReference` may now throw errors besides `FileNotFoundException`, that provide more
25
+
details about the cause of the failure
26
+
-`clr.AddReference` no longer adds ".dll" implicitly
27
+
-`PyIter(PyObject)` constructor replaced with static `PyIter.GetIter(PyObject)` method
28
+
- BREAKING: Return values from .NET methods that return an interface are now automatically
29
+
wrapped in that interface. This is a breaking change for users that rely on being
30
+
able to access members that are part of the implementation class, but not the
31
+
interface. Use the new __implementation__ or __raw_implementation__ properties to
32
+
if you need to "downcast" to the implementation class.
33
+
- BREAKING: Parameters marked with `ParameterAttributes.Out` are no longer returned in addition
34
+
to the regular method return value (unless they are passed with `ref` or `out` keyword).
35
+
- BREAKING: Drop support for the long-deprecated CLR.* prefix.
36
+
-`PyObject` now implements `IEnumerable<PyObject>` in addition to `IEnumerable`
37
+
- floating point values passed from Python are no longer silently truncated
38
+
when .NET expects an integer [#1342][i1342]
39
+
- More specific error messages for method argument mismatch
40
+
- BREAKING: Methods with `ref` or `out` parameters and void return type return a tuple of only the `ref` and `out` parameters.
41
+
- BREAKING: to call Python from .NET `Runtime.PythonDLL` property must be set to Python DLL name
42
+
or the DLL must be loaded in advance. This must be done before calling any other Python.NET functions.
43
+
- BREAKING: `PyObject.Length()` now raises a `PythonException` when object does not support a concept of length.
44
+
- BREAKING: disabled implicit conversion from C# enums to Python `int` and back.
45
+
One must now either use enum members (e.g. `MyEnum.Option`), or use enum constructor
46
+
(e.g. `MyEnum(42)` or `MyEnum(42, True)` when `MyEnum` does not have a member with value 42).
47
+
- Sign Runtime DLL with a strong name
48
+
- Implement loading through `clr_loader` instead of the included `ClrModule`, enables
49
+
support for .NET Core
50
+
- .NET and Python exceptions are preserved when crossing Python/.NET boundary
51
+
- BREAKING: custom encoders are no longer called for instances of `System.Type`
18
52
19
53
### Fixed
20
54
21
-
- Fix incorrect dereference of wrapper object in tp_repr, which may result in a program crash
55
+
- Fix incorrect dereference of wrapper object in `tp_repr`, which may result in a program crash
56
+
- Fix incorrect dereference in params array handling
57
+
- Fixes issue with function resolution when calling overloaded function with keyword arguments from python ([#1097][i1097])
58
+
- Fix `object[]` parameters taking precedence when should not in overload resolution
59
+
- Fixed a bug where all .NET class instances were considered Iterable
60
+
- Fix incorrect choice of method to invoke when using keyword arguments.
61
+
- Fix non-delegate types incorrectly appearing as callable.
62
+
- Indexers can now be used with interface objects
63
+
- Fixed a bug where indexers could not be used if they were inherited
64
+
- Made it possible to use `__len__` also on `ICollection<>` interface objects
65
+
- Fixed issue when calling PythonException.Format where another exception would be raise for unnormalized exceptions
66
+
- Made it possible to call `ToString`, `GetHashCode`, and `GetType` on inteface objects
67
+
- Fixed objects returned by enumerating `PyObject` being disposed too soon
68
+
- Incorrectly using a non-generic type with type parameters now produces a helpful Python error instead of throwing NullReferenceException
69
+
-`import` may now raise errors with more detail than "No module named X"
70
+
- Exception stacktraces on `PythonException.StackTrace` are now properly formatted
71
+
- Providing an invalid type parameter to a generic type or method produces a helpful Python error
72
+
- Empty parameter names (as can be generated from F#) do not cause crashes
73
+
74
+
### Removed
75
+
76
+
- implicit assembly loading (you have to explicitly `clr.AddReference` before doing import)
77
+
- support for .NET Framework 4.0-4.6; Mono before 5.4. Python.NET now requires .NET Standard 2.0
78
+
(see [the matrix](https://docs.microsoft.com/en-us/dotnet/standard/net-standard#net-implementation-support))
22
79
23
80
## [2.5.0][] - 2020-06-14
24
81
@@ -38,6 +95,7 @@ This version improves performance on benchmarks significantly compared to 2.3.
38
95
- Support for Python 3.8
39
96
- Codecs as the designated way to handle automatic conversions between
40
97
.NET and Python types
98
+
- Added Python 3 buffer api support and PyBuffer interface for fast byte and numpy array read/write ([#980][p980])
41
99
42
100
### Changed
43
101
@@ -100,6 +158,7 @@ This version improves performance on benchmarks significantly compared to 2.3.
100
158
- 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, where `Py_Initialize` was called instead, which sets initSigs to 1. ([#449][i449])
101
159
- Refactored MethodBinder.Bind in preparation to make it extensible (#829)
102
160
- Look for installed Windows 10 sdk's during installation instead of relying on specific versions.
161
+
- Remove `LoadLibrary` call. ([#880][p880])
103
162
104
163
### Fixed
105
164
@@ -776,3 +835,4 @@ This version improves performance on benchmarks significantly compared to 2.3.
0 commit comments