Struct pyo3::types::PyDict[][src]

#[repr(transparent)]pub struct PyDict(_);

Represents a Python dict.

Implementations

impl PyDict[src]

pub fn new(py: Python<'_>) -> &PyDict[src]

Creates a new empty dictionary.

pub fn from_sequence(py: Python<'_>, seq: PyObject) -> PyResult<&PyDict>[src]

Creates a new dictionary from the sequence given.

The sequence must consist of (PyObject, PyObject). This is equivalent to dict([("a", 1), ("b", 2)]).

Returns an error on invalid input. In the case of key collisions, this keeps the last entry seen.

pub fn copy(&self) -> PyResult<&PyDict>[src]

Returns a new dictionary that contains the same key-value pairs as self.

This is equivalent to the Python expression dict(self).

pub fn clear(&self)[src]

Empties an existing dictionary of all key-value pairs.

pub fn len(&self) -> usize[src]

Return the number of items in the dictionary.

This is equivalent to the Python expression len(self).

pub fn is_empty(&self) -> bool[src]

Checks if the dict is empty, i.e. len(self) == 0.

pub fn contains<K>(&self, key: K) -> PyResult<bool> where
    K: ToBorrowedObject
[src]

Determines if the dictionary contains the specified key.

This is equivalent to the Python expression key in self.

pub fn get_item<K>(&self, key: K) -> Option<&PyAny> where
    K: ToBorrowedObject
[src]

Gets an item from the dictionary.

Returns None if the item is not present, or if an error occurs.

To get a KeyError for non-existing keys, use PyAny::get_item.

pub fn set_item<K, V>(&self, key: K, value: V) -> PyResult<()> where
    K: ToPyObject,
    V: ToPyObject
[src]

Sets an item value.

This is equivalent to the Python statement self[key] = value.

pub fn del_item<K>(&self, key: K) -> PyResult<()> where
    K: ToBorrowedObject
[src]

Deletes an item.

This is equivalent to the Python statement del self[key].

pub fn keys(&self) -> &PyList[src]

Returns a list of dict keys.

This is equivalent to the Python expression list(dict.keys()).

pub fn values(&self) -> &PyList[src]

Returns a list of dict values.

This is equivalent to the Python expression list(dict.values()).

pub fn items(&self) -> &PyList[src]

Returns a list of dict items.

This is equivalent to the Python expression list(dict.items()).

pub fn iter(&self) -> PyDictIterator<'_>[src]

Returns an iterator of (key, value) pairs in this dictionary.

Note that it's unsafe to use when the dictionary might be changed by other code.

Methods from Deref<Target = PyAny>

pub fn downcast<T>(&self) -> Result<&T, PyDowncastError<'_>> where
    T: PyTryFrom<'py>, 
[src]

Convert this PyAny to a concrete Python type.

pub fn hasattr<N>(&self, attr_name: N) -> PyResult<bool> where
    N: ToPyObject
[src]

Determines whether this object has the given attribute.

This is equivalent to the Python expression hasattr(self, attr_name).

pub fn getattr<N>(&self, attr_name: N) -> PyResult<&PyAny> where
    N: ToPyObject
[src]

Retrieves an attribute value.

This is equivalent to the Python expression self.attr_name.

pub fn setattr<N, V>(&self, attr_name: N, value: V) -> PyResult<()> where
    N: ToBorrowedObject,
    V: ToBorrowedObject
[src]

Sets an attribute value.

This is equivalent to the Python expression self.attr_name = value.

pub fn delattr<N>(&self, attr_name: N) -> PyResult<()> where
    N: ToPyObject
[src]

Deletes an attribute.

This is equivalent to the Python expression del self.attr_name.

pub fn compare<O>(&self, other: O) -> PyResult<Ordering> where
    O: ToPyObject
[src]

Compares two Python objects.

This is equivalent to:

if self == other:
    return Equal
elif a < b:
    return Less
elif a > b:
    return Greater
else:
    raise TypeError("PyAny::compare(): All comparisons returned false")

pub fn rich_compare<O>(
    &self,
    other: O,
    compare_op: CompareOp
) -> PyResult<&PyAny> where
    O: ToPyObject
[src]

Compares two Python objects.

Depending on the value of compare_op, this is equivalent to one of the following Python expressions:

  • CompareOp::Eq: self == other
  • CompareOp::Ne: self != other
  • CompareOp::Lt: self < other
  • CompareOp::Le: self <= other
  • CompareOp::Gt: self > other
  • CompareOp::Ge: self >= other

pub fn is_callable(&self) -> bool[src]

Determines whether this object is callable.

pub fn call(
    &self,
    args: impl IntoPy<Py<PyTuple>>,
    kwargs: Option<&PyDict>
) -> PyResult<&PyAny>
[src]

Calls the object.

This is equivalent to the Python expression self(*args, **kwargs).

pub fn call0(&self) -> PyResult<&PyAny>[src]

Calls the object without arguments.

This is equivalent to the Python expression self().

pub fn call1(&self, args: impl IntoPy<Py<PyTuple>>) -> PyResult<&PyAny>[src]

Calls the object with only positional arguments.

This is equivalent to the Python expression self(*args).

pub fn call_method(
    &self,
    name: &str,
    args: impl IntoPy<Py<PyTuple>>,
    kwargs: Option<&PyDict>
) -> PyResult<&PyAny>
[src]

Calls a method on the object.

This is equivalent to the Python expression self.name(*args, **kwargs).

Example

use pyo3::types::IntoPyDict;

let gil = Python::acquire_gil();
let py = gil.python();
let list = vec![3, 6, 5, 4, 7].to_object(py);
let dict = vec![("reverse", true)].into_py_dict(py);
list.call_method(py, "sort", (), Some(dict)).unwrap();
assert_eq!(list.extract::<Vec<i32>>(py).unwrap(), vec![7, 6, 5, 4, 3]);

let new_element = 1.to_object(py);
list.call_method(py, "append", (new_element,), None).unwrap();
assert_eq!(list.extract::<Vec<i32>>(py).unwrap(), vec![7, 6, 5, 4, 3, 1]);

pub fn call_method0(&self, name: &str) -> PyResult<&PyAny>[src]

Calls a method on the object without arguments.

This is equivalent to the Python expression self.name().

pub fn call_method1(
    &self,
    name: &str,
    args: impl IntoPy<Py<PyTuple>>
) -> PyResult<&PyAny>
[src]

Calls a method on the object with only positional arguments.

This is equivalent to the Python expression self.name(*args).

pub fn is_true(&self) -> PyResult<bool>[src]

Returns whether the object is considered to be true.

This is equivalent to the Python expression bool(self).

pub fn is_none(&self) -> bool[src]

Returns whether the object is considered to be None.

This is equivalent to the Python expression self is None.

pub fn is_empty(&self) -> PyResult<bool>[src]

Returns true if the sequence or mapping has a length of 0.

This is equivalent to the Python expression len(self) == 0.

pub fn get_item<K>(&self, key: K) -> PyResult<&PyAny> where
    K: ToBorrowedObject
[src]

Gets an item from the collection.

This is equivalent to the Python expression self[key].

pub fn set_item<K, V>(&self, key: K, value: V) -> PyResult<()> where
    K: ToBorrowedObject,
    V: ToBorrowedObject
[src]

Sets a collection item value.

This is equivalent to the Python expression self[key] = value.

pub fn del_item<K>(&self, key: K) -> PyResult<()> where
    K: ToBorrowedObject
[src]

Deletes an item from the collection.

This is equivalent to the Python expression del self[key].

pub fn iter(&self) -> PyResult<&PyIterator>[src]

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.

pub fn get_type(&self) -> &PyType[src]

Returns the Python type object for this object's type.

pub fn get_type_ptr(&self) -> *mut PyTypeObject[src]

Returns the Python type pointer for this object.

pub fn cast_as<'a, D>(&'a self) -> Result<&'a D, PyDowncastError<'_>> where
    D: PyTryFrom<'a>, 
[src]

Casts the PyObject to a concrete Python object type.

This can cast only to native Python types, not types implemented in Rust.

pub fn extract<'a, D>(&'a self) -> PyResult<D> where
    D: FromPyObject<'a>, 
