Pythonnet

Latest version: v3.0.4

Safety actively analyzes 681844 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 4

2.1.0

2.0.0

2.0.0alpha.2

Changed

- First work on Python 2.5 compatibility. The destination version can be
set by defining PYTHON24 or PYTHON25. Python 2.6 compatibility is in
work.

- Added VS 2005 solution and project files including a UnitTest
configuration which runs the unit test suite.

- Enhanced unit test suite. All test cases are combined in a single
test suite now.

- Fixed bugs in generics support for all Python versions.

- Fixed exception bugs for Python 2.5+. When compiled for Python 2.5+ all
managed exceptions are based on Python's `exceptions.Exception` class.

- Added deprecation warnings for importing from `CLR.*` and the CLR module.

- Implemented support for methods with variable arguments
`spam(params object[] egg)`

- Fixed Mono support by adding a custom marshaler for UCS-4 unicode,
fixing a some ref counter bugs and creating a new makefile.mono.

- Added a standard python extension to load the clr environment.
The `src/monoclr/` directory contains additional sample code like a
Python binary linked against `libpython2.x.so` and some example code
how to embed Mono and PythonNet in a C application.

- Added yet another python prompt. This time it's a C application that
embedds both Python and Mono. It may be useful as an example app for
others and I need it to debug a nasty bug.

- Implemented `ModuleFunctionAttribute` and added
`ForbidPythonThreadsAttribute`. The latter is required for module
functions which invoke Python methods.

- Added `clr.setPreload()`, `clr.getPreload()`,
`clr.AddReference("assembly name")`, `clr.FindAssembly("name")`
and `clr.ListAssemblies(verbose)`. Automatic preloading can be enabled
with clr.setPreload/True). Preloading is automatically enabled for
interactive Python shells and disabled in all other cases.

- New Makefile that works for Windows and Mono and autodetects the Python
version and UCS 2/4 setting.

- Added code for Python 2.3. PythonNet can be build for Python 2.3 again
but it is not fully supported.

- Changed the PythonException.Message value so it displays the name of
the exception class `Exception` instead of its representation
`<type 'exceptions.Exception'>`.

- Added `Python.Runtime.dll.config`.

2.0.0alpha.1

Changed

- Moved the Python for .NET project to Sourceforge and moved version
control to Subversion.

- Removed `CallConvCdecl` attributes and the IL hack that they supported.
.NET 2.x now supports `UnmanagedFunctionPointer`, which does the right
thing without the hackery required in 1.x. This removes a dependency
on ILASM to build the package and better supports Mono (in theory).

- Refactored import and assembly management machinery. The old `CLR.`
syntax for import is deprecated, but still supported until 3.x. The
recommended style now is to use `from System import xxx`, etc. We
also now support `from X import *` correctly.

- Implemented a (lowercase) `clr` module to match IronPython for code
compatibility. Methods of this module should be used to explicitly
load assemblies. Implicit (name-based) assembly loading will still
work until 3.x, but it is deprecated.

- Implemented support for generic types and generic methods using the
same patterns and syntax as IronPython. See the documentation for
usage details.

- Many small and large performance improvements, switched to generic
collections for some internals, better algorithms for assembly
scanning, etc.

- Fixed an unboxing issue in generated delegate implementation code
that affected delegates that return value types.

1.0.0

