pub trait FromPyObject<'py>: Sized {
const INPUT_TYPE: &'static str = "typing.Any";
// Required method
fn extract_bound(ob: &Bound<'py, PyAny>) -> PyResult<Self>;
// Provided method
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::attach(|py| {
// Calling `.extract()` on a `Bound` smart pointer
let obj: Bound<'_, PyString> = PyString::new(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.
Provided Associated Constants§
Sourceconst INPUT_TYPE: &'static str = "typing.Any"
Available on crate feature experimental-inspect only.
const INPUT_TYPE: &'static str = "typing.Any"
experimental-inspect only.Provides the type hint information for this type when it appears as an argument.
For example, Vec<u32> would be collections.abc.Sequence[int].
The default value is typing.Any, which is correct for any type.
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 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
IntoPyObject::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
Converts a Python bool to a Rust bool.
impl FromPyObject<'_> for bool
Converts a Python bool to a Rust bool.
Fails with TypeError if the input is not a Python bool.
Source§const INPUT_TYPE: &'static str = "bool"
const INPUT_TYPE: &'static str = "bool"
experimental-inspect only.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
Source§const INPUT_TYPE: &'static str = "str"
const INPUT_TYPE: &'static str = "str"
experimental-inspect only.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§const INPUT_TYPE: &'static str = "int"
const INPUT_TYPE: &'static str = "int"
experimental-inspect only.fn extract_bound(ob: &Bound<'_, PyAny>) -> PyResult<i128>
Source§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
experimental-inspect only.Source§impl FromPyObject<'_> for u8
impl FromPyObject<'_> for u8
Source§const INPUT_TYPE: &'static str = "int"
const INPUT_TYPE: &'static str = "int"
experimental-inspect only.fn extract_bound(obj: &Bound<'_, PyAny>) -> PyResult<Self>
Source§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
experimental-inspect only.Source§impl FromPyObject<'_> for u64
impl FromPyObject<'_> for u64
Source§const INPUT_TYPE: &'static str = "int"
const INPUT_TYPE: &'static str = "int"
experimental-inspect only.fn extract_bound(obj: &Bound<'_, PyAny>) -> PyResult<u64>
Source§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
experimental-inspect only.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§const INPUT_TYPE: &'static str = "int"
const INPUT_TYPE: &'static str = "int"
experimental-inspect only.fn extract_bound(ob: &Bound<'_, PyAny>) -> PyResult<u128>
Source§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
experimental-inspect only.Source§impl FromPyObject<'_> for usize
impl FromPyObject<'_> for usize
Source§const INPUT_TYPE: &'static str = u64::INPUT_TYPE
const INPUT_TYPE: &'static str = u64::INPUT_TYPE
experimental-inspect only.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
Allows extracting strings from Python objects.
Accepts Python str and unicode objects.
impl FromPyObject<'_> for String
Allows extracting strings from Python objects.
Accepts Python str and unicode objects.
Source§const INPUT_TYPE: &'static str = "str"
const INPUT_TYPE: &'static str = "str"
experimental-inspect only.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 BigDecimal
Available on crate feature bigdecimal only.
impl FromPyObject<'_> for BigDecimal
bigdecimal only.Source§impl FromPyObject<'_> for Bytes
Available on crate feature bytes only.
impl FromPyObject<'_> for Bytes
bytes only.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 Local
Available on crate features chrono and chrono-local only.
impl FromPyObject<'_> for Local
chrono and chrono-local only.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 NotNan<f32>
Available on crate feature ordered-float only.
impl FromPyObject<'_> for NotNan<f32>
ordered-float only.Source§impl FromPyObject<'_> for NotNan<f64>
Available on crate feature ordered-float only.
impl FromPyObject<'_> for NotNan<f64>
ordered-float only.Source§impl FromPyObject<'_> for OrderedFloat<f32>
Available on crate feature ordered-float only.
impl FromPyObject<'_> for OrderedFloat<f32>
ordered-float only.Source§impl FromPyObject<'_> for OrderedFloat<f64>
Available on crate feature ordered-float only.
impl FromPyObject<'_> for OrderedFloat<f64>
ordered-float only.Source§impl FromPyObject<'_> for Decimal
Available on crate feature rust_decimal only.
impl FromPyObject<'_> for Decimal
rust_decimal only.Source§impl FromPyObject<'_> for Date
Available on crate feature time only.
impl FromPyObject<'_> for Date
time only.Source§impl FromPyObject<'_> for Duration
Available on crate feature time only.
impl FromPyObject<'_> for Duration
time only.Source§impl FromPyObject<'_> for OffsetDateTime
Available on crate feature time only.
impl FromPyObject<'_> for OffsetDateTime
time only.fn extract_bound(ob: &Bound<'_, PyAny>) -> PyResult<OffsetDateTime>
Source§impl FromPyObject<'_> for PrimitiveDateTime
Available on crate feature time only.
impl FromPyObject<'_> for PrimitiveDateTime
time only.fn extract_bound(dt: &Bound<'_, PyAny>) -> PyResult<PrimitiveDateTime>
Source§impl FromPyObject<'_> for Time
Available on crate feature time only.
impl FromPyObject<'_> for Time
time only.Source§impl FromPyObject<'_> for UtcDateTime
Available on crate feature time only.
impl FromPyObject<'_> for UtcDateTime
time only.fn extract_bound(ob: &Bound<'_, PyAny>) -> PyResult<UtcDateTime>
Source§impl FromPyObject<'_> for UtcOffset
Available on crate feature time only.
impl FromPyObject<'_> for UtcOffset
time only.Source§impl FromPyObject<'_> for Uuid
Available on crate feature uuid only.
impl FromPyObject<'_> for Uuid
uuid only.Source§impl FromPyObject<'_> for NonZeroI8
impl FromPyObject<'_> for NonZeroI8
Source§const INPUT_TYPE: &'static str = i8::INPUT_TYPE
const INPUT_TYPE: &'static str = i8::INPUT_TYPE
experimental-inspect only.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
Source§const INPUT_TYPE: &'static str = i16::INPUT_TYPE
const INPUT_TYPE: &'static str = i16::INPUT_TYPE
experimental-inspect only.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
Source§const INPUT_TYPE: &'static str = i32::INPUT_TYPE
const INPUT_TYPE: &'static str = i32::INPUT_TYPE
experimental-inspect only.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
Source§const INPUT_TYPE: &'static str = i64::INPUT_TYPE
const INPUT_TYPE: &'static str = i64::INPUT_TYPE
experimental-inspect only.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
Source§const INPUT_TYPE: &'static str = i128::INPUT_TYPE
const INPUT_TYPE: &'static str = i128::INPUT_TYPE
experimental-inspect only.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
Source§const INPUT_TYPE: &'static str = isize::INPUT_TYPE
const INPUT_TYPE: &'static str = isize::INPUT_TYPE
experimental-inspect only.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
Source§const INPUT_TYPE: &'static str = u8::INPUT_TYPE
const INPUT_TYPE: &'static str = u8::INPUT_TYPE
experimental-inspect only.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
Source§const INPUT_TYPE: &'static str = u16::INPUT_TYPE
const INPUT_TYPE: &'static str = u16::INPUT_TYPE
experimental-inspect only.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
Source§const INPUT_TYPE: &'static str = u32::INPUT_TYPE
const INPUT_TYPE: &'static str = u32::INPUT_TYPE
experimental-inspect only.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
Source§const INPUT_TYPE: &'static str = u64::INPUT_TYPE
const INPUT_TYPE: &'static str = u64::INPUT_TYPE
experimental-inspect only.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
Source§const INPUT_TYPE: &'static str = u128::INPUT_TYPE
const INPUT_TYPE: &'static str = u128::INPUT_TYPE
experimental-inspect only.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
Source§const INPUT_TYPE: &'static str = usize::INPUT_TYPE
const INPUT_TYPE: &'static str = usize::INPUT_TYPE
experimental-inspect only.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 f32
impl<'py> FromPyObject<'py> for f32
Source§const INPUT_TYPE: &'static str = "float"
const INPUT_TYPE: &'static str = "float"
experimental-inspect 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 f64
impl<'py> FromPyObject<'py> for f64
Source§const INPUT_TYPE: &'static str = "float"
const INPUT_TYPE: &'static str = "float"
experimental-inspect 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 i8
impl<'py> FromPyObject<'py> for i8
Source§const INPUT_TYPE: &'static str = "int"
const INPUT_TYPE: &'static str = "int"
experimental-inspect only.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
Source§const INPUT_TYPE: &'static str = "int"
const INPUT_TYPE: &'static str = "int"
experimental-inspect only.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
Source§const INPUT_TYPE: &'static str = "int"
const INPUT_TYPE: &'static str = "int"
experimental-inspect only.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
Source§const INPUT_TYPE: &'static str = "int"
const INPUT_TYPE: &'static str = "int"
experimental-inspect only.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
Source§const INPUT_TYPE: &'static str = "int"
const INPUT_TYPE: &'static str = "int"
experimental-inspect only.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
Source§const INPUT_TYPE: &'static str = "int"
const INPUT_TYPE: &'static str = "int"
experimental-inspect only.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
Source§const INPUT_TYPE: &'static str = "int"
const INPUT_TYPE: &'static str = "int"
experimental-inspect only.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 Date
Available on crate feature jiff-02 only.
impl<'py> FromPyObject<'py> for Date
jiff-02 only.Source§impl<'py> FromPyObject<'py> for DateTime
Available on crate feature jiff-02 only.
impl<'py> FromPyObject<'py> for DateTime
jiff-02 only.Source§impl<'py> FromPyObject<'py> for Time
Available on crate feature jiff-02 only.
impl<'py> FromPyObject<'py> for Time
jiff-02 only.Source§impl<'py> FromPyObject<'py> for SignedDuration
Available on crate feature jiff-02 only.
impl<'py> FromPyObject<'py> for SignedDuration
jiff-02 only.Source§impl<'py> FromPyObject<'py> for Span
Available on crate feature jiff-02 only.
impl<'py> FromPyObject<'py> for Span
jiff-02 only.Source§impl<'py> FromPyObject<'py> for Timestamp
Available on crate feature jiff-02 only.
impl<'py> FromPyObject<'py> for Timestamp
jiff-02 only.Source§impl<'py> FromPyObject<'py> for Offset
Available on crate feature jiff-02 only.
impl<'py> FromPyObject<'py> for Offset
jiff-02 only.Source§impl<'py> FromPyObject<'py> for TimeZone
Available on crate feature jiff-02 only.
impl<'py> FromPyObject<'py> for TimeZone
jiff-02 only.Source§impl<'py> FromPyObject<'py> for Zoned
Available on crate feature jiff-02 only.
impl<'py> FromPyObject<'py> for Zoned
jiff-02 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§const INPUT_TYPE: &'static str = T::INPUT_TYPE
const INPUT_TYPE: &'static str = T::INPUT_TYPE
experimental-inspect only.fn extract_bound(ob: &Bound<'py, PyAny>) -> PyResult<Self>
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
Source§impl<'py, T> FromPyObject<'py> for PyRef<'py, T>where
T: PyClass,
impl<'py, T> FromPyObject<'py> for PyRef<'py, T>where
T: PyClass,
const INPUT_TYPE: &'static str = <T as crate::impl_::pyclass::PyClassImpl>::TYPE_NAME
Source§impl<'py, T> FromPyObject<'py> for PyRefMut<'py, T>where
T: PyClass<Frozen = False>,
impl<'py, T> FromPyObject<'py> for PyRefMut<'py, T>where
T: PyClass<Frozen = False>,
const INPUT_TYPE: &'static str = <T as crate::impl_::pyclass::PyClassImpl>::TYPE_NAME
Source§impl<'py, T> FromPyObject<'py> for Bound<'py, T>where
T: PyTypeCheck,
impl<'py, T> FromPyObject<'py> for Bound<'py, T>where
T: PyTypeCheck,
const INPUT_TYPE: &'static str = T::PYTHON_TYPE
Source§impl<T> FromPyObject<'_> for Py<T>where
T: PyTypeCheck,
impl<T> FromPyObject<'_> for Py<T>where
T: PyTypeCheck,
const INPUT_TYPE: &'static str = T::PYTHON_TYPE
Source§impl<T> FromPyObject<'_> for T
impl<T> FromPyObject<'_> for T
const INPUT_TYPE: &'static str = <T as crate::impl_::pyclass::PyClassImpl>::TYPE_NAME
impl<T: Element> FromPyObject<'_> for PyBuffer<T>
Py_LIMITED_API or Py_3_11 only.