Skip to content

Releases: PyO3/pyo3

PyO3 v0.5.2

25 Nov 23:15
Compare
Choose a tag to compare

Fixed

  • Fix undeterministic segfaults when creating many objects by kngwyu in #281

PyO3 v0.5.1

24 Nov 12:15
Compare
Choose a tag to compare

yanked

PyO3 v0.5.0

11 Nov 11:28
Compare
Choose a tag to compare

Added

  • #[pyclass] objects can now be returned from rust functions
  • PyComplex by kngwyu in #226
  • PyDict::from_sequence(), equivalent to dict([(key, val), ...])
  • Bindings for the datetime standard library types: PyDate, PyTime, PyDateTime, PyTzInfo, PyDelta with associated ffi types, by pganssle #200.
  • PyString, PyUnicode, and PyBytes now have an as_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, and PyBytes no longer have a data() method
    (replaced by as_bytes()) and PyStringData 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 of new, as they return PyErr and not Self.
  • as_mut and friends take and &mut self instead of &self
  • ObjectProtocol::call now takes an Option<&PyDict> for the kwargs instead of an IntoPyDictPointer.
  • IntoPyDictPointer was replace by IntoPyDict which doesn't convert PyDict itself anymore and returns a PyDict instead of *mut PyObject.
  • PyTuple::new now takes an IntoIterator instead of a slice
  • Updated to syn 0.15
  • Splitted PyTypeObject into PyTypeObject without the create method and PyTypeCreate with requires PyObjectAlloc<Self> + PyTypeInfo + Sized.
  • Ran cargo edition --fix which prefixed path with crate:: for rust 2018
  • Renamed async to pyasync 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

29 Oct 16:45
Compare
Choose a tag to compare
PyO3 v0.5.0-alpha.2 Pre-release
Pre-release
v0.5.0-alpha.2

PyO3 v0.4.1

20 Aug 12:37
Compare
Choose a tag to compare

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

30 Jul 21:16
Compare
Choose a tag to compare

Removed

Changed

  • Merged both examples into one
  • Rustfmt all the things ✔️
  • Switched to Keep a Changelog

PyO3 0.3.2

22 Jul 19:39
Compare
Choose a tag to compare

Changes

  • Replaced concat_idents with mashup

PyO3 0.3.1

18 Jul 12:08
Compare
Choose a tag to compare

Changes

  • Fixed scoping bug in pyobject_native_type that would break rust-numpy

PyO3 0.3.0

18 Jul 11:29
Compare
Choose a tag to compare

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 the proc_macro feature, but now we need the use_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 a use pyo3::prelude::*. They were also moved into a module called proc_macro. You shouldn't use #[pyo3::proc_macro::pyclass] or other longer paths in attributes because proc_macro_path_invoc isn't going to be stabilized soon.
  • Renamed the base option in the pyclass macro to extends.
  • #[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

17 May 23:49
Compare
Choose a tag to compare

0.2.7 backports the compilation fix with current nightlies, so pyo3 stays usable until 0.3 is released.