pub trait FromPyObject<'py>: Sized {
// Required method
fn extract_bound(ob: &Bound<'py, PyAny>) -> PyResult<Self>;
// Provided methods
fn extract(ob: &'py PyAny) -> PyResult<Self> { ... }
fn type_input() -> TypeInfo { ... }
}
Expand description
Extract a type from a Python object.
Normal usage is through the extract
methods on Bound
and Py
, which forward to this trait.
§Examples
use pyo3::prelude::*;
use pyo3::types::PyString;
Python::with_gil(|py| {
// Calling `.extract()` on a `Bound` smart pointer
let obj: Bound<'_, PyString> = PyString::new_bound(py, "blah");
let s: String = obj.extract()?;
// Calling `.extract(py)` on a `Py` smart pointer
let obj: Py<PyString> = obj.unbind();
let s: String = obj.extract(py)?;
})
During the migration of PyO3 from the “GIL Refs” API to the Bound<T>
smart pointer, this trait
has two methods extract
and extract_bound
which are defaulted to call each other. To avoid
infinite recursion, implementors must implement at least one of these methods. The recommendation
is to implement extract_bound
and leave extract
as the default implementation.
Required Methods§
Sourcefn extract_bound(ob: &Bound<'py, PyAny>) -> PyResult<Self>
fn extract_bound(ob: &Bound<'py, PyAny>) -> PyResult<Self>
Extracts Self
from the bound smart pointer obj
.
Implementors are encouraged to implement this method and leave extract
defaulted, as
this will be most compatible with PyO3’s future API.
Provided Methods§
Sourcefn extract(ob: &'py PyAny) -> PyResult<Self>
Available on crate feature gil-refs
only.
fn extract(ob: &'py PyAny) -> PyResult<Self>
gil-refs
only.Extracts Self
from the source GIL Ref obj
.
Implementors are encouraged to implement extract_bound
and leave this method as the
default implementation, which will forward calls to extract_bound
.
Sourcefn type_input() -> TypeInfo
Available on crate feature experimental-inspect
only.
fn type_input() -> TypeInfo
experimental-inspect
only.Extracts the type hint information for this type when it appears as an argument.
For example, Vec<u32>
would return Sequence[int]
.
The default implementation returns Any
, which is correct for any type.
For most types, the return value for this method will be identical to that of IntoPy::type_output
.
It may be different for some types, such as Dict
, to allow duck-typing: functions return Dict
but take Mapping
as argument.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.
Implementations on Foreign Types§
Source§impl FromPyObject<'_> for IpAddr
impl FromPyObject<'_> for IpAddr
Source§impl FromPyObject<'_> for Tz
Available on Py_3_9
and crate feature chrono-tz
only.
impl FromPyObject<'_> for Tz
Py_3_9
and crate feature chrono-tz
only.Source§impl FromPyObject<'_> for bool
impl FromPyObject<'_> for bool
Converts a Python bool
to a Rust bool
.
Fails with TypeError
if the input is not a Python bool
.
fn extract_bound(obj: &Bound<'_, PyAny>) -> PyResult<Self>
Source§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
experimental-inspect
only.Source§impl FromPyObject<'_> for char
impl FromPyObject<'_> for char
fn extract_bound(obj: &Bound<'_, PyAny>) -> PyResult<Self>
Source§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
experimental-inspect
only.Source§impl FromPyObject<'_> for i128
Available on non-Py_LIMITED_API
and non-GraalPy
only.
impl FromPyObject<'_> for i128
Py_LIMITED_API
and non-GraalPy
only.Source§impl FromPyObject<'_> for u64
impl FromPyObject<'_> for u64
Source§impl FromPyObject<'_> for u128
Available on non-Py_LIMITED_API
and non-GraalPy
only.
impl FromPyObject<'_> for u128
Py_LIMITED_API
and non-GraalPy
only.Source§impl FromPyObject<'_> for usize
impl FromPyObject<'_> for usize
fn extract_bound(obj: &Bound<'_, PyAny>) -> PyResult<Self>
Source§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
experimental-inspect
only.Source§impl FromPyObject<'_> for String
impl FromPyObject<'_> for String
Allows extracting strings from Python objects.
Accepts Python str
and unicode
objects.
fn extract_bound(obj: &Bound<'_, PyAny>) -> PyResult<Self>
Source§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
experimental-inspect
only.Source§impl FromPyObject<'_> for Duration
impl FromPyObject<'_> for Duration
Source§impl FromPyObject<'_> for OsString
impl FromPyObject<'_> for OsString
Source§impl FromPyObject<'_> for PathBuf
impl FromPyObject<'_> for PathBuf
Source§impl FromPyObject<'_> for SystemTime
impl FromPyObject<'_> for SystemTime
Source§impl FromPyObject<'_> for NaiveDate
Available on crate feature chrono
only.
impl FromPyObject<'_> for NaiveDate
chrono
only.Source§impl FromPyObject<'_> for NaiveDateTime
Available on crate feature chrono
only.
impl FromPyObject<'_> for NaiveDateTime
chrono
only.fn extract_bound(dt: &Bound<'_, PyAny>) -> PyResult<NaiveDateTime>
Source§impl FromPyObject<'_> for NaiveTime
Available on crate feature chrono
only.
impl FromPyObject<'_> for NaiveTime
chrono
only.Source§impl FromPyObject<'_> for FixedOffset
Available on crate feature chrono
only.
impl FromPyObject<'_> for FixedOffset
chrono
only.Source§fn extract_bound(ob: &Bound<'_, PyAny>) -> PyResult<FixedOffset>
fn extract_bound(ob: &Bound<'_, PyAny>) -> PyResult<FixedOffset>
Convert python tzinfo to rust FixedOffset
.
Note that the conversion will result in precision lost in microseconds as chrono offset does not supports microseconds.
Source§impl FromPyObject<'_> for Utc
Available on crate feature chrono
only.
impl FromPyObject<'_> for Utc
chrono
only.Source§impl FromPyObject<'_> for Complex<f32>
Available on crate feature num-complex
only.
impl FromPyObject<'_> for Complex<f32>
num-complex
only.Source§impl FromPyObject<'_> for Complex<f64>
Available on crate feature num-complex
only.
impl FromPyObject<'_> for Complex<f64>
num-complex
only.Source§impl FromPyObject<'_> for Decimal
Available on crate feature rust_decimal
only.
impl FromPyObject<'_> for Decimal
rust_decimal
only.Source§impl FromPyObject<'_> for NonZeroI8
impl FromPyObject<'_> for NonZeroI8
fn extract_bound(obj: &Bound<'_, PyAny>) -> PyResult<Self>
Source§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
experimental-inspect
only.Source§impl FromPyObject<'_> for NonZeroI16
impl FromPyObject<'_> for NonZeroI16
fn extract_bound(obj: &Bound<'_, PyAny>) -> PyResult<Self>
Source§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
experimental-inspect
only.Source§impl FromPyObject<'_> for NonZeroI32
impl FromPyObject<'_> for NonZeroI32
fn extract_bound(obj: &Bound<'_, PyAny>) -> PyResult<Self>
Source§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
experimental-inspect
only.Source§impl FromPyObject<'_> for NonZeroI64
impl FromPyObject<'_> for NonZeroI64
fn extract_bound(obj: &Bound<'_, PyAny>) -> PyResult<Self>
Source§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
experimental-inspect
only.Source§impl FromPyObject<'_> for NonZeroI128
impl FromPyObject<'_> for NonZeroI128
fn extract_bound(obj: &Bound<'_, PyAny>) -> PyResult<Self>
Source§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
experimental-inspect
only.Source§impl FromPyObject<'_> for NonZeroIsize
impl FromPyObject<'_> for NonZeroIsize
fn extract_bound(obj: &Bound<'_, PyAny>) -> PyResult<Self>
Source§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
experimental-inspect
only.Source§impl FromPyObject<'_> for NonZeroU8
impl FromPyObject<'_> for NonZeroU8
fn extract_bound(obj: &Bound<'_, PyAny>) -> PyResult<Self>
Source§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
experimental-inspect
only.Source§impl FromPyObject<'_> for NonZeroU16
impl FromPyObject<'_> for NonZeroU16
fn extract_bound(obj: &Bound<'_, PyAny>) -> PyResult<Self>
Source§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
experimental-inspect
only.Source§impl FromPyObject<'_> for NonZeroU32
impl FromPyObject<'_> for NonZeroU32
fn extract_bound(obj: &Bound<'_, PyAny>) -> PyResult<Self>
Source§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
experimental-inspect
only.Source§impl FromPyObject<'_> for NonZeroU64
impl FromPyObject<'_> for NonZeroU64
fn extract_bound(obj: &Bound<'_, PyAny>) -> PyResult<Self>
Source§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
experimental-inspect
only.Source§impl FromPyObject<'_> for NonZeroU128
impl FromPyObject<'_> for NonZeroU128
fn extract_bound(obj: &Bound<'_, PyAny>) -> PyResult<Self>
Source§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
experimental-inspect
only.Source§impl FromPyObject<'_> for NonZeroUsize
impl FromPyObject<'_> for NonZeroUsize
fn extract_bound(obj: &Bound<'_, PyAny>) -> PyResult<Self>
Source§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
experimental-inspect
only.Source§impl FromPyObject<'_> for Duration
Available on crate feature chrono
only.
impl FromPyObject<'_> for Duration
chrono
only.Source§impl<'py> FromPyObject<'py> for &'py str
Available on crate feature gil-refs
only.
impl<'py> FromPyObject<'py> for &'py str
gil-refs
only.Allows extracting strings from Python objects.
Accepts Python str
objects.
fn extract_bound(ob: &Bound<'py, PyAny>) -> PyResult<Self>
Source§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
experimental-inspect
only.Source§impl<'py> FromPyObject<'py> for &'py [u8]
Available on crate feature gil-refs
only.
impl<'py> FromPyObject<'py> for &'py [u8]
gil-refs
only.fn extract_bound(obj: &Bound<'py, PyAny>) -> PyResult<Self>
Source§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
experimental-inspect
only.Source§impl<'py> FromPyObject<'py> for Cow<'py, str>
Available on crate feature gil-refs
only.
impl<'py> FromPyObject<'py> for Cow<'py, str>
gil-refs
only.fn extract_bound(ob: &Bound<'py, PyAny>) -> PyResult<Self>
Source§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
experimental-inspect
only.Source§impl<'py> FromPyObject<'py> for Cow<'py, [u8]>
Available on crate feature gil-refs
only.
impl<'py> FromPyObject<'py> for Cow<'py, [u8]>
gil-refs
only.Special-purpose trait impl to efficiently handle both bytes
and bytearray
If the source object is a bytes
object, the Cow
will be borrowed and
pointing into the source object, and no copying or heap allocations will happen.
If it is a bytearray
, its contents will be copied to an owned Cow
.
Source§impl<'py> FromPyObject<'py> for f32
impl<'py> FromPyObject<'py> for f32
fn extract_bound(obj: &Bound<'py, PyAny>) -> PyResult<Self>
Source§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
experimental-inspect
only.Source§impl<'py> FromPyObject<'py> for f64
impl<'py> FromPyObject<'py> for f64
fn extract_bound(obj: &Bound<'py, PyAny>) -> PyResult<Self>
Source§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
experimental-inspect
only.Source§impl<'py> FromPyObject<'py> for i8
impl<'py> FromPyObject<'py> for i8
fn extract_bound(obj: &Bound<'_, PyAny>) -> PyResult<Self>
Source§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
experimental-inspect
only.Source§impl<'py> FromPyObject<'py> for i16
impl<'py> FromPyObject<'py> for i16
fn extract_bound(obj: &Bound<'_, PyAny>) -> PyResult<Self>
Source§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
experimental-inspect
only.Source§impl<'py> FromPyObject<'py> for i32
impl<'py> FromPyObject<'py> for i32
fn extract_bound(obj: &Bound<'_, PyAny>) -> PyResult<Self>
Source§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
experimental-inspect
only.Source§impl<'py> FromPyObject<'py> for i64
impl<'py> FromPyObject<'py> for i64
fn extract_bound(obj: &Bound<'_, PyAny>) -> PyResult<Self>
Source§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
experimental-inspect
only.Source§impl<'py> FromPyObject<'py> for isize
impl<'py> FromPyObject<'py> for isize
fn extract_bound(obj: &Bound<'_, PyAny>) -> PyResult<Self>
Source§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
experimental-inspect
only.Source§impl<'py> FromPyObject<'py> for u8
impl<'py> FromPyObject<'py> for u8
fn extract_bound(obj: &Bound<'_, PyAny>) -> PyResult<Self>
Source§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
experimental-inspect
only.Source§impl<'py> FromPyObject<'py> for u16
impl<'py> FromPyObject<'py> for u16
fn extract_bound(obj: &Bound<'_, PyAny>) -> PyResult<Self>
Source§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
experimental-inspect
only.Source§impl<'py> FromPyObject<'py> for u32
impl<'py> FromPyObject<'py> for u32
fn extract_bound(obj: &Bound<'_, PyAny>) -> PyResult<Self>
Source§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
experimental-inspect
only.Source§impl<'py> FromPyObject<'py> for BigInt
Available on crate feature num-bigint
only.
impl<'py> FromPyObject<'py> for BigInt
num-bigint
only.Source§impl<'py> FromPyObject<'py> for BigUint
Available on crate feature num-bigint
only.
impl<'py> FromPyObject<'py> for BigUint
num-bigint
only.Source§impl<'py> FromPyObject<'py> for Ratio<i8>
Available on crate feature num-rational
only.
impl<'py> FromPyObject<'py> for Ratio<i8>
num-rational
only.Source§impl<'py> FromPyObject<'py> for Ratio<i16>
Available on crate feature num-rational
only.
impl<'py> FromPyObject<'py> for Ratio<i16>
num-rational
only.Source§impl<'py> FromPyObject<'py> for Ratio<i32>
Available on crate feature num-rational
only.
impl<'py> FromPyObject<'py> for Ratio<i32>
num-rational
only.Source§impl<'py> FromPyObject<'py> for Ratio<i64>
Available on crate feature num-rational
only.
impl<'py> FromPyObject<'py> for Ratio<i64>
num-rational
only.Source§impl<'py> FromPyObject<'py> for Ratio<isize>
Available on crate feature num-rational
only.
impl<'py> FromPyObject<'py> for Ratio<isize>
num-rational
only.Source§impl<'py> FromPyObject<'py> for Ratio<BigInt>
Available on crate feature num-rational
only.
impl<'py> FromPyObject<'py> for Ratio<BigInt>
num-rational
only.Source§impl<'py, A> FromPyObject<'py> for SmallVec<A>
Available on crate feature smallvec
only.
impl<'py, A> FromPyObject<'py> for SmallVec<A>
smallvec
only.fn extract_bound(obj: &Bound<'py, PyAny>) -> PyResult<Self>
Source§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
experimental-inspect
only.Source§impl<'py, K> FromPyObject<'py> for BTreeSet<K>where
K: FromPyObject<'py> + Ord,
impl<'py, K> FromPyObject<'py> for BTreeSet<K>where
K: FromPyObject<'py> + Ord,
fn extract_bound(ob: &Bound<'py, PyAny>) -> PyResult<Self>
Source§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
experimental-inspect
only.Source§impl<'py, K, S> FromPyObject<'py> for HashSet<K, S>
impl<'py, K, S> FromPyObject<'py> for HashSet<K, S>
fn extract_bound(ob: &Bound<'py, PyAny>) -> PyResult<Self>
Source§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
experimental-inspect
only.Source§impl<'py, K, S> FromPyObject<'py> for HashSet<K, S>
Available on crate feature hashbrown
only.
impl<'py, K, S> FromPyObject<'py> for HashSet<K, S>
hashbrown
only.Source§impl<'py, K, V> FromPyObject<'py> for BTreeMap<K, V>
impl<'py, K, V> FromPyObject<'py> for BTreeMap<K, V>
Source§impl<'py, K, V, S> FromPyObject<'py> for HashMap<K, V, S>
impl<'py, K, V, S> FromPyObject<'py> for HashMap<K, V, S>
Source§impl<'py, K, V, S> FromPyObject<'py> for HashMap<K, V, S>
Available on crate feature hashbrown
only.
impl<'py, K, V, S> FromPyObject<'py> for HashMap<K, V, S>
hashbrown
only.Source§impl<'py, K, V, S> FromPyObject<'py> for IndexMap<K, V, S>
Available on crate feature indexmap
only.
impl<'py, K, V, S> FromPyObject<'py> for IndexMap<K, V, S>
indexmap
only.Source§impl<'py, L, R> FromPyObject<'py> for Either<L, R>where
L: FromPyObject<'py>,
R: FromPyObject<'py>,
Available on crate feature either
only.
impl<'py, L, R> FromPyObject<'py> for Either<L, R>where
L: FromPyObject<'py>,
R: FromPyObject<'py>,
either
only.fn extract_bound(obj: &Bound<'py, PyAny>) -> PyResult<Self>
Source§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
experimental-inspect
only.Source§impl<'py, T0: FromPyObject<'py>> FromPyObject<'py> for (T0,)
impl<'py, T0: FromPyObject<'py>> FromPyObject<'py> for (T0,)
fn extract_bound(obj: &Bound<'py, PyAny>) -> PyResult<Self>
Source§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
experimental-inspect
only.Source§impl<'py, T0: FromPyObject<'py>, T1: FromPyObject<'py>> FromPyObject<'py> for (T0, T1)
impl<'py, T0: FromPyObject<'py>, T1: FromPyObject<'py>> FromPyObject<'py> for (T0, T1)
fn extract_bound(obj: &Bound<'py, PyAny>) -> PyResult<Self>
Source§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
experimental-inspect
only.Source§impl<'py, T0: FromPyObject<'py>, T1: FromPyObject<'py>, T2: FromPyObject<'py>> FromPyObject<'py> for (T0, T1, T2)
impl<'py, T0: FromPyObject<'py>, T1: FromPyObject<'py>, T2: FromPyObject<'py>> FromPyObject<'py> for (T0, T1, T2)
fn extract_bound(obj: &Bound<'py, PyAny>) -> PyResult<Self>
Source§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
experimental-inspect
only.Source§impl<'py, T0: FromPyObject<'py>, T1: FromPyObject<'py>, T2: FromPyObject<'py>, T3: FromPyObject<'py>> FromPyObject<'py> for (T0, T1, T2, T3)
impl<'py, T0: FromPyObject<'py>, T1: FromPyObject<'py>, T2: FromPyObject<'py>, T3: FromPyObject<'py>> FromPyObject<'py> for (T0, T1, T2, T3)
fn extract_bound(obj: &Bound<'py, PyAny>) -> PyResult<Self>
Source§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
experimental-inspect
only.Source§impl<'py, T0: FromPyObject<'py>, T1: FromPyObject<'py>, T2: FromPyObject<'py>, T3: FromPyObject<'py>, T4: FromPyObject<'py>> FromPyObject<'py> for (T0, T1, T2, T3, T4)
impl<'py, T0: FromPyObject<'py>, T1: FromPyObject<'py>, T2: FromPyObject<'py>, T3: FromPyObject<'py>, T4: FromPyObject<'py>> FromPyObject<'py> for (T0, T1, T2, T3, T4)
fn extract_bound(obj: &Bound<'py, PyAny>) -> PyResult<Self>
Source§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
experimental-inspect
only.Source§impl<'py, T0: FromPyObject<'py>, T1: FromPyObject<'py>, T2: FromPyObject<'py>, T3: FromPyObject<'py>, T4: FromPyObject<'py>, T5: FromPyObject<'py>> FromPyObject<'py> for (T0, T1, T2, T3, T4, T5)
impl<'py, T0: FromPyObject<'py>, T1: FromPyObject<'py>, T2: FromPyObject<'py>, T3: FromPyObject<'py>, T4: FromPyObject<'py>, T5: FromPyObject<'py>> FromPyObject<'py> for (T0, T1, T2, T3, T4, T5)
fn extract_bound(obj: &Bound<'py, PyAny>) -> PyResult<Self>
Source§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
experimental-inspect
only.Source§impl<'py, T0: FromPyObject<'py>, T1: FromPyObject<'py>, T2: FromPyObject<'py>, T3: FromPyObject<'py>, T4: FromPyObject<'py>, T5: FromPyObject<'py>, T6: FromPyObject<'py>> FromPyObject<'py> for (T0, T1, T2, T3, T4, T5, T6)
impl<'py, T0: FromPyObject<'py>, T1: FromPyObject<'py>, T2: FromPyObject<'py>, T3: FromPyObject<'py>, T4: FromPyObject<'py>, T5: FromPyObject<'py>, T6: FromPyObject<'py>> FromPyObject<'py> for (T0, T1, T2, T3, T4, T5, T6)
fn extract_bound(obj: &Bound<'py, PyAny>) -> PyResult<Self>
Source§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
experimental-inspect
only.Source§impl<'py, T0: FromPyObject<'py>, T1: FromPyObject<'py>, T2: FromPyObject<'py>, T3: FromPyObject<'py>, T4: FromPyObject<'py>, T5: FromPyObject<'py>, T6: FromPyObject<'py>, T7: FromPyObject<'py>> FromPyObject<'py> for (T0, T1, T2, T3, T4, T5, T6, T7)
impl<'py, T0: FromPyObject<'py>, T1: FromPyObject<'py>, T2: FromPyObject<'py>, T3: FromPyObject<'py>, T4: FromPyObject<'py>, T5: FromPyObject<'py>, T6: FromPyObject<'py>, T7: FromPyObject<'py>> FromPyObject<'py> for (T0, T1, T2, T3, T4, T5, T6, T7)
fn extract_bound(obj: &Bound<'py, PyAny>) -> PyResult<Self>
Source§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
experimental-inspect
only.Source§impl<'py, T0: FromPyObject<'py>, T1: FromPyObject<'py>, T2: FromPyObject<'py>, T3: FromPyObject<'py>, T4: FromPyObject<'py>, T5: FromPyObject<'py>, T6: FromPyObject<'py>, T7: FromPyObject<'py>, T8: FromPyObject<'py>> FromPyObject<'py> for (T0, T1, T2, T3, T4, T5, T6, T7, T8)
impl<'py, T0: FromPyObject<'py>, T1: FromPyObject<'py>, T2: FromPyObject<'py>, T3: FromPyObject<'py>, T4: FromPyObject<'py>, T5: FromPyObject<'py>, T6: FromPyObject<'py>, T7: FromPyObject<'py>, T8: FromPyObject<'py>> FromPyObject<'py> for (T0, T1, T2, T3, T4, T5, T6, T7, T8)
fn extract_bound(obj: &Bound<'py, PyAny>) -> PyResult<Self>
Source§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
experimental-inspect
only.Source§impl<'py, T0: FromPyObject<'py>, T1: FromPyObject<'py>, T2: FromPyObject<'py>, T3: FromPyObject<'py>, T4: FromPyObject<'py>, T5: FromPyObject<'py>, T6: FromPyObject<'py>, T7: FromPyObject<'py>, T8: FromPyObject<'py>, T9: FromPyObject<'py>> FromPyObject<'py> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)
impl<'py, T0: FromPyObject<'py>, T1: FromPyObject<'py>, T2: FromPyObject<'py>, T3: FromPyObject<'py>, T4: FromPyObject<'py>, T5: FromPyObject<'py>, T6: FromPyObject<'py>, T7: FromPyObject<'py>, T8: FromPyObject<'py>, T9: FromPyObject<'py>> FromPyObject<'py> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)
fn extract_bound(obj: &Bound<'py, PyAny>) -> PyResult<Self>
Source§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
experimental-inspect
only.Source§impl<'py, T0: FromPyObject<'py>, T1: FromPyObject<'py>, T2: FromPyObject<'py>, T3: FromPyObject<'py>, T4: FromPyObject<'py>, T5: FromPyObject<'py>, T6: FromPyObject<'py>, T7: FromPyObject<'py>, T8: FromPyObject<'py>, T9: FromPyObject<'py>, T10: FromPyObject<'py>> FromPyObject<'py> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)
impl<'py, T0: FromPyObject<'py>, T1: FromPyObject<'py>, T2: FromPyObject<'py>, T3: FromPyObject<'py>, T4: FromPyObject<'py>, T5: FromPyObject<'py>, T6: FromPyObject<'py>, T7: FromPyObject<'py>, T8: FromPyObject<'py>, T9: FromPyObject<'py>, T10: FromPyObject<'py>> FromPyObject<'py> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)
fn extract_bound(obj: &Bound<'py, PyAny>) -> PyResult<Self>
Source§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
experimental-inspect
only.Source§impl<'py, T0: FromPyObject<'py>, T1: FromPyObject<'py>, T2: FromPyObject<'py>, T3: FromPyObject<'py>, T4: FromPyObject<'py>, T5: FromPyObject<'py>, T6: FromPyObject<'py>, T7: FromPyObject<'py>, T8: FromPyObject<'py>, T9: FromPyObject<'py>, T10: FromPyObject<'py>, T11: FromPyObject<'py>> FromPyObject<'py> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
impl<'py, T0: FromPyObject<'py>, T1: FromPyObject<'py>, T2: FromPyObject<'py>, T3: FromPyObject<'py>, T4: FromPyObject<'py>, T5: FromPyObject<'py>, T6: FromPyObject<'py>, T7: FromPyObject<'py>, T8: FromPyObject<'py>, T9: FromPyObject<'py>, T10: FromPyObject<'py>, T11: FromPyObject<'py>> FromPyObject<'py> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
fn extract_bound(obj: &Bound<'py, PyAny>) -> PyResult<Self>
Source§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
experimental-inspect
only.Source§impl<'py, T> FromPyObject<'py> for Option<T>where
T: FromPyObject<'py>,
impl<'py, T> FromPyObject<'py> for Option<T>where
T: FromPyObject<'py>,
Source§impl<'py, T> FromPyObject<'py> for Vec<T>where
T: FromPyObject<'py>,
impl<'py, T> FromPyObject<'py> for Vec<T>where
T: FromPyObject<'py>,
fn extract_bound(obj: &Bound<'py, PyAny>) -> PyResult<Self>
Source§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
experimental-inspect
only.Source§impl<'py, T, const N: usize> FromPyObject<'py> for [T; N]where
T: FromPyObject<'py>,
impl<'py, T, const N: usize> FromPyObject<'py> for [T; N]where
T: FromPyObject<'py>,
Source§impl<'py, T: FromPyObject<'py>> FromPyObject<'py> for Cell<T>
impl<'py, T: FromPyObject<'py>> FromPyObject<'py> for Cell<T>
Source§impl<Tz: TimeZone + for<'py> FromPyObject<'py>> FromPyObject<'_> for DateTime<Tz>
Available on crate feature chrono
only.
impl<Tz: TimeZone + for<'py> FromPyObject<'py>> FromPyObject<'_> for DateTime<Tz>
chrono
only.Implementors§
impl FromPyObject<'_> for PyBackedBytes
impl FromPyObject<'_> for PyBackedStr
impl<'py> FromPyObject<'py> for &'py CancelledError
impl<'py> FromPyObject<'py> for &'py IncompleteReadError
impl<'py> FromPyObject<'py> for &'py InvalidStateError
impl<'py> FromPyObject<'py> for &'py LimitOverrunError
impl<'py> FromPyObject<'py> for &'py QueueEmpty
impl<'py> FromPyObject<'py> for &'py QueueFull
impl<'py> FromPyObject<'py> for &'py TimeoutError
impl<'py> FromPyObject<'py> for &'py gaierror
impl<'py> FromPyObject<'py> for &'py herror
impl<'py> FromPyObject<'py> for &'py timeout
impl<'py> FromPyObject<'py> for &'py PyArithmeticError
impl<'py> FromPyObject<'py> for &'py PyAssertionError
impl<'py> FromPyObject<'py> for &'py PyAttributeError
impl<'py> FromPyObject<'py> for &'py PyBaseException
impl<'py> FromPyObject<'py> for &'py PyBlockingIOError
impl<'py> FromPyObject<'py> for &'py PyBrokenPipeError
impl<'py> FromPyObject<'py> for &'py PyBufferError
impl<'py> FromPyObject<'py> for &'py PyBytesWarning
impl<'py> FromPyObject<'py> for &'py PyChildProcessError
impl<'py> FromPyObject<'py> for &'py PyConnectionAbortedError
impl<'py> FromPyObject<'py> for &'py PyConnectionError
impl<'py> FromPyObject<'py> for &'py PyConnectionRefusedError
impl<'py> FromPyObject<'py> for &'py PyConnectionResetError
impl<'py> FromPyObject<'py> for &'py PyDeprecationWarning
impl<'py> FromPyObject<'py> for &'py PyEOFError
impl<'py> FromPyObject<'py> for &'py PyEncodingWarning
impl<'py> FromPyObject<'py> for &'py PyEnvironmentError
impl<'py> FromPyObject<'py> for &'py PyException
impl<'py> FromPyObject<'py> for &'py PyFileExistsError
impl<'py> FromPyObject<'py> for &'py PyFileNotFoundError
impl<'py> FromPyObject<'py> for &'py PyFloatingPointError
impl<'py> FromPyObject<'py> for &'py PyFutureWarning
impl<'py> FromPyObject<'py> for &'py PyGeneratorExit
impl<'py> FromPyObject<'py> for &'py PyIOError
impl<'py> FromPyObject<'py> for &'py PyImportError
impl<'py> FromPyObject<'py> for &'py PyImportWarning
impl<'py> FromPyObject<'py> for &'py PyIndexError
impl<'py> FromPyObject<'py> for &'py PyInterruptedError
impl<'py> FromPyObject<'py> for &'py PyIsADirectoryError
impl<'py> FromPyObject<'py> for &'py PyKeyError
impl<'py> FromPyObject<'py> for &'py PyKeyboardInterrupt
impl<'py> FromPyObject<'py> for &'py PyLookupError
impl<'py> FromPyObject<'py> for &'py PyMemoryError
impl<'py> FromPyObject<'py> for &'py PyModuleNotFoundError
impl<'py> FromPyObject<'py> for &'py PyNameError
impl<'py> FromPyObject<'py> for &'py PyNotADirectoryError
impl<'py> FromPyObject<'py> for &'py PyNotImplementedError
impl<'py> FromPyObject<'py> for &'py PyOSError
impl<'py> FromPyObject<'py> for &'py PyOverflowError
impl<'py> FromPyObject<'py> for &'py PyPendingDeprecationWarning
impl<'py> FromPyObject<'py> for &'py PyPermissionError
impl<'py> FromPyObject<'py> for &'py PyProcessLookupError
impl<'py> FromPyObject<'py> for &'py PyRecursionError
impl<'py> FromPyObject<'py> for &'py PyReferenceError
impl<'py> FromPyObject<'py> for &'py PyResourceWarning
impl<'py> FromPyObject<'py> for &'py PyRuntimeError
impl<'py> FromPyObject<'py> for &'py PyRuntimeWarning
impl<'py> FromPyObject<'py> for &'py PyStopAsyncIteration
impl<'py> FromPyObject<'py> for &'py PyStopIteration
impl<'py> FromPyObject<'py> for &'py PySyntaxError
impl<'py> FromPyObject<'py> for &'py PySyntaxWarning
impl<'py> FromPyObject<'py> for &'py PySystemError
impl<'py> FromPyObject<'py> for &'py PySystemExit
impl<'py> FromPyObject<'py> for &'py PyTimeoutError
impl<'py> FromPyObject<'py> for &'py PyTypeError
impl<'py> FromPyObject<'py> for &'py PyUnboundLocalError
impl<'py> FromPyObject<'py> for &'py PyUnicodeDecodeError
impl<'py> FromPyObject<'py> for &'py PyUnicodeEncodeError
impl<'py> FromPyObject<'py> for &'py PyUnicodeError
impl<'py> FromPyObject<'py> for &'py PyUnicodeTranslateError
impl<'py> FromPyObject<'py> for &'py PyUnicodeWarning
impl<'py> FromPyObject<'py> for &'py PyUserWarning
impl<'py> FromPyObject<'py> for &'py PyValueError
impl<'py> FromPyObject<'py> for &'py PyWarning
impl<'py> FromPyObject<'py> for &'py PyZeroDivisionError
impl<'py> FromPyObject<'py> for &'py PanicException
impl<'py> FromPyObject<'py> for &'py PyAny
impl<'py> FromPyObject<'py> for &'py PyBool
impl<'py> FromPyObject<'py> for &'py PyByteArray
impl<'py> FromPyObject<'py> for &'py PyBytes
impl<'py> FromPyObject<'py> for &'py PyCFunction
impl<'py> FromPyObject<'py> for &'py PyCapsule
impl<'py> FromPyObject<'py> for &'py PyCode
Py_LIMITED_API
and non-PyPy
and non-GraalPy
only.impl<'py> FromPyObject<'py> for &'py PyComplex
impl<'py> FromPyObject<'py> for &'py PyDate
Py_LIMITED_API
only.impl<'py> FromPyObject<'py> for &'py PyDateTime
Py_LIMITED_API
only.impl<'py> FromPyObject<'py> for &'py PyDelta
Py_LIMITED_API
only.impl<'py> FromPyObject<'py> for &'py PyDict
impl<'py> FromPyObject<'py> for &'py PyDictItems
impl<'py> FromPyObject<'py> for &'py PyDictKeys
impl<'py> FromPyObject<'py> for &'py PyDictValues
impl<'py> FromPyObject<'py> for &'py PyEllipsis
impl<'py> FromPyObject<'py> for &'py PyFloat
impl<'py> FromPyObject<'py> for &'py PyFrame
Py_LIMITED_API
and non-PyPy
and non-GraalPy
only.impl<'py> FromPyObject<'py> for &'py PyFrozenSet
impl<'py> FromPyObject<'py> for &'py PyFunction
impl<'py> FromPyObject<'py> for &'py PyIterator
impl<'py> FromPyObject<'py> for &'py PyList
impl<'py> FromPyObject<'py> for &'py PyLong
impl<'py> FromPyObject<'py> for &'py PyMapping
impl<'py> FromPyObject<'py> for &'py PyMemoryView
impl<'py> FromPyObject<'py> for &'py PyModule
impl<'py> FromPyObject<'py> for &'py PyNone
impl<'py> FromPyObject<'py> for &'py PyNotImplemented
impl<'py> FromPyObject<'py> for &'py PySequence
impl<'py> FromPyObject<'py> for &'py PySet
impl<'py> FromPyObject<'py> for &'py PySlice
impl<'py> FromPyObject<'py> for &'py PyString
impl<'py> FromPyObject<'py> for &'py PySuper
PyPy
nor GraalPy
.impl<'py> FromPyObject<'py> for &'py PyTime
Py_LIMITED_API
only.impl<'py> FromPyObject<'py> for &'py PyTraceback
impl<'py> FromPyObject<'py> for &'py PyTuple
impl<'py> FromPyObject<'py> for &'py PyType
impl<'py> FromPyObject<'py> for &'py PyTzInfo
Py_LIMITED_API
only.impl<'py> FromPyObject<'py> for &'py PyWeakref
impl<'py> FromPyObject<'py> for &'py PyWeakrefProxy
impl<'py> FromPyObject<'py> for &'py PyWeakrefReference
impl<'py, T> FromPyObject<'py> for &'py PyCell<T>where
T: PyClass,
gil-refs
only.impl<'py, T> FromPyObject<'py> for Bound<'py, T>where
T: PyTypeCheck,
impl<'py, T> FromPyObject<'py> for PyRef<'py, T>where
T: PyClass,
impl<'py, T> FromPyObject<'py> for PyRefMut<'py, T>where
T: PyClass<Frozen = False>,
impl<'py, T: Element> FromPyObject<'py> for PyBuffer<T>
Py_LIMITED_API
or Py_3_11
only.