Skip to content

Commit a213b36

Browse files
authored
release: 0.24.1 (#5021)
1 parent d85a02d commit a213b36

File tree

25 files changed

+46
-37
lines changed

25 files changed

+46
-37
lines changed

CHANGELOG.md

+22-3
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,32 @@ To see unreleased changes, please see the [CHANGELOG on the main branch guide](h
1010

1111
<!-- towncrier release notes start -->
1212

13+
## [0.24.1] - 2025-03-31
14+
15+
### Added
16+
17+
- Add `abi3-py313` feature. [#4969](https://github.com/PyO3/pyo3/pull/4969)
18+
- Add `PyAnyMethods::getattr_opt`. [#4978](https://github.com/PyO3/pyo3/pull/4978)
19+
- Add `PyInt::new` constructor for all supported number types (i32, u32, i64, u64, isize, usize). [#4984](https://github.com/PyO3/pyo3/pull/4984)
20+
- Add `pyo3::sync::with_critical_section2`. [#4992](https://github.com/PyO3/pyo3/pull/4992)
21+
- Implement `PyCallArgs` for `Borrowed<'_, 'py, PyTuple>`, `&Bound<'py, PyTuple>`, and `&Py<PyTuple>`. [#5013](https://github.com/PyO3/pyo3/pull/5013)
22+
23+
### Fixed
24+
25+
- Fix `is_type_of` for native types not using same specialized check as `is_type_of_bound`. [#4981](https://github.com/PyO3/pyo3/pull/4981)
26+
- Fix `Probe` class naming issue with `#[pymethods]`. [#4988](https://github.com/PyO3/pyo3/pull/4988)
27+
- Fix compile failure with required `#[pyfunction]` arguments taking `Option<&str>` and `Option<&T>` (for `#[pyclass]` types). [#5002](https://github.com/PyO3/pyo3/pull/5002)
28+
- Fix `PyString::from_object` causing of bounds reads whith `encoding` and `errors` parameters which are not nul-terminated. [#5008](https://github.com/PyO3/pyo3/pull/5008)
29+
- Fix compile error when additional options follow after `crate` for `#[pyfunction]`. [#5015](https://github.com/PyO3/pyo3/pull/5015)
30+
1331
## [0.24.0] - 2025-03-09
1432

1533
### Packaging
1634

1735
- Add supported CPython/PyPy versions to cargo package metadata. [#4756](https://github.com/PyO3/pyo3/pull/4756)
1836
- Bump `target-lexicon` dependency to 0.13. [#4822](https://github.com/PyO3/pyo3/pull/4822)
1937
- Add optional `jiff` dependency to add conversions for `jiff` datetime types. [#4823](https://github.com/PyO3/pyo3/pull/4823)
38+
- Add optional `uuid` dependency to add conversions for `uuid::Uuid`. [#4864](https://github.com/PyO3/pyo3/pull/4864)
2039
- Bump minimum supported `inventory` version to 0.3.5. [#4954](https://github.com/PyO3/pyo3/pull/4954)
2140

2241
### Added
@@ -25,7 +44,6 @@ To see unreleased changes, please see the [CHANGELOG on the main branch guide](h
2544
- Add `PyCallArgs` trait for passing arguments into the Python calling protocol. This enabled using a faster calling convention for certain types, improving performance. [#4768](https://github.com/PyO3/pyo3/pull/4768)
2645
- Add `#[pyo3(default = ...']` option for `#[derive(FromPyObject)]` to set a default value for extracted fields of named structs. [#4829](https://github.com/PyO3/pyo3/pull/4829)
2746
- Add `#[pyo3(into_py_with = ...)]` option for `#[derive(IntoPyObject, IntoPyObjectRef)]`. [#4850](https://github.com/PyO3/pyo3/pull/4850)
28-
- Add uuid to/from python conversions. [#4864](https://github.com/PyO3/pyo3/pull/4864)
2947
- Add FFI definitions `PyThreadState_GetFrame` and `PyFrame_GetBack`. [#4866](https://github.com/PyO3/pyo3/pull/4866)
3048
- Optimize `last` for `BoundListIterator`, `BoundTupleIterator` and `BorrowedTupleIterator`. [#4878](https://github.com/PyO3/pyo3/pull/4878)
3149
- Optimize `Iterator::count()` for `PyDict`, `PyList`, `PyTuple` & `PySet`. [#4878](https://github.com/PyO3/pyo3/pull/4878)
@@ -60,6 +78,7 @@ To see unreleased changes, please see the [CHANGELOG on the main branch guide](h
6078

6179

6280
## [0.23.5] - 2025-02-22
81+
6382
### Packaging
6483

6584
- Add support for PyPy3.11 [#4760](https://github.com/PyO3/pyo3/pull/4760)
@@ -109,7 +128,6 @@ To see unreleased changes, please see the [CHANGELOG on the main branch guide](h
109128
- Fix unresolved symbol link failures on Windows when compiling for Python 3.13t using the `generate-import-lib` feature. [#4749](https://github.com/PyO3/pyo3/pull/4749)
110129
- Fix compile-time regression in PyO3 0.23.0 where changing `PYO3_CONFIG_FILE` would not reconfigure PyO3 for the new interpreter. [#4758](https://github.com/PyO3/pyo3/pull/4758)
111130

112-
113131
## [0.23.2] - 2024-11-25
114132

115133
### Added
@@ -2113,7 +2131,8 @@ Yanked
21132131

21142132
- Initial release
21152133

2116-
[Unreleased]: https://github.com/pyo3/pyo3/compare/v0.24.0...HEAD
2134+
[Unreleased]: https://github.com/pyo3/pyo3/compare/v0.24.1...HEAD
2135+
[0.24.1]: https://github.com/pyo3/pyo3/compare/v0.24.0...v0.24.1
21172136
[0.24.0]: https://github.com/pyo3/pyo3/compare/v0.23.5...v0.24.0
21182137
[0.23.5]: https://github.com/pyo3/pyo3/compare/v0.23.4...v0.23.5
21192138
[0.23.4]: https://github.com/pyo3/pyo3/compare/v0.23.3...v0.23.4

Cargo.toml

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "pyo3"
3-
version = "0.24.0"
3+
version = "0.24.1"
44
description = "Bindings to Python interpreter"
55
authors = ["PyO3 Project and Contributors <https://github.com/PyO3>"]
66
readme = "README.md"
@@ -21,10 +21,10 @@ memoffset = "0.9"
2121
once_cell = "1.13"
2222

2323
# ffi bindings to the python interpreter, split into a separate crate so they can be used independently
24-
pyo3-ffi = { path = "pyo3-ffi", version = "=0.24.0" }
24+
pyo3-ffi = { path = "pyo3-ffi", version = "=0.24.1" }
2525

2626
# support crates for macros feature
27-
pyo3-macros = { path = "pyo3-macros", version = "=0.24.0", optional = true }
27+
pyo3-macros = { path = "pyo3-macros", version = "=0.24.1", optional = true }
2828
indoc = { version = "2.0.1", optional = true }
2929
unindent = { version = "0.2.1", optional = true }
3030

@@ -68,7 +68,7 @@ static_assertions = "1.1.0"
6868
uuid = { version = "1.10.0", features = ["v4"] }
6969

7070
[build-dependencies]
71-
pyo3-build-config = { path = "pyo3-build-config", version = "=0.24.0", features = ["resolve-config"] }
71+
pyo3-build-config = { path = "pyo3-build-config", version = "=0.24.1", features = ["resolve-config"] }
7272

7373
[features]
7474
default = ["macros"]

README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ name = "string_sum"
7171
crate-type = ["cdylib"]
7272

7373
[dependencies]
74-
pyo3 = { version = "0.24.0", features = ["extension-module"] }
74+
pyo3 = { version = "0.24.1", features = ["extension-module"] }
7575
```
7676

7777
**`src/lib.rs`**
@@ -140,7 +140,7 @@ Start a new project with `cargo new` and add `pyo3` to the `Cargo.toml` like th
140140

141141
```toml
142142
[dependencies.pyo3]
143-
version = "0.24.0"
143+
version = "0.24.1"
144144
features = ["auto-initialize"]
145145
```
146146

Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
variable::set("PYO3_VERSION", "0.24.0");
1+
variable::set("PYO3_VERSION", "0.24.1");
22
file::rename(".template/Cargo.toml", "Cargo.toml");
33
file::rename(".template/pyproject.toml", "pyproject.toml");
44
file::delete(".template");
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
variable::set("PYO3_VERSION", "0.24.0");
1+
variable::set("PYO3_VERSION", "0.24.1");
22
file::rename(".template/Cargo.toml", "Cargo.toml");
33
file::rename(".template/pyproject.toml", "pyproject.toml");
44
file::delete(".template");
+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
variable::set("PYO3_VERSION", "0.24.0");
1+
variable::set("PYO3_VERSION", "0.24.1");
22
file::rename(".template/Cargo.toml", "Cargo.toml");
33
file::rename(".template/plugin_api/Cargo.toml", "plugin_api/Cargo.toml");
44
file::delete(".template");
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
variable::set("PYO3_VERSION", "0.24.0");
1+
variable::set("PYO3_VERSION", "0.24.1");
22
file::rename(".template/Cargo.toml", "Cargo.toml");
33
file::rename(".template/setup.cfg", "setup.cfg");
44
file::delete(".template");
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
variable::set("PYO3_VERSION", "0.24.0");
1+
variable::set("PYO3_VERSION", "0.24.1");
22
file::rename(".template/Cargo.toml", "Cargo.toml");
33
file::rename(".template/pyproject.toml", "pyproject.toml");
44
file::delete(".template");

newsfragments/4969.added.md

-1
This file was deleted.

newsfragments/4978.added.md

-1
This file was deleted.

newsfragments/4981.fixed.md

-1
This file was deleted.

newsfragments/4984.added.md

-1
This file was deleted.

newsfragments/4988.fixed.md

-1
This file was deleted.

newsfragments/4992.added.md

-1
This file was deleted.

newsfragments/5002.fixed.md

-1
This file was deleted.

newsfragments/5008.fixed.md

-1
This file was deleted.

newsfragments/5013.added.md

-1
This file was deleted.

newsfragments/5015.fixed.md

-1
This file was deleted.

pyo3-build-config/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "pyo3-build-config"
3-
version = "0.24.0"
3+
version = "0.24.1"
44
description = "Build configuration for the PyO3 ecosystem"
55
authors = ["PyO3 Project and Contributors <https://github.com/PyO3>"]
66
keywords = ["pyo3", "python", "cpython", "ffi"]

pyo3-ffi/Cargo.toml

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "pyo3-ffi"
3-
version = "0.24.0"
3+
version = "0.24.1"
44
description = "Python-API bindings for the PyO3 ecosystem"
55
authors = ["PyO3 Project and Contributors <https://github.com/PyO3>"]
66
keywords = ["pyo3", "python", "cpython", "ffi"]
@@ -43,7 +43,7 @@ generate-import-lib = ["pyo3-build-config/python3-dll-a"]
4343
paste = "1"
4444

4545
[build-dependencies]
46-
pyo3-build-config = { path = "../pyo3-build-config", version = "=0.24.0", features = ["resolve-config"] }
46+
pyo3-build-config = { path = "../pyo3-build-config", version = "=0.24.1", features = ["resolve-config"] }
4747

4848
[lints]
4949
workspace = true

pyo3-ffi/README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,13 @@ name = "string_sum"
4141
crate-type = ["cdylib"]
4242

4343
[dependencies.pyo3-ffi]
44-
version = "0.24.0"
44+
version = "0.24.1"
4545
features = ["extension-module"]
4646

4747
[build-dependencies]
4848
# This is only necessary if you need to configure your build based on
4949
# the Python version or the compile-time configuration for the interpreter.
50-
pyo3_build_config = "0.24.0"
50+
pyo3_build_config = "0.24.1"
5151
```
5252

5353
If you need to use conditional compilation based on Python version or how

pyo3-macros-backend/Cargo.toml

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "pyo3-macros-backend"
3-
version = "0.24.0"
3+
version = "0.24.1"
44
description = "Code generation for PyO3 package"
55
authors = ["PyO3 Project and Contributors <https://github.com/PyO3>"]
66
keywords = ["pyo3", "python", "cpython", "ffi"]
@@ -17,7 +17,7 @@ rust-version = "1.63"
1717
[dependencies]
1818
heck = "0.5"
1919
proc-macro2 = { version = "1.0.60", default-features = false }
20-
pyo3-build-config = { path = "../pyo3-build-config", version = "=0.24.0", features = ["resolve-config"] }
20+
pyo3-build-config = { path = "../pyo3-build-config", version = "=0.24.1", features = ["resolve-config"] }
2121
quote = { version = "1", default-features = false }
2222

2323
[dependencies.syn]
@@ -26,7 +26,7 @@ default-features = false
2626
features = ["derive", "parsing", "printing", "clone-impls", "full", "extra-traits"]
2727

2828
[build-dependencies]
29-
pyo3-build-config = { path = "../pyo3-build-config", version = "=0.24.0" }
29+
pyo3-build-config = { path = "../pyo3-build-config", version = "=0.24.1" }
3030

3131
[lints]
3232
workspace = true

pyo3-macros/Cargo.toml

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "pyo3-macros"
3-
version = "0.24.0"
3+
version = "0.24.1"
44
description = "Proc macros for PyO3 package"
55
authors = ["PyO3 Project and Contributors <https://github.com/PyO3>"]
66
keywords = ["pyo3", "python", "cpython", "ffi"]
@@ -22,7 +22,7 @@ experimental-async = ["pyo3-macros-backend/experimental-async"]
2222
proc-macro2 = { version = "1.0.60", default-features = false }
2323
quote = "1"
2424
syn = { version = "2", features = ["full", "extra-traits"] }
25-
pyo3-macros-backend = { path = "../pyo3-macros-backend", version = "=0.24.0" }
25+
pyo3-macros-backend = { path = "../pyo3-macros-backend", version = "=0.24.1" }
2626

2727
[lints]
2828
workspace = true

pyproject.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
[tool.towncrier]
55
filename = "CHANGELOG.md"
6-
version = "0.24.0"
6+
version = "0.24.1"
77
start_string = "<!-- towncrier release notes start -->\n"
88
template = ".towncrier.template.md"
99
title_format = "## [{version}] - {project_date}"

tests/ui/reject_generics.stderr

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
error: #[pyclass] cannot have generic parameters. For an explanation, see https://pyo3.rs/v0.24.0/class.html#no-generic-parameters
1+
error: #[pyclass] cannot have generic parameters. For an explanation, see https://pyo3.rs/v0.24.1/class.html#no-generic-parameters
22
--> tests/ui/reject_generics.rs:4:25
33
|
44
4 | struct ClassWithGenerics<A> {
55
| ^
66

7-
error: #[pyclass] cannot have lifetime parameters. For an explanation, see https://pyo3.rs/v0.24.0/class.html#no-lifetime-parameters
7+
error: #[pyclass] cannot have lifetime parameters. For an explanation, see https://pyo3.rs/v0.24.1/class.html#no-lifetime-parameters
88
--> tests/ui/reject_generics.rs:9:27
99
|
1010
9 | struct ClassWithLifetimes<'a> {

0 commit comments

Comments
 (0)