[i714]: https://github.com/pythonnet/pythonnet/issues/714
[i608]: https://github.com/pythonnet/pythonnet/issues/608
[i443]: https://github.com/pythonnet/pythonnet/issues/443
[p690]: https://github.com/pythonnet/pythonnet/pull/690
[i475]: https://github.com/pythonnet/pythonnet/issues/475
[p693]: https://github.com/pythonnet/pythonnet/pull/693
[i432]: https://github.com/pythonnet/pythonnet/issues/432
[p433]: https://github.com/pythonnet/pythonnet/pull/433
[p460]: https://github.com/pythonnet/pythonnet/pull/460
[p461]: https://github.com/pythonnet/pythonnet/pull/461
[p433]: https://github.com/pythonnet/pythonnet/pull/433
[i434]: https://github.com/pythonnet/pythonnet/issues/434
[i481]: https://github.com/pythonnet/pythonnet/issues/481
[i486]: https://github.com/pythonnet/pythonnet/issues/486
[i492]: https://github.com/pythonnet/pythonnet/issues/492
[i495]: https://github.com/pythonnet/pythonnet/issues/495
[p607]: https://github.com/pythonnet/pythonnet/pull/607
[i627]: https://github.com/pythonnet/pythonnet/issues/627
[i276]: https://github.com/pythonnet/pythonnet/issues/276
[i676]: https://github.com/pythonnet/pythonnet/issues/676
[p345]: https://github.com/pythonnet/pythonnet/pull/345
[p347]: https://github.com/pythonnet/pythonnet/pull/347
[p349]: https://github.com/pythonnet/pythonnet/pull/349
[i224]: https://github.com/pythonnet/pythonnet/issues/224
[p353]: https://github.com/pythonnet/pythonnet/pull/353
[p391]: https://github.com/pythonnet/pythonnet/pull/391
[p346]: https://github.com/pythonnet/pythonnet/pull/346
[p384]: https://github.com/pythonnet/pythonnet/pull/384
[i383]: https://github.com/pythonnet/pythonnet/issues/383
[p386]: https://github.com/pythonnet/pythonnet/pull/386
[i370]: https://github.com/pythonnet/pythonnet/issues/370
[p373]: https://github.com/pythonnet/pythonnet/pull/373
[i390]: https://github.com/pythonnet/pythonnet/issues/390
[i319]: https://github.com/pythonnet/pythonnet/issues/319
[p398]: https://github.com/pythonnet/pythonnet/pull/398
[p345]: https://github.com/pythonnet/pythonnet/pull/345
[p389]: https://github.com/pythonnet/pythonnet/pull/389
[p407]: https://github.com/pythonnet/pythonnet/pull/407
[i322]: https://github.com/pythonnet/pythonnet/issues/322
[i66]: https://github.com/pythonnet/pythonnet/issues/66
[p329]: https://github.com/pythonnet/pythonnet/pull/329
[p337]: https://github.com/pythonnet/pythonnet/pull/337
[p339]: https://github.com/pythonnet/pythonnet/pull/339
[p369]: https://github.com/pythonnet/pythonnet/pull/369
[p368]: https://github.com/pythonnet/pythonnet/pull/368
[p341]: https://github.com/pythonnet/pythonnet/pull/341
[p353]: https://github.com/pythonnet/pythonnet/pull/353
[p371]: https://github.com/pythonnet/pythonnet/pull/371
[p345]: https://github.com/pythonnet/pythonnet/pull/345
[i362]: https://github.com/pythonnet/pythonnet/issues/362
[i401]: https://github.com/pythonnet/pythonnet/issues/401
[i262]: https://github.com/pythonnet/pythonnet/issues/262
[p343]: https://github.com/pythonnet/pythonnet/pull/343
[p365]: https://github.com/pythonnet/pythonnet/pull/365
[i203]: https://github.com/pythonnet/pythonnet/issues/203
[p377]: https://github.com/pythonnet/pythonnet/pull/377
[p398]: https://github.com/pythonnet/pythonnet/pull/398
[p400]: https://github.com/pythonnet/pythonnet/pull/400
[i397]: https://github.com/pythonnet/pythonnet/issues/397
[p399]: https://github.com/pythonnet/pythonnet/pull/399
[i120]: https://github.com/pythonnet/pythonnet/issues/120
[i413]: https://github.com/pythonnet/pythonnet/issues/413
[i179]: https://github.com/pythonnet/pythonnet/issues/179
[i414]: https://github.com/pythonnet/pythonnet/issues/414
[p415]: https://github.com/pythonnet/pythonnet/pull/415
[p329]: https://github.com/pythonnet/pythonnet/pull/329
[p360]: https://github.com/pythonnet/pythonnet/pull/360
[i417]: https://github.com/pythonnet/pythonnet/issues/417
[i336]: https://github.com/pythonnet/pythonnet/issues/336
[p310]: https://github.com/pythonnet/pythonnet/pull/310
[p312]: https://github.com/pythonnet/pythonnet/pull/312
[p281]: https://github.com/pythonnet/pythonnet/pull/281
[p268]: https://github.com/pythonnet/pythonnet/pull/268
[p287]: https://github.com/pythonnet/pythonnet/pull/287
[p314]: https://github.com/pythonnet/pythonnet/pull/314
[p320]: https://github.com/pythonnet/pythonnet/pull/320
[p275]: https://github.com/pythonnet/pythonnet/pull/275
[i270]: https://github.com/pythonnet/pythonnet/issues/270
[p273]: https://github.com/pythonnet/pythonnet/pull/273
[p294]: https://github.com/pythonnet/pythonnet/pull/294
[p300]: https://github.com/pythonnet/pythonnet/pull/300
[p286]: https://github.com/pythonnet/pythonnet/pull/286
[p219]: https://github.com/pythonnet/pythonnet/pull/219
[p208]: https://github.com/pythonnet/pythonnet/pull/208
[p206]: https://github.com/pythonnet/pythonnet/pull/206
[p233]: https://github.com/pythonnet/pythonnet/pull/233
[p219]: https://github.com/pythonnet/pythonnet/pull/219
[p250]: https://github.com/pythonnet/pythonnet/pull/250
[p225]: https://github.com/pythonnet/pythonnet/pull/225
[p78]: https://github.com/pythonnet/pythonnet/pull/78
[p163]: https://github.com/pythonnet/pythonnet/pull/163
[p625]: https://github.com/pythonnet/pythonnet/pull/625
[i131]: https://github.com/pythonnet/pythonnet/issues/131
[p531]: https://github.com/pythonnet/pythonnet/pull/531
[i755]: https://github.com/pythonnet/pythonnet/pull/755
[p534]: https://github.com/pythonnet/pythonnet/pull/534
[i449]: https://github.com/pythonnet/pythonnet/issues/449
[i1342]: https://github.com/pythonnet/pythonnet/issues/1342
[i238]: https://github.com/pythonnet/pythonnet/issues/238
[i1481]: https://github.com/pythonnet/pythonnet/issues/1481
[i1672]: https://github.com/pythonnet/pythonnet/pull/1672
[i2311]: https://github.com/pythonnet/pythonnet/issues/2311
[i1977]: https://github.com/pythonnet/pythonnet/issues/1977

1.0.0rc.2

Changed

- Changed some uses of Finalize as a static method name that confused the
Mono compiler and people reading the code. Note that this may be a
breaking change if anyone was calling `PythonEngine.Finalize()`. If so,
you should now use `PythonEngine.Shutdown()`.

- Tweaked assembly lookup to ensure that assemblies can be found in the
current working directory, even after changing directories using things
like `os.chdir()` from Python.

- Fixed some incorrect finalizers (thanks to Greg Chapman for the report)
that may have caused some threading oddities.

- Tweaked support for out and ref parameters. If a method has a return
type of void and a single ref or out parameter, that parameter will be
returned as the result of the method. This matches the current behavior
of IronPython and makes it more likely that code can be moved between
Python for .NET and IP in the future.

- Refactored part of the assembly manager to remove a potential case of
thread-deadlock in multi-threaded applications.

- Added a `__str__` method to managed exceptions that returns the Message
attribute of the exception and the StackTrace (if available).

Page 2 of 4

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.