[src]

Extracts some type from the Python object.

This is a wrapper function around FromPyObject::extract().

pub fn get_refcnt(&self) -> isize[src]

Returns the reference count for the Python object.

pub fn repr(&self) -> PyResult<&PyString>[src]

Computes the "repr" representation of self.

This is equivalent to the Python expression repr(self).

pub fn str(&self) -> PyResult<&PyString>[src]

Computes the "str" representation of self.

This is equivalent to the Python expression str(self).

pub fn hash(&self) -> PyResult<isize>[src]

Retrieves the hash code of self.

This is equivalent to the Python expression hash(self).

pub fn len(&self) -> PyResult<usize>[src]

Returns the length of the sequence or mapping.

This is equivalent to the Python expression len(self).

pub fn dir(&self) -> &PyList[src]

Returns the list of attributes of this object.

This is equivalent to the Python expression dir(self).

pub fn is_instance<T: PyTypeObject>(&self) -> PyResult<bool>[src]

Checks whether this object is an instance of type T.

This is equivalent to the Python expression isinstance(self, T).

Trait Implementations

impl AsPyPointer for PyDict[src]

fn as_ptr(&self) -> *mut PyObject[src]

Gets the underlying FFI pointer, returns a borrowed pointer.

impl AsRef<PyAny> for PyDict[src]

impl Debug for PyDict[src]

impl Deref for PyDict[src]

type Target = PyAny

The resulting type after dereferencing.

impl Display for PyDict[src]

impl From<&'_ PyDict> for Py<PyDict>[src]

impl<'a> From<&'a PyDict> for &'a PyAny[src]

impl<'py> FromPyObject<'py> for &'py PyDict[src]

impl<'a> IntoIterator for &'a PyDict[src]

type Item = (&'a PyAny, &'a PyAny)

The type of the elements being iterated over.

type IntoIter = PyDictIterator<'a>

Which kind of iterator are we turning this into?

impl IntoPy<Py<PyDict>> for &PyDict[src]

impl PartialEq<PyDict> for PyDict[src]

impl PyLayout<PyDict> for PyDictObject[src]

impl PyNativeType for PyDict[src]

impl PySizedLayout<PyDict> for PyDictObject[src]

impl PyTypeInfo for PyDict[src]

type Type = ()

Type of objects to store in PyObject struct

type BaseType = PyAny

Base class

type Layout = PyDictObject

Layout

type BaseLayout = PyObject

Layout of Basetype.

type Initializer = PyNativeTypeInitializer<Self>

Initializer for layout

type AsRefTarget = Self

Utility type to make Py::as_ref work

impl ToPyObject for PyDict[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<'p, T> FromPyPointer<'p> for T where
    T: 'p + PyNativeType
[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<'v, T> PyTryFrom<'v> for T where
    T: PyTypeInfo + PyNativeType
[src]

impl<T> PyTypeObject for T where
    T: PyTypeInfo
[src]

impl<T> ToBorrowedObject for T where
    T: ToPyObject
[src]

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.