From 097216702f31ba35e9c2d34beae92d0b494c94b4 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Tue, 24 Aug 2021 09:07:10 +0200 Subject: [PATCH] tuple: add back old slice() for deprecation cycle --- CHANGELOG.md | 2 +- src/types/tuple.rs | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f10c5847..ccc5a2ca 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,7 +23,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. - `PySequence`'s `in_place_repeat` and `in_place_concat` now return the result instead of `()`, which is needed in case of immutable sequences. [#1803](https://github.com/PyO3/pyo3/pull/1803) - Deprecate `PyTuple::split_from`. [#1804](https://github.com/PyO3/pyo3/pull/1804) -- `PyTuple`'s `slice` method is now called `get_slice` for consistency. [#](https://github.com/PyO3/pyo3/pull/) +- Deprecate `PyTuple::slice`, new method `get_slice` added with proper index types. [#1828](https://github.com/PyO3/pyo3/pull/1828) ## [0.14.3] - 2021-08-22 diff --git a/src/types/tuple.rs b/src/types/tuple.rs index 8b365a77..d0cd6a89 100644 --- a/src/types/tuple.rs +++ b/src/types/tuple.rs @@ -72,7 +72,22 @@ impl PyTuple { } } - #[deprecated(since = "0.15.0", note = "use tuple.get_slice(low, tuple.len()) instead")] + #[deprecated(since = "0.15.0", note = "use self.get_slice instead")] + /// Takes the slice `self[low:high]` and returns it as a new tuple. + /// + /// Indices must be nonnegative, and out-of-range indices are clipped to + /// `self.len()`. + pub fn slice(&self, low: isize, high: isize) -> &PyTuple { + unsafe { + self.py() + .from_owned_ptr(ffi::PyTuple_GetSlice(self.as_ptr(), low, high)) + } + } + + #[deprecated( + since = "0.15.0", + note = "use tuple.get_slice(low, tuple.len()) instead" + )] /// Takes a slice of the tuple from `low` to the end and returns it as a new tuple. pub fn split_from(&self, low: usize) -> &PyTuple { unsafe {