Skip to content

Upgrade PyO3 (0.25.x -> 0.27.x) #36

@Qqwy

Description

@Qqwy

Opsqueue's Python library uses PyO3 to generate FFI bindings.

The PyO3 project is evolving fast, with a lot of fixes and improvements happening in the past year.
However, there are some changes to the API / Rust macros, which means that some of the PyO3 annotations will need to be rewritten to be compatible with the newer version.

An important reason to perform this upgrade soon, is so we can support Python 3.14.x

EDIT: In PR #103 we have bumped PyO3 to v0.25.x which already includes support for Python 3.14 while not having any API changes yet. While that means this issue is less urgent, it would still be prudent to upgrade to 0.27.x soon because there are a bunch of bugfixes and stability improvements that we'd like to get.

The main difference in the new API, is that PyO3 does a lot less 'automatic locking of the GIL' by default. This means that a bunch of places in which we used .allow_threads(...) before will need to change. It also means that certain Python types are no longer + Send by default.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions