Added new PyCode and PyFrame objects.
They currently do not expose any APIs, but are significantly easier to work with than raw pointers :-)
This commit is contained in:
parent
4f9d3d7306
commit
f6a24972e9
|
@ -14,6 +14,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||
- Added the internal `IntoPyResult` trait to give better error messages when function return types do not implement `IntoPy`. [#2326](https://github.com/PyO3/pyo3/pull/2326)
|
||||
- Add `PyDictKeys`, `PyDictValues` and `PyDictItems` Rust types to represent `dict_keys`, `dict_values` and `dict_items` types. [#2358](https://github.com/PyO3/pyo3/pull/2358)
|
||||
- Add macro `append_to_inittab`. [#2377](https://github.com/PyO3/pyo3/pull/2377)
|
||||
- Added `PyCode` and `PyFrame` high level objects. [#2408](https://github.com/PyO3/pyo3/pull/2408)
|
||||
|
||||
### Changed
|
||||
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
// Copyright (c) 2022-present PyO3 Project and Contributors
|
||||
|
||||
use crate::ffi;
|
||||
use crate::PyAny;
|
||||
|
||||
/// Represents a Python code object.
|
||||
#[repr(transparent)]
|
||||
pub struct PyCode(PyAny);
|
||||
|
||||
pyobject_native_type_core!(
|
||||
PyCode,
|
||||
ffi::PyCode_Type,
|
||||
#checkfunction=ffi::PyCode_Check
|
||||
);
|
|
@ -0,0 +1,14 @@
|
|||
// Copyright (c) 2022-present PyO3 Project and Contributors
|
||||
|
||||
use crate::ffi;
|
||||
use crate::PyAny;
|
||||
|
||||
/// Represents a Python frame.
|
||||
#[repr(transparent)]
|
||||
pub struct PyFrame(PyAny);
|
||||
|
||||
pyobject_native_type_core!(
|
||||
PyFrame,
|
||||
ffi::PyFrame_Type,
|
||||
#checkfunction=ffi::PyFrame_Check
|
||||
);
|
|
@ -7,6 +7,8 @@ pub use self::boolobject::PyBool;
|
|||
pub use self::bytearray::PyByteArray;
|
||||
pub use self::bytes::PyBytes;
|
||||
pub use self::capsule::PyCapsule;
|
||||
#[cfg(not(Py_LIMITED_API))]
|
||||
pub use self::code::PyCode;
|
||||
pub use self::complex::PyComplex;
|
||||
#[cfg(not(Py_LIMITED_API))]
|
||||
pub use self::datetime::{
|
||||
|
@ -15,6 +17,8 @@ pub use self::datetime::{
|
|||
};
|
||||
pub use self::dict::{IntoPyDict, PyDict};
|
||||
pub use self::floatob::PyFloat;
|
||||
#[cfg(all(not(Py_LIMITED_API), not(PyPy)))]
|
||||
pub use self::frame::PyFrame;
|
||||
pub use self::frozenset::PyFrozenSet;
|
||||
pub use self::function::{PyCFunction, PyFunction};
|
||||
pub use self::iterator::PyIterator;
|
||||
|
@ -257,11 +261,15 @@ mod boolobject;
|
|||
mod bytearray;
|
||||
mod bytes;
|
||||
mod capsule;
|
||||
#[cfg(not(Py_LIMITED_API))]
|
||||
mod code;
|
||||
mod complex;
|
||||
#[cfg(not(Py_LIMITED_API))]
|
||||
mod datetime;
|
||||
mod dict;
|
||||
mod floatob;
|
||||
#[cfg(all(not(Py_LIMITED_API), not(PyPy)))]
|
||||
mod frame;
|
||||
mod frozenset;
|
||||
mod function;
|
||||
mod iterator;
|
||||
|
|
Loading…
Reference in New Issue