#[repr(transparent)]pub struct PyAny(_);
Expand description
Represents any Python object.
It currently only appears as a reference, &PyAny
,
with a lifetime that represents the scope during which the GIL is held.
PyAny
has some interesting properties, which it shares
with the other native Python types:
- It can only be obtained and used while the GIL is held,
therefore its API does not require a
Python<'py>
token. - It can’t be used in situations where the GIL is temporarily released,
such as
Python::allow_threads
’s closure. - The underlying Python object, if mutable, can be mutated through any reference.
- It can be converted to the GIL-independent
Py
<
PyAny
>
, allowing it to outlive the GIL scope. However, usingPy
<
PyAny
>
’s API does require aPython<'py>
token.
It can be cast to a concrete type with PyAny::downcast (for native Python types only) and FromPyObject::extract. See their documentation for more information.
See the guide for an explanation of the different Python object types.
Implementations
sourceimpl PyAny
impl PyAny
sourcepub fn downcast<T>(&self) -> Result<&T, PyDowncastError<'_>> where
for<'py> T: PyTryFrom<'py>,
pub fn downcast<T>(&self) -> Result<&T, PyDowncastError<'_>> where
for<'py> T: PyTryFrom<'py>,
Converts this PyAny
to a concrete Python type.
Examples
use pyo3::prelude::*;
use pyo3::types::{PyAny, PyDict, PyList};
Python::with_gil(|py| {
let dict = PyDict::new(py);
assert!(dict.is_instance_of::<PyAny>().unwrap());
let any: &PyAny = dict.as_ref();
assert!(any.downcast::<PyDict>().is_ok());
assert!(any.downcast::<PyList>().is_err());
});
sourcepub fn is<T: AsPyPointer>(&self, other: &T) -> bool
pub fn is<T: AsPyPointer>(&self, other: &T) -> bool
Returns whether self
and other
point to the same object. To compare
the equality of two objects (the ==
operator), use eq
.
This is equivalent to the Python expression self is other
.
sourcepub fn hasattr<N>(&self, attr_name: N) -> PyResult<bool> where
N: IntoPy<Py<PyString>>,
pub fn hasattr<N>(&self, attr_name: N) -> PyResult<bool> where
N: IntoPy<Py<PyString>>,
Determines whether this object has the given attribute.
This is equivalent to the Python expression hasattr(self, attr_name)
.
To avoid repeated temporary allocations of Python strings, the intern!
macro can be used
to intern attr_name
.
sourcepub fn getattr<N>(&self, attr_name: N) -> PyResult<&PyAny> where
N: IntoPy<Py<PyString>>,
pub fn getattr<N>(&self, attr_name: N) -> PyResult<&PyAny> where
N: IntoPy<Py<PyString>>,
Retrieves an attribute value.
This is equivalent to the Python expression self.attr_name
.
To avoid repeated temporary allocations of Python strings, the intern!
macro can be used
to intern attr_name
.
Example: intern!
ing the attribute name
#[pyfunction]
fn version(sys: &PyModule) -> PyResult<&PyAny> {
sys.getattr(intern!(sys.py(), "version"))
}
sourcepub fn setattr<N, V>(&self, attr_name: N, value: V) -> PyResult<()> where
N: IntoPy<Py<PyString>>,
V: ToPyObject,
pub fn setattr<N, V>(&self, attr_name: N, value: V) -> PyResult<()> where
N: IntoPy<Py<PyString>>,
V: ToPyObject,
Sets an attribute value.
This is equivalent to the Python expression self.attr_name = value
.
To avoid repeated temporary allocations of Python strings, the intern!
macro can be used
to intern name
.
Example: intern!
ing the attribute name
#[pyfunction]
fn set_answer(ob: &PyAny) -> PyResult<()> {
ob.setattr(intern!(ob.py(), "answer"), 42)
}
sourcepub fn delattr<N>(&self, attr_name: N) -> PyResult<()> where
N: IntoPy<Py<PyString>>,
pub fn delattr<N>(&self, attr_name: N) -> PyResult<()> where
N: IntoPy<Py<PyString>>,
Deletes an attribute.
This is equivalent to the Python statement del self.attr_name
.
To avoid repeated temporary allocations of Python strings, the intern!
macro can be used
to intern attr_name
.
sourcepub fn compare<O>(&self, other: O) -> PyResult<Ordering> where
O: ToPyObject,
pub fn compare<O>(&self, other: O) -> PyResult<Ordering> where
O: ToPyObject,
Returns an Ordering
between self
and other
.
This is equivalent to the following Python code:
if self == other:
return Equal
elif a < b:
return Less
elif a > b:
return Greater
else:
raise TypeError("PyAny::compare(): All comparisons returned false")
Examples
use pyo3::prelude::*;
use pyo3::types::PyFloat;
use std::cmp::Ordering;
Python::with_gil(|py| -> PyResult<()> {
let a = PyFloat::new(py, 0_f64);
let b = PyFloat::new(py, 42_f64);
assert_eq!(a.compare(b)?, Ordering::Less);
Ok(())
})?;
It will return PyErr
for values that cannot be compared:
use pyo3::prelude::*;
use pyo3::types::{PyFloat, PyString};
Python::with_gil(|py| -> PyResult<()> {
let a = PyFloat::new(py, 0_f64);
let b = PyString::new(py, "zero");
assert!(a.compare(b).is_err());
Ok(())
})?;
sourcepub fn rich_compare<O>(&self, other: O, compare_op: CompareOp) -> PyResult<&PyAny> where
O: ToPyObject,
pub fn rich_compare<O>(&self, other: O, compare_op: CompareOp) -> PyResult<&PyAny> where
O: ToPyObject,
Tests whether two Python objects obey a given CompareOp
.
lt
, le
, eq
, ne
,
gt
and ge
are the specialized versions
of this function.
Depending on the value of compare_op
, this is equivalent to one of the
following Python expressions:
compare_op | Python expression |
---|---|
CompareOp::Eq | self == other |
CompareOp::Ne | self != other |
CompareOp::Lt | self < other |
CompareOp::Le | self <= other |
CompareOp::Gt | self > other |
CompareOp::Ge | self >= other |
Examples
use pyo3::class::basic::CompareOp;
use pyo3::prelude::*;
use pyo3::types::PyInt;
Python::with_gil(|py| -> PyResult<()> {
let a: &PyInt = 0_u8.into_py(py).into_ref(py).downcast()?;
let b: &PyInt = 42_u8.into_py(py).into_ref(py).downcast()?;
assert!(a.rich_compare(b, CompareOp::Le)?.is_true()?);
Ok(())
})?;
sourcepub fn lt<O>(&self, other: O) -> PyResult<bool> where
O: ToPyObject,
pub fn lt<O>(&self, other: O) -> PyResult<bool> where
O: ToPyObject,
Tests whether this object is less than another.
This is equivalent to the Python expression self < other
.
sourcepub fn le<O>(&self, other: O) -> PyResult<bool> where
O: ToPyObject,
pub fn le<O>(&self, other: O) -> PyResult<bool> where
O: ToPyObject,
Tests whether this object is less than or equal to another.
This is equivalent to the Python expression self <= other
.
sourcepub fn eq<O>(&self, other: O) -> PyResult<bool> where
O: ToPyObject,
pub fn eq<O>(&self, other: O) -> PyResult<bool> where
O: ToPyObject,
Tests whether this object is equal to another.
This is equivalent to the Python expression self == other
.
sourcepub fn ne<O>(&self, other: O) -> PyResult<bool> where
O: ToPyObject,
pub fn ne<O>(&self, other: O) -> PyResult<bool> where
O: ToPyObject,
Tests whether this object is not equal to another.
This is equivalent to the Python expression self != other
.
sourcepub fn gt<O>(&self, other: O) -> PyResult<bool> where
O: ToPyObject,
pub fn gt<O>(&self, other: O) -> PyResult<bool> where
O: ToPyObject,
Tests whether this object is greater than another.
This is equivalent to the Python expression self > other
.
sourcepub fn ge<O>(&self, other: O) -> PyResult<bool> where
O: ToPyObject,
pub fn ge<O>(&self, other: O) -> PyResult<bool> where
O: ToPyObject,
Tests whether this object is greater than or equal to another.
This is equivalent to the Python expression self >= other
.
sourcepub fn is_callable(&self) -> bool
pub fn is_callable(&self) -> bool
Determines whether this object appears callable.
This is equivalent to Python’s callable()
function.
Examples
use pyo3::prelude::*;
Python::with_gil(|py| -> PyResult<()> {
let builtins = PyModule::import(py, "builtins")?;
let print = builtins.getattr("print")?;
assert!(print.is_callable());
Ok(())
})?;
This is equivalent to the Python statement assert callable(print)
.
Note that unless an API needs to distinguish between callable and non-callable objects, there is no point in checking for callability. Instead, it is better to just do the call and handle potential exceptions.
sourcepub fn call(
&self,
args: impl IntoPy<Py<PyTuple>>,
kwargs: Option<&PyDict>
) -> PyResult<&PyAny>
pub fn call(
&self,
args: impl IntoPy<Py<PyTuple>>,
kwargs: Option<&PyDict>
) -> PyResult<&PyAny>
Calls the object.
This is equivalent to the Python expression self(*args, **kwargs)
.
Examples
use pyo3::prelude::*;
use pyo3::types::PyDict;
const CODE: &str = r#"
def function(*args, **kwargs):
assert args == ("hello",)
assert kwargs == {"cruel": "world"}
return "called with args and kwargs"
"#;
Python::with_gil(|py| {
let module = PyModule::from_code(py, CODE, "", "")?;
let fun = module.getattr("function")?;
let args = ("hello",);
let kwargs = PyDict::new(py);
kwargs.set_item("cruel", "world")?;
let result = fun.call(args, Some(kwargs))?;
assert_eq!(result.extract::<&str>()?, "called with args and kwargs");
Ok(())
})
sourcepub fn call0(&self) -> PyResult<&PyAny>
pub fn call0(&self) -> PyResult<&PyAny>
Calls the object without arguments.
This is equivalent to the Python expression self()
.
Examples
use pyo3::prelude::*;
Python::with_gil(|py| -> PyResult<()> {
let module = PyModule::import(py, "builtins")?;
let help = module.getattr("help")?;
help.call0()?;
Ok(())
})?;
This is equivalent to the Python expression help()
.
sourcepub fn call1(&self, args: impl IntoPy<Py<PyTuple>>) -> PyResult<&PyAny>
pub fn call1(&self, args: impl IntoPy<Py<PyTuple>>) -> PyResult<&PyAny>
Calls the object with only positional arguments.
This is equivalent to the Python expression self(*args)
.
Examples
use pyo3::prelude::*;
const CODE: &str = r#"
def function(*args, **kwargs):
assert args == ("hello",)
assert kwargs == {}
return "called with args"
"#;
Python::with_gil(|py| {
let module = PyModule::from_code(py, CODE, "", "")?;
let fun = module.getattr("function")?;
let args = ("hello",);
let result = fun.call1(args)?;
assert_eq!(result.extract::<&str>()?, "called with args");
Ok(())
})
sourcepub fn call_method<N, A>(
&self,
name: N,
args: A,
kwargs: Option<&PyDict>
) -> PyResult<&PyAny> where
N: IntoPy<Py<PyString>>,
A: IntoPy<Py<PyTuple>>,
pub fn call_method<N, A>(
&self,
name: N,
args: A,
kwargs: Option<&PyDict>
) -> PyResult<&PyAny> where
N: IntoPy<Py<PyString>>,
A: IntoPy<Py<PyTuple>>,
Calls a method on the object.
This is equivalent to the Python expression self.name(*args, **kwargs)
.
To avoid repeated temporary allocations of Python strings, the intern!
macro can be used
to intern name
.
Examples
use pyo3::prelude::*;
use pyo3::types::PyDict;
const CODE: &str = r#"
class A:
def method(self, *args, **kwargs):
assert args == ("hello",)
assert kwargs == {"cruel": "world"}
return "called with args and kwargs"
a = A()
"#;
Python::with_gil(|py| {
let module = PyModule::from_code(py, CODE, "", "")?;
let instance = module.getattr("a")?;
let args = ("hello",);
let kwargs = PyDict::new(py);
kwargs.set_item("cruel", "world")?;
let result = instance.call_method("method", args, Some(kwargs))?;
assert_eq!(result.extract::<&str>()?, "called with args and kwargs");
Ok(())
})
sourcepub fn call_method0<N>(&self, name: N) -> PyResult<&PyAny> where
N: IntoPy<Py<PyString>>,
pub fn call_method0<N>(&self, name: N) -> PyResult<&PyAny> where
N: IntoPy<Py<PyString>>,
Calls a method on the object without arguments.
This is equivalent to the Python expression self.name()
.
To avoid repeated temporary allocations of Python strings, the intern!
macro can be used
to intern name
.
Examples
use pyo3::prelude::*;
const CODE: &str = r#"
class A:
def method(self, *args, **kwargs):
assert args == ()
assert kwargs == {}
return "called with no arguments"
a = A()
"#;
Python::with_gil(|py| {
let module = PyModule::from_code(py, CODE, "", "")?;
let instance = module.getattr("a")?;
let result = instance.call_method0("method")?;
assert_eq!(result.extract::<&str>()?, "called with no arguments");
Ok(())
})
sourcepub fn call_method1<N, A>(&self, name: N, args: A) -> PyResult<&PyAny> where
N: IntoPy<Py<PyString>>,
A: IntoPy<Py<PyTuple>>,
pub fn call_method1<N, A>(&self, name: N, args: A) -> PyResult<&PyAny> where
N: IntoPy<Py<PyString>>,
A: IntoPy<Py<PyTuple>>,
Calls a method on the object with only positional arguments.
This is equivalent to the Python expression self.name(*args)
.
To avoid repeated temporary allocations of Python strings, the intern!
macro can be used
to intern name
.
Examples
use pyo3::prelude::*;
const CODE: &str = r#"
class A:
def method(self, *args, **kwargs):
assert args == ("hello",)
assert kwargs == {}
return "called with args"
a = A()
"#;
Python::with_gil(|py| {
let module = PyModule::from_code(py, CODE, "", "")?;
let instance = module.getattr("a")?;
let args = ("hello",);
let result = instance.call_method1("method", args)?;
assert_eq!(result.extract::<&str>()?, "called with args");
Ok(())
})
sourcepub fn is_true(&self) -> PyResult<bool>
pub fn is_true(&self) -> PyResult<bool>
Returns whether the object is considered to be true.
This is equivalent to the Python expression bool(self)
.
sourcepub fn is_none(&self) -> bool
pub fn is_none(&self) -> bool
Returns whether the object is considered to be None.
This is equivalent to the Python expression self is None
.
sourcepub fn is_empty(&self) -> PyResult<bool>
pub fn is_empty(&self) -> PyResult<bool>
Returns true if the sequence or mapping has a length of 0.
This is equivalent to the Python expression len(self) == 0
.
sourcepub fn get_item<K>(&self, key: K) -> PyResult<&PyAny> where
K: ToPyObject,
pub fn get_item<K>(&self, key: K) -> PyResult<&PyAny> where
K: ToPyObject,
Gets an item from the collection.
This is equivalent to the Python expression self[key]
.
sourcepub fn set_item<K, V>(&self, key: K, value: V) -> PyResult<()> where
K: ToPyObject,
V: ToPyObject,
pub fn set_item<K, V>(&self, key: K, value: V) -> PyResult<()> where
K: ToPyObject,
V: ToPyObject,
Sets a collection item value.
This is equivalent to the Python expression self[key] = value
.
sourcepub fn del_item<K>(&self, key: K) -> PyResult<()> where
K: ToPyObject,
pub fn del_item<K>(&self, key: K) -> PyResult<()> where
K: ToPyObject,
Deletes an item from the collection.
This is equivalent to the Python expression del self[key]
.
sourcepub fn iter(&self) -> PyResult<&PyIterator>
pub fn iter(&self) -> PyResult<&PyIterator>
Takes an object and returns an iterator for it.
This is typically a new iterator but if the argument is an iterator, this returns itself.
sourcepub fn get_type_ptr(&self) -> *mut PyTypeObject
pub fn get_type_ptr(&self) -> *mut PyTypeObject
Returns the Python type pointer for this object.
sourcepub fn cast_as<'a, D>(&'a self) -> Result<&'a D, PyDowncastError<'_>> where
D: PyTryFrom<'a>,
pub fn cast_as<'a, D>(&'a self) -> Result<&'a D, PyDowncastError<'_>> where
D: PyTryFrom<'a>,
Casts self
to a concrete Python object type.
This can cast only to native Python types, not types implemented in Rust.
sourcepub fn extract<'a, D>(&'a self) -> PyResult<D> where
D: FromPyObject<'a>,
pub fn extract<'a, D>(&'a self) -> PyResult<D> where
D: FromPyObject<'a>,
Extracts some type from the Python object.
This is a wrapper function around FromPyObject::extract()
.
sourcepub fn get_refcnt(&self) -> isize
pub fn get_refcnt(&self) -> isize
Returns the reference count for the Python object.
sourcepub fn repr(&self) -> PyResult<&PyString>
pub fn repr(&self) -> PyResult<&PyString>
Computes the “repr” representation of self.
This is equivalent to the Python expression repr(self)
.
sourcepub fn str(&self) -> PyResult<&PyString>
pub fn str(&self) -> PyResult<&PyString>
Computes the “str” representation of self.
This is equivalent to the Python expression str(self)
.
sourcepub fn hash(&self) -> PyResult<isize>
pub fn hash(&self) -> PyResult<isize>
Retrieves the hash code of self.
This is equivalent to the Python expression hash(self)
.
sourcepub fn len(&self) -> PyResult<usize>
pub fn len(&self) -> PyResult<usize>
Returns the length of the sequence or mapping.
This is equivalent to the Python expression len(self)
.
sourcepub fn dir(&self) -> &PyList
pub fn dir(&self) -> &PyList
Returns the list of attributes of this object.
This is equivalent to the Python expression dir(self)
.
sourcepub fn is_instance(&self, ty: &PyType) -> PyResult<bool>
pub fn is_instance(&self, ty: &PyType) -> PyResult<bool>
Checks whether this object is an instance of type ty
.
This is equivalent to the Python expression isinstance(self, ty)
.
sourcepub fn is_instance_of<T: PyTypeInfo>(&self) -> PyResult<bool>
pub fn is_instance_of<T: PyTypeInfo>(&self) -> PyResult<bool>
Checks whether this object is an instance of type T
.
This is equivalent to the Python expression isinstance(self, T)
,
if the type T
is known at compile time.
sourcepub fn contains<V>(&self, value: V) -> PyResult<bool> where
V: ToPyObject,
pub fn contains<V>(&self, value: V) -> PyResult<bool> where
V: ToPyObject,
Determines if self contains value
.
This is equivalent to the Python expression value in self
.
Trait Implementations
sourceimpl AsPyPointer for PyAny
impl AsPyPointer for PyAny
sourceimpl AsRef<PyAny> for CancelledError
impl AsRef<PyAny> for CancelledError
sourceimpl AsRef<PyAny> for IncompleteReadError
impl AsRef<PyAny> for IncompleteReadError
sourceimpl AsRef<PyAny> for InvalidStateError
impl AsRef<PyAny> for InvalidStateError
sourceimpl AsRef<PyAny> for LimitOverrunError
impl AsRef<PyAny> for LimitOverrunError
sourceimpl AsRef<PyAny> for PanicException
impl AsRef<PyAny> for PanicException
sourceimpl AsRef<PyAny> for PyArithmeticError
impl AsRef<PyAny> for PyArithmeticError
sourceimpl AsRef<PyAny> for PyAssertionError
impl AsRef<PyAny> for PyAssertionError
sourceimpl AsRef<PyAny> for PyAttributeError
impl AsRef<PyAny> for PyAttributeError
sourceimpl AsRef<PyAny> for PyBaseException
impl AsRef<PyAny> for PyBaseException
sourceimpl AsRef<PyAny> for PyBlockingIOError
impl AsRef<PyAny> for PyBlockingIOError
sourceimpl AsRef<PyAny> for PyBrokenPipeError
impl AsRef<PyAny> for PyBrokenPipeError
sourceimpl AsRef<PyAny> for PyBufferError
impl AsRef<PyAny> for PyBufferError
sourceimpl AsRef<PyAny> for PyByteArray
impl AsRef<PyAny> for PyByteArray
sourceimpl AsRef<PyAny> for PyCFunction
impl AsRef<PyAny> for PyCFunction
sourceimpl AsRef<PyAny> for PyChildProcessError
impl AsRef<PyAny> for PyChildProcessError
sourceimpl AsRef<PyAny> for PyConnectionAbortedError
impl AsRef<PyAny> for PyConnectionAbortedError
sourceimpl AsRef<PyAny> for PyConnectionError
impl AsRef<PyAny> for PyConnectionError
sourceimpl AsRef<PyAny> for PyConnectionRefusedError
impl AsRef<PyAny> for PyConnectionRefusedError
sourceimpl AsRef<PyAny> for PyConnectionResetError
impl AsRef<PyAny> for PyConnectionResetError
sourceimpl AsRef<PyAny> for PyDateTime
impl AsRef<PyAny> for PyDateTime
sourceimpl AsRef<PyAny> for PyEOFError
impl AsRef<PyAny> for PyEOFError
sourceimpl AsRef<PyAny> for PyEnvironmentError
impl AsRef<PyAny> for PyEnvironmentError
sourceimpl AsRef<PyAny> for PyException
impl AsRef<PyAny> for PyException
sourceimpl AsRef<PyAny> for PyFileExistsError
impl AsRef<PyAny> for PyFileExistsError
sourceimpl AsRef<PyAny> for PyFileNotFoundError
impl AsRef<PyAny> for PyFileNotFoundError
sourceimpl AsRef<PyAny> for PyFloatingPointError
impl AsRef<PyAny> for PyFloatingPointError
sourceimpl AsRef<PyAny> for PyFrozenSet
impl AsRef<PyAny> for PyFrozenSet
sourceimpl AsRef<PyAny> for PyFunction
impl AsRef<PyAny> for PyFunction
sourceimpl AsRef<PyAny> for PyGeneratorExit
impl AsRef<PyAny> for PyGeneratorExit
sourceimpl AsRef<PyAny> for PyImportError
impl AsRef<PyAny> for PyImportError
sourceimpl AsRef<PyAny> for PyIndexError
impl AsRef<PyAny> for PyIndexError
sourceimpl AsRef<PyAny> for PyInterruptedError
impl AsRef<PyAny> for PyInterruptedError
sourceimpl AsRef<PyAny> for PyIsADirectoryError
impl AsRef<PyAny> for PyIsADirectoryError
sourceimpl AsRef<PyAny> for PyIterator
impl AsRef<PyAny> for PyIterator
sourceimpl AsRef<PyAny> for PyKeyError
impl AsRef<PyAny> for PyKeyError
sourceimpl AsRef<PyAny> for PyKeyboardInterrupt
impl AsRef<PyAny> for PyKeyboardInterrupt
sourceimpl AsRef<PyAny> for PyLookupError
impl AsRef<PyAny> for PyLookupError
sourceimpl AsRef<PyAny> for PyMemoryError
impl AsRef<PyAny> for PyMemoryError
sourceimpl AsRef<PyAny> for PyModuleNotFoundError
impl AsRef<PyAny> for PyModuleNotFoundError
sourceimpl AsRef<PyAny> for PyNameError
impl AsRef<PyAny> for PyNameError
sourceimpl AsRef<PyAny> for PyNotADirectoryError
impl AsRef<PyAny> for PyNotADirectoryError
sourceimpl AsRef<PyAny> for PyNotImplementedError
impl AsRef<PyAny> for PyNotImplementedError
sourceimpl AsRef<PyAny> for PyOverflowError
impl AsRef<PyAny> for PyOverflowError
sourceimpl AsRef<PyAny> for PyPermissionError
impl AsRef<PyAny> for PyPermissionError
sourceimpl AsRef<PyAny> for PyProcessLookupError
impl AsRef<PyAny> for PyProcessLookupError
sourceimpl AsRef<PyAny> for PyRecursionError
impl AsRef<PyAny> for PyRecursionError
sourceimpl AsRef<PyAny> for PyReferenceError
impl AsRef<PyAny> for PyReferenceError
sourceimpl AsRef<PyAny> for PyRuntimeError
impl AsRef<PyAny> for PyRuntimeError
sourceimpl AsRef<PyAny> for PySequence
impl AsRef<PyAny> for PySequence
sourceimpl AsRef<PyAny> for PyStopAsyncIteration
impl AsRef<PyAny> for PyStopAsyncIteration
sourceimpl AsRef<PyAny> for PyStopIteration
impl AsRef<PyAny> for PyStopIteration
sourceimpl AsRef<PyAny> for PySyntaxError
impl AsRef<PyAny> for PySyntaxError
sourceimpl AsRef<PyAny> for PySystemError
impl AsRef<PyAny> for PySystemError
sourceimpl AsRef<PyAny> for PySystemExit
impl AsRef<PyAny> for PySystemExit
sourceimpl AsRef<PyAny> for PyTimeoutError
impl AsRef<PyAny> for PyTimeoutError
sourceimpl AsRef<PyAny> for PyTraceback
impl AsRef<PyAny> for PyTraceback
sourceimpl AsRef<PyAny> for PyTypeError
impl AsRef<PyAny> for PyTypeError
sourceimpl AsRef<PyAny> for PyUnboundLocalError
impl AsRef<PyAny> for PyUnboundLocalError
sourceimpl AsRef<PyAny> for PyUnicodeDecodeError
impl AsRef<PyAny> for PyUnicodeDecodeError
sourceimpl AsRef<PyAny> for PyUnicodeEncodeError
impl AsRef<PyAny> for PyUnicodeEncodeError
sourceimpl AsRef<PyAny> for PyUnicodeError
impl AsRef<PyAny> for PyUnicodeError
sourceimpl AsRef<PyAny> for PyUnicodeTranslateError
impl AsRef<PyAny> for PyUnicodeTranslateError
sourceimpl AsRef<PyAny> for PyValueError
impl AsRef<PyAny> for PyValueError
sourceimpl AsRef<PyAny> for PyZeroDivisionError
impl AsRef<PyAny> for PyZeroDivisionError
sourceimpl AsRef<PyAny> for QueueEmpty
impl AsRef<PyAny> for QueueEmpty
sourceimpl AsRef<PyAny> for TimeoutError
impl AsRef<PyAny> for TimeoutError
sourceimpl<'a> From<&'a CancelledError> for &'a PyAny
impl<'a> From<&'a CancelledError> for &'a PyAny
sourcefn from(ob: &'a CancelledError) -> Self
fn from(ob: &'a CancelledError) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a IncompleteReadError> for &'a PyAny
impl<'a> From<&'a IncompleteReadError> for &'a PyAny
sourcefn from(ob: &'a IncompleteReadError) -> Self
fn from(ob: &'a IncompleteReadError) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a InvalidStateError> for &'a PyAny
impl<'a> From<&'a InvalidStateError> for &'a PyAny
sourcefn from(ob: &'a InvalidStateError) -> Self
fn from(ob: &'a InvalidStateError) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a LimitOverrunError> for &'a PyAny
impl<'a> From<&'a LimitOverrunError> for &'a PyAny
sourcefn from(ob: &'a LimitOverrunError) -> Self
fn from(ob: &'a LimitOverrunError) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PanicException> for &'a PyAny
impl<'a> From<&'a PanicException> for &'a PyAny
sourcefn from(ob: &'a PanicException) -> Self
fn from(ob: &'a PanicException) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyArithmeticError> for &'a PyAny
impl<'a> From<&'a PyArithmeticError> for &'a PyAny
sourcefn from(ob: &'a PyArithmeticError) -> Self
fn from(ob: &'a PyArithmeticError) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyAssertionError> for &'a PyAny
impl<'a> From<&'a PyAssertionError> for &'a PyAny
sourcefn from(ob: &'a PyAssertionError) -> Self
fn from(ob: &'a PyAssertionError) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyAttributeError> for &'a PyAny
impl<'a> From<&'a PyAttributeError> for &'a PyAny
sourcefn from(ob: &'a PyAttributeError) -> Self
fn from(ob: &'a PyAttributeError) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyBaseException> for &'a PyAny
impl<'a> From<&'a PyBaseException> for &'a PyAny
sourcefn from(ob: &'a PyBaseException) -> Self
fn from(ob: &'a PyBaseException) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyBlockingIOError> for &'a PyAny
impl<'a> From<&'a PyBlockingIOError> for &'a PyAny
sourcefn from(ob: &'a PyBlockingIOError) -> Self
fn from(ob: &'a PyBlockingIOError) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyBrokenPipeError> for &'a PyAny
impl<'a> From<&'a PyBrokenPipeError> for &'a PyAny
sourcefn from(ob: &'a PyBrokenPipeError) -> Self
fn from(ob: &'a PyBrokenPipeError) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyBufferError> for &'a PyAny
impl<'a> From<&'a PyBufferError> for &'a PyAny
sourcefn from(ob: &'a PyBufferError) -> Self
fn from(ob: &'a PyBufferError) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyByteArray> for &'a PyAny
impl<'a> From<&'a PyByteArray> for &'a PyAny
sourcefn from(ob: &'a PyByteArray) -> Self
fn from(ob: &'a PyByteArray) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyCFunction> for &'a PyAny
impl<'a> From<&'a PyCFunction> for &'a PyAny
sourcefn from(ob: &'a PyCFunction) -> Self
fn from(ob: &'a PyCFunction) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyChildProcessError> for &'a PyAny
impl<'a> From<&'a PyChildProcessError> for &'a PyAny
sourcefn from(ob: &'a PyChildProcessError) -> Self
fn from(ob: &'a PyChildProcessError) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyConnectionAbortedError> for &'a PyAny
impl<'a> From<&'a PyConnectionAbortedError> for &'a PyAny
sourcefn from(ob: &'a PyConnectionAbortedError) -> Self
fn from(ob: &'a PyConnectionAbortedError) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyConnectionError> for &'a PyAny
impl<'a> From<&'a PyConnectionError> for &'a PyAny
sourcefn from(ob: &'a PyConnectionError) -> Self
fn from(ob: &'a PyConnectionError) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyConnectionRefusedError> for &'a PyAny
impl<'a> From<&'a PyConnectionRefusedError> for &'a PyAny
sourcefn from(ob: &'a PyConnectionRefusedError) -> Self
fn from(ob: &'a PyConnectionRefusedError) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyConnectionResetError> for &'a PyAny
impl<'a> From<&'a PyConnectionResetError> for &'a PyAny
sourcefn from(ob: &'a PyConnectionResetError) -> Self
fn from(ob: &'a PyConnectionResetError) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyDateTime> for &'a PyAny
impl<'a> From<&'a PyDateTime> for &'a PyAny
sourcefn from(ob: &'a PyDateTime) -> Self
fn from(ob: &'a PyDateTime) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyEOFError> for &'a PyAny
impl<'a> From<&'a PyEOFError> for &'a PyAny
sourcefn from(ob: &'a PyEOFError) -> Self
fn from(ob: &'a PyEOFError) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyEnvironmentError> for &'a PyAny
impl<'a> From<&'a PyEnvironmentError> for &'a PyAny
sourcefn from(ob: &'a PyEnvironmentError) -> Self
fn from(ob: &'a PyEnvironmentError) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyException> for &'a PyAny
impl<'a> From<&'a PyException> for &'a PyAny
sourcefn from(ob: &'a PyException) -> Self
fn from(ob: &'a PyException) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyFileExistsError> for &'a PyAny
impl<'a> From<&'a PyFileExistsError> for &'a PyAny
sourcefn from(ob: &'a PyFileExistsError) -> Self
fn from(ob: &'a PyFileExistsError) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyFileNotFoundError> for &'a PyAny
impl<'a> From<&'a PyFileNotFoundError> for &'a PyAny
sourcefn from(ob: &'a PyFileNotFoundError) -> Self
fn from(ob: &'a PyFileNotFoundError) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyFloatingPointError> for &'a PyAny
impl<'a> From<&'a PyFloatingPointError> for &'a PyAny
sourcefn from(ob: &'a PyFloatingPointError) -> Self
fn from(ob: &'a PyFloatingPointError) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyFrozenSet> for &'a PyAny
impl<'a> From<&'a PyFrozenSet> for &'a PyAny
sourcefn from(ob: &'a PyFrozenSet) -> Self
fn from(ob: &'a PyFrozenSet) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyFunction> for &'a PyAny
impl<'a> From<&'a PyFunction> for &'a PyAny
sourcefn from(ob: &'a PyFunction) -> Self
fn from(ob: &'a PyFunction) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyGeneratorExit> for &'a PyAny
impl<'a> From<&'a PyGeneratorExit> for &'a PyAny
sourcefn from(ob: &'a PyGeneratorExit) -> Self
fn from(ob: &'a PyGeneratorExit) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyImportError> for &'a PyAny
impl<'a> From<&'a PyImportError> for &'a PyAny
sourcefn from(ob: &'a PyImportError) -> Self
fn from(ob: &'a PyImportError) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyIndexError> for &'a PyAny
impl<'a> From<&'a PyIndexError> for &'a PyAny
sourcefn from(ob: &'a PyIndexError) -> Self
fn from(ob: &'a PyIndexError) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyInterruptedError> for &'a PyAny
impl<'a> From<&'a PyInterruptedError> for &'a PyAny
sourcefn from(ob: &'a PyInterruptedError) -> Self
fn from(ob: &'a PyInterruptedError) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyIsADirectoryError> for &'a PyAny
impl<'a> From<&'a PyIsADirectoryError> for &'a PyAny
sourcefn from(ob: &'a PyIsADirectoryError) -> Self
fn from(ob: &'a PyIsADirectoryError) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyIterator> for &'a PyAny
impl<'a> From<&'a PyIterator> for &'a PyAny
sourcefn from(ob: &'a PyIterator) -> Self
fn from(ob: &'a PyIterator) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyKeyError> for &'a PyAny
impl<'a> From<&'a PyKeyError> for &'a PyAny
sourcefn from(ob: &'a PyKeyError) -> Self
fn from(ob: &'a PyKeyError) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyKeyboardInterrupt> for &'a PyAny
impl<'a> From<&'a PyKeyboardInterrupt> for &'a PyAny
sourcefn from(ob: &'a PyKeyboardInterrupt) -> Self
fn from(ob: &'a PyKeyboardInterrupt) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyLookupError> for &'a PyAny
impl<'a> From<&'a PyLookupError> for &'a PyAny
sourcefn from(ob: &'a PyLookupError) -> Self
fn from(ob: &'a PyLookupError) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyMemoryError> for &'a PyAny
impl<'a> From<&'a PyMemoryError> for &'a PyAny
sourcefn from(ob: &'a PyMemoryError) -> Self
fn from(ob: &'a PyMemoryError) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyModuleNotFoundError> for &'a PyAny
impl<'a> From<&'a PyModuleNotFoundError> for &'a PyAny
sourcefn from(ob: &'a PyModuleNotFoundError) -> Self
fn from(ob: &'a PyModuleNotFoundError) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyNameError> for &'a PyAny
impl<'a> From<&'a PyNameError> for &'a PyAny
sourcefn from(ob: &'a PyNameError) -> Self
fn from(ob: &'a PyNameError) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyNotADirectoryError> for &'a PyAny
impl<'a> From<&'a PyNotADirectoryError> for &'a PyAny
sourcefn from(ob: &'a PyNotADirectoryError) -> Self
fn from(ob: &'a PyNotADirectoryError) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyNotImplementedError> for &'a PyAny
impl<'a> From<&'a PyNotImplementedError> for &'a PyAny
sourcefn from(ob: &'a PyNotImplementedError) -> Self
fn from(ob: &'a PyNotImplementedError) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyOverflowError> for &'a PyAny
impl<'a> From<&'a PyOverflowError> for &'a PyAny
sourcefn from(ob: &'a PyOverflowError) -> Self
fn from(ob: &'a PyOverflowError) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyPermissionError> for &'a PyAny
impl<'a> From<&'a PyPermissionError> for &'a PyAny
sourcefn from(ob: &'a PyPermissionError) -> Self
fn from(ob: &'a PyPermissionError) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyProcessLookupError> for &'a PyAny
impl<'a> From<&'a PyProcessLookupError> for &'a PyAny
sourcefn from(ob: &'a PyProcessLookupError) -> Self
fn from(ob: &'a PyProcessLookupError) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyRecursionError> for &'a PyAny
impl<'a> From<&'a PyRecursionError> for &'a PyAny
sourcefn from(ob: &'a PyRecursionError) -> Self
fn from(ob: &'a PyRecursionError) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyReferenceError> for &'a PyAny
impl<'a> From<&'a PyReferenceError> for &'a PyAny
sourcefn from(ob: &'a PyReferenceError) -> Self
fn from(ob: &'a PyReferenceError) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyRuntimeError> for &'a PyAny
impl<'a> From<&'a PyRuntimeError> for &'a PyAny
sourcefn from(ob: &'a PyRuntimeError) -> Self
fn from(ob: &'a PyRuntimeError) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PySequence> for &'a PyAny
impl<'a> From<&'a PySequence> for &'a PyAny
sourcefn from(ob: &'a PySequence) -> Self
fn from(ob: &'a PySequence) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyStopAsyncIteration> for &'a PyAny
impl<'a> From<&'a PyStopAsyncIteration> for &'a PyAny
sourcefn from(ob: &'a PyStopAsyncIteration) -> Self
fn from(ob: &'a PyStopAsyncIteration) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyStopIteration> for &'a PyAny
impl<'a> From<&'a PyStopIteration> for &'a PyAny
sourcefn from(ob: &'a PyStopIteration) -> Self
fn from(ob: &'a PyStopIteration) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PySyntaxError> for &'a PyAny
impl<'a> From<&'a PySyntaxError> for &'a PyAny
sourcefn from(ob: &'a PySyntaxError) -> Self
fn from(ob: &'a PySyntaxError) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PySystemError> for &'a PyAny
impl<'a> From<&'a PySystemError> for &'a PyAny
sourcefn from(ob: &'a PySystemError) -> Self
fn from(ob: &'a PySystemError) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PySystemExit> for &'a PyAny
impl<'a> From<&'a PySystemExit> for &'a PyAny
sourcefn from(ob: &'a PySystemExit) -> Self
fn from(ob: &'a PySystemExit) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyTimeoutError> for &'a PyAny
impl<'a> From<&'a PyTimeoutError> for &'a PyAny
sourcefn from(ob: &'a PyTimeoutError) -> Self
fn from(ob: &'a PyTimeoutError) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyTraceback> for &'a PyAny
impl<'a> From<&'a PyTraceback> for &'a PyAny
sourcefn from(ob: &'a PyTraceback) -> Self
fn from(ob: &'a PyTraceback) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyTypeError> for &'a PyAny
impl<'a> From<&'a PyTypeError> for &'a PyAny
sourcefn from(ob: &'a PyTypeError) -> Self
fn from(ob: &'a PyTypeError) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyUnboundLocalError> for &'a PyAny
impl<'a> From<&'a PyUnboundLocalError> for &'a PyAny
sourcefn from(ob: &'a PyUnboundLocalError) -> Self
fn from(ob: &'a PyUnboundLocalError) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyUnicodeDecodeError> for &'a PyAny
impl<'a> From<&'a PyUnicodeDecodeError> for &'a PyAny
sourcefn from(ob: &'a PyUnicodeDecodeError) -> Self
fn from(ob: &'a PyUnicodeDecodeError) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyUnicodeEncodeError> for &'a PyAny
impl<'a> From<&'a PyUnicodeEncodeError> for &'a PyAny
sourcefn from(ob: &'a PyUnicodeEncodeError) -> Self
fn from(ob: &'a PyUnicodeEncodeError) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyUnicodeError> for &'a PyAny
impl<'a> From<&'a PyUnicodeError> for &'a PyAny
sourcefn from(ob: &'a PyUnicodeError) -> Self
fn from(ob: &'a PyUnicodeError) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyUnicodeTranslateError> for &'a PyAny
impl<'a> From<&'a PyUnicodeTranslateError> for &'a PyAny
sourcefn from(ob: &'a PyUnicodeTranslateError) -> Self
fn from(ob: &'a PyUnicodeTranslateError) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyValueError> for &'a PyAny
impl<'a> From<&'a PyValueError> for &'a PyAny
sourcefn from(ob: &'a PyValueError) -> Self
fn from(ob: &'a PyValueError) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a PyZeroDivisionError> for &'a PyAny
impl<'a> From<&'a PyZeroDivisionError> for &'a PyAny
sourcefn from(ob: &'a PyZeroDivisionError) -> Self
fn from(ob: &'a PyZeroDivisionError) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a QueueEmpty> for &'a PyAny
impl<'a> From<&'a QueueEmpty> for &'a PyAny
sourcefn from(ob: &'a QueueEmpty) -> Self
fn from(ob: &'a QueueEmpty) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a TimeoutError> for &'a PyAny
impl<'a> From<&'a TimeoutError> for &'a PyAny
sourcefn from(ob: &'a TimeoutError) -> Self
fn from(ob: &'a TimeoutError) -> Self
Converts to this type from the input type.
sourceimpl<'py> FromPyObject<'py> for &'py PyAny
impl<'py> FromPyObject<'py> for &'py PyAny
sourceimpl PyNativeType for PyAny
impl PyNativeType for PyAny
sourceimpl<U> PyTryInto<U> for PyAny where
U: for<'v> PyTryFrom<'v>,
impl<U> PyTryInto<U> for PyAny where
U: for<'v> PyTryFrom<'v>,
sourcefn try_into(&self) -> Result<&U, PyDowncastError<'_>>
fn try_into(&self) -> Result<&U, PyDowncastError<'_>>
Cast from PyObject to a concrete Python object type.
sourcefn try_into_exact(&self) -> Result<&U, PyDowncastError<'_>>
fn try_into_exact(&self) -> Result<&U, PyDowncastError<'_>>
Cast from PyObject to a concrete Python object type. With exact type check.
sourceimpl PyTypeInfo for PyAny
impl PyTypeInfo for PyAny
type AsRefTarget = PyAny
type AsRefTarget = PyAny
Utility type to make Py::as_ref work.
sourcefn type_object_raw(_py: Python<'_>) -> *mut PyTypeObject
fn type_object_raw(_py: Python<'_>) -> *mut PyTypeObject
Returns the PyTypeObject instance for this type.
sourcefn is_type_of(ptr: &PyAny) -> bool
fn is_type_of(ptr: &PyAny) -> bool
Checks if object
is an instance of this type or a subclass of this type.
sourcefn type_object(py: Python<'_>) -> &PyType
fn type_object(py: Python<'_>) -> &PyType
Returns the safe abstraction over the type object.
sourcefn is_exact_type_of(object: &PyAny) -> bool
fn is_exact_type_of(object: &PyAny) -> bool
Checks if object
is an instance of this type.
sourceimpl ToPyObject for PyAny
impl ToPyObject for PyAny
impl PyLayout<PyAny> for PyObject
impl PySizedLayout<PyAny> for PyObject
Auto Trait Implementations
impl !RefUnwindSafe for PyAny
impl !Send for PyAny
impl !Sync for PyAny
impl Unpin for PyAny
impl UnwindSafe for PyAny
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<'p, T> FromPyPointer<'p> for T where
T: 'p + PyNativeType,
impl<'p, T> FromPyPointer<'p> for T where
T: 'p + PyNativeType,
sourceunsafe fn from_owned_ptr_or_opt(
py: Python<'p>,
ptr: *mut PyObject
) -> Option<&'p T>
unsafe fn from_owned_ptr_or_opt(
py: Python<'p>,
ptr: *mut PyObject
) -> Option<&'p T>
Convert from an arbitrary PyObject
. Read more
sourceunsafe fn from_borrowed_ptr_or_opt(
_py: Python<'p>,
ptr: *mut PyObject
) -> Option<&'p T>
unsafe fn from_borrowed_ptr_or_opt(
_py: Python<'p>,
ptr: *mut PyObject
) -> Option<&'p T>
Convert from an arbitrary borrowed PyObject
. Read more
sourceunsafe fn from_owned_ptr_or_panic(py: Python<'p>, ptr: *mut PyObject) -> &'p Self
unsafe fn from_owned_ptr_or_panic(py: Python<'p>, ptr: *mut PyObject) -> &'p Self
Convert from an arbitrary PyObject
or panic. Read more
sourceunsafe fn from_owned_ptr(py: Python<'p>, ptr: *mut PyObject) -> &'p Self
unsafe fn from_owned_ptr(py: Python<'p>, ptr: *mut PyObject) -> &'p Self
Convert from an arbitrary PyObject
or panic. Read more
sourceunsafe fn from_owned_ptr_or_err(
py: Python<'p>,
ptr: *mut PyObject
) -> PyResult<&'p Self>
unsafe fn from_owned_ptr_or_err(
py: Python<'p>,
ptr: *mut PyObject
) -> PyResult<&'p Self>
Convert from an arbitrary PyObject
. Read more
sourceunsafe fn from_borrowed_ptr_or_panic(
py: Python<'p>,
ptr: *mut PyObject
) -> &'p Self
unsafe fn from_borrowed_ptr_or_panic(
py: Python<'p>,
ptr: *mut PyObject
) -> &'p Self
Convert from an arbitrary borrowed PyObject
. Read more
sourceimpl<'v, T> PyTryFrom<'v> for T where
T: PyTypeInfo + PyNativeType,
impl<'v, T> PyTryFrom<'v> for T where
T: PyTypeInfo + PyNativeType,
sourcefn try_from<V>(value: V) -> Result<&'v T, PyDowncastError<'v>> where
V: Into<&'v PyAny>,
fn try_from<V>(value: V) -> Result<&'v T, PyDowncastError<'v>> where
V: Into<&'v PyAny>,
Cast from a concrete Python object type to PyObject.
sourcefn try_from_exact<V>(value: V) -> Result<&'v T, PyDowncastError<'v>> where
V: Into<&'v PyAny>,
fn try_from_exact<V>(value: V) -> Result<&'v T, PyDowncastError<'v>> where
V: Into<&'v PyAny>,
Cast from a concrete Python object type to PyObject. With exact type check.
sourceimpl<T> ToBorrowedObject for T where
T: ToPyObject,
impl<T> ToBorrowedObject for T where
T: ToPyObject,
sourcefn with_borrowed_ptr<F, R>(&self, py: Python<'_>, f: F) -> R where
F: FnOnce(*mut PyObject) -> R,
fn with_borrowed_ptr<F, R>(&self, py: Python<'_>, f: F) -> R where
F: FnOnce(*mut PyObject) -> R,
this trait is no longer used by PyO3, use ToPyObject or IntoPy<PyObject>
Converts self into a Python object and calls the specified closure on the native FFI pointer underlying the Python object. Read more