Releases: PyO3/pyo3
Releases · PyO3/pyo3
PyO3 v0.5.1
yanked
PyO3 v0.5.0
Added
#[pyclass]
objects can now be returned from rust functionsPyComplex
by kngwyu in #226PyDict::from_sequence()
, equivalent todict([(key, val), ...])
- Bindings for the
datetime
standard library types:PyDate
,PyTime
,PyDateTime
,PyTzInfo
,PyDelta
with associatedffi
types, by pganssle #200. PyString
,PyUnicode
, andPyBytes
now have anas_bytes()
method that returns&[u8]
.PyObjectProtocol::get_type_ptr()
by ijl in #242
Removed
- Removed most entries from the prelude. The new prelude is small and clear.
- Slowly removing specialization uses
PyString
,PyUnicode
, andPyBytes
no longer have adata()
method
(replaced byas_bytes()
) andPyStringData
has been removed.
Changed
- Removes the types from the root module and the prelude. They now live in
pyo3::types
instead. - All exceptions are consturcted with
py_err
instead ofnew
, as they returnPyErr
and notSelf
. as_mut
and friends take and&mut self
instead of&self
ObjectProtocol::call
now takes anOption<&PyDict>
for the kwargs instead of anIntoPyDictPointer
.IntoPyDictPointer
was replace byIntoPyDict
which doesn't convertPyDict
itself anymore and returns aPyDict
instead of*mut PyObject
.PyTuple::new
now takes anIntoIterator
instead of a slice- Updated to syn 0.15
- Splitted
PyTypeObject
intoPyTypeObject
without the create method andPyTypeCreate
with requiresPyObjectAlloc<Self> + PyTypeInfo + Sized
. - Ran
cargo edition --fix
which prefixed path withcrate::
for rust 2018 - Renamed
async
topyasync
as async will be a keyword in the 2018 edition. - Starting to use
NonNull<*mut PyObject>
for Py and PyObject by ijl #260
Fixed
- Added an explanation that the GIL can temporarily be released even while holding a GILGuard.
- Lots of clippy errors
- Fix segfault on calling an unknown method on a PyObject
- Work around a bug in the rust compiler by kngwyu #252
- Fixed a segfault with subclassing pyo3 create classes and using
__class__
by kngwyu #263
Removed
- The pyobject_extract macro
PyO3 v0.5.0-alpha.2
v0.5.0-alpha.2
PyO3 v0.4.1
Fixed
- Fixed compilation on nightly since
use_extern_macros
was stabilized
Changed
- PyTryFrom's error is always to
PyDowncastError
Removed
- The pyobject_downcast macro
PyO3 0.4.0
Removed
- Conversions from tuples to PyDict due to rust-lang/rust#52050
Changed
- Merged both examples into one
- Rustfmt all the things ✔️
- Switched to Keep a Changelog
PyO3 0.3.2
Changes
- Replaced
concat_idents
with mashup
PyO3 0.3.1
Changes
- Fixed scoping bug in pyobject_native_type that would break rust-numpy
PyO3 0.3.0
Changes
- Upgraded to syn 0.14 which means much better error messages 🎉
- 128 bit integer support by kngwyu (#137)
proc_macro
has been stabilized on nightly (rust-lang/rust#52081). This means that we can remove theproc_macro
feature, but now we need theuse_extern_macros
from the 2018 edition instead.- All proc macro are now prefixed with
py
and live in the prelude. This means you can use#[pyclass]
,#[pymethods]
,#[pyproto]
,#[pyfunction]
and#[pymodinit]
directly, at least after ause pyo3::prelude::*
. They were also moved into a module calledproc_macro
. You shouldn't use#[pyo3::proc_macro::pyclass]
or other longer paths in attributes becauseproc_macro_path_invoc
isn't going to be stabilized soon. - Renamed the
base
option in thepyclass
macro toextends
. #[pymodinit]
uses the function name as module name, unless the name is overrriden with#[pymodinit(name)]
- The guide is now properly versioned.
- A few internal macros became part of the public api (#155, #186)
- Always clone in getters. This allows using the get-annotation on all Clone-Types
PyO3 0.2.7
0.2.7 backports the compilation fix with current nightlies, so pyo3 stays usable until 0.3 is released.
PyO3 0.2.6
Changes
- Fix compatibility with TryFrom trait