ServersDown

Struct ServersDown 

Source
pub struct ServersDown(/* private fields */);
Expand description

Raised when the akinator servers in the requested region are down

Implementations§

Source§

impl ServersDown

Source

pub fn new_err<A>(args: A) -> PyErr
where A: PyErrArguments + Send + Sync + 'static,

Creates a new PyErr of this type.

Methods from Deref<Target = PyAny>§

Source

pub fn downcast<T>(&self) -> Result<&T, PyDowncastError<'_>>
where T: for<'py> 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());
});
Source

pub fn is<T>(&self, other: &T) -> bool
where T: AsPyPointer,

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.

Source

pub fn hasattr<N>(&self, attr_name: N) -> Result<bool, PyErr>
where N: ToPyObject,

Determines whether this object has the given attribute.

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

Source

pub fn getattr<N>(&self, attr_name: N) -> Result<&PyAny, PyErr>
where N: ToPyObject,

Retrieves an attribute value.

This is equivalent to the Python expression self.attr_name.

If calling this method becomes performance-critical, the intern! macro can be used to intern attr_name, thereby avoiding repeated temporary allocations of Python strings.

§Example: intern!ing the attribute name
#[pyfunction]
fn version(sys: &PyModule) -> PyResult<&PyAny> {
    sys.getattr(intern!(sys.py(), "version"))
}
Source

pub fn setattr<N, V>(&self, attr_name: N, value: V) -> Result<(), PyErr>

Sets an attribute value.

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

If calling this method becomes performance-critical, the intern! macro can be used to intern attr_name, thereby avoiding repeated temporary allocations of Python strings.

§Example: intern!ing the attribute name
#[pyfunction]
fn set_answer(ob: &PyAny) -> PyResult<()> {
    ob.setattr(intern!(ob.py(), "answer"), 42)
}
Source

pub fn delattr<N>(&self, attr_name: N) -> Result<(), PyErr>
where N: ToPyObject,

Deletes an attribute.

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

Source

pub fn compare<O>(&self, other: O) -> Result<Ordering, PyErr>
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(())
})?;
Source

pub fn rich_compare<O>( &self, other: O, compare_op: CompareOp, ) -> Result<&PyAny, PyErr>
where O: ToPyObject,

Tests whether two Python objects obey a given CompareOp.

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

compare_opPython expression
CompareOp::Eqself == other
CompareOp::Neself != other
CompareOp::Ltself < other
CompareOp::Leself <= other
CompareOp::Gtself > other
CompareOp::Geself >= 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(())
})?;
Source

pub fn lt<O>(&self, other: O) -> Result<bool, PyErr>
where O: ToPyObject,

Tests whether this object is less than another.

This is equivalent to the Python expression self < other.

Source

pub fn le<O>(&self, other: O) -> Result<bool, PyErr>
where O: ToPyObject,

Tests whether this object is less than or equal to another.

This is equivalent to the Python expression self <= other.

Source

pub fn eq<O>(&self, other: O) -> Result<bool, PyErr>
where O: ToPyObject,

Tests whether this object is equal to another.

This is equivalent to the Python expression self == other.

Source

pub fn ne<O>(&self, other: O) -> Result<bool, PyErr>
where O: ToPyObject,

Tests whether this object is not equal to another.

This is equivalent to the Python expression self != other.

Source

pub fn gt<O>(&self, other: O) -> Result<bool, PyErr>
where O: ToPyObject,

Tests whether this object is greater than another.

This is equivalent to the Python expression self > other.

Source

pub fn ge<O>(&self, other: O) -> Result<bool, PyErr>
where O: ToPyObject,

Tests whether this object is greater than or equal to another.

This is equivalent to the Python expression self >= other.

Source

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.

Source

pub fn call( &self, args: impl IntoPy<Py<PyTuple>>, kwargs: Option<&PyDict>, ) -> Result<&PyAny, PyErr>

Calls the object.

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

Source

pub fn call0(&self) -> Result<&PyAny, PyErr>

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().

Source

pub fn call1(&self, args: impl IntoPy<Py<PyTuple>>) -> Result<&PyAny, PyErr>

Calls the object with only positional arguments.

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

§Examples
use pyo3::prelude::*;

Python::with_gil(|py| -> PyResult<()> {
    let module = PyModule::import(py, "operator")?;
    let add = module.getattr("add")?;
    let args = (1, 2);
    let value = add.call1(args)?;
    assert_eq!(value.extract::<i32>()?, 3);
    Ok(())
})?;

This is equivalent to the following Python code:

from operator import add

value = add(1,2)
assert value == 3
Source

pub fn call_method( &self, name: &str, args: impl IntoPy<Py<PyTuple>>, kwargs: Option<&PyDict>, ) -> Result<&PyAny, PyErr>

Calls a method on the object.

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

§Examples
use pyo3::prelude::*;
use pyo3::types::{IntoPyDict, PyList};

Python::with_gil(|py| -> PyResult<()> {
    let list = PyList::new(py, vec![3, 6, 5, 4, 7]);
    let kwargs = vec![("reverse", true)].into_py_dict(py);

    list.call_method("sort", (), Some(kwargs))?;
    assert_eq!(list.extract::<Vec<i32>>()?, vec![7, 6, 5, 4, 3]);
    Ok(())
})?;

This is equivalent to the following Python code:

my_list = [3, 6, 5, 4, 7]
my_list.sort(reverse = True)
assert my_list == [7, 6, 5, 4, 3]
Source

pub fn call_method0(&self, name: &str) -> Result<&PyAny, PyErr>

Calls a method on the object without arguments.

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

§Examples
use pyo3::prelude::*;
use pyo3::types::PyFloat;
use std::f64::consts::PI;

Python::with_gil(|py| -> PyResult<()> {
    let pi = PyFloat::new(py, PI);
    let ratio = pi.call_method0("as_integer_ratio")?;
    let (a, b) = ratio.extract::<(u64, u64)>()?;
    assert_eq!(a, 884_279_719_003_555);
    assert_eq!(b, 281_474_976_710_656);
    Ok(())
})?;

This is equivalent to the following Python code:

import math

a, b = math.pi.as_integer_ratio()
Source

pub fn call_method1( &self, name: &str, args: impl IntoPy<Py<PyTuple>>, ) -> Result<&PyAny, PyErr>

Calls a method on the object with only positional arguments.

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

§Examples
use pyo3::prelude::*;
use pyo3::types::PyList;

Python::with_gil(|py| -> PyResult<()> {
    let list = PyList::new(py, vec![1, 3, 4]);
    list.call_method1("insert", (1, 2))?;
    assert_eq!(list.extract::<Vec<u8>>()?, [1, 2, 3, 4]);
    Ok(())
})?;

This is equivalent to the following Python code:

list_ = [1,3,4]
list_.insert(1,2)
assert list_ == [1,2,3,4]
Source

pub fn is_true(&self) -> Result<bool, PyErr>

Returns whether the object is considered to be true.

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

Source

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.

Source

pub fn is_empty(&self) -> Result<bool, PyErr>

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

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

Source

pub fn get_item<K>(&self, key: K) -> Result<&PyAny, PyErr>

Gets an item from the collection.

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

Source

pub fn set_item<K, V>(&self, key: K, value: V) -> Result<(), PyErr>

Sets a collection item value.

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

Source

pub fn del_item<K>(&self, key: K) -> Result<(), PyErr>

Deletes an item from the collection.

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

Source

pub fn iter(&self) -> Result<&PyIterator, PyErr>

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.

Source

pub fn get_type(&self) -> &PyType

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

Source

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

Returns the Python type pointer for this object.

Source

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

Casts the PyObject to a concrete Python object type.

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

Source

pub fn extract<'a, D>(&'a self) -> Result<D, PyErr>
where D: FromPyObject<'a>,

Extracts some type from the Python object.

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

Source

pub fn get_refcnt(&self) -> isize

Returns the reference count for the Python object.

Source

pub fn repr(&self) -> Result<&PyString, PyErr>

Computes the “repr” representation of self.

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

Source

pub fn str(&self) -> Result<&PyString, PyErr>

Computes the “str” representation of self.

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

Source

pub fn hash(&self) -> Result<isize, PyErr>

Retrieves the hash code of self.

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

Source

pub fn len(&self) -> Result<usize, PyErr>

Returns the length of the sequence or mapping.

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

Source

pub fn dir(&self) -> &PyList

Returns the list of attributes of this object.

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

Source

pub fn is_instance(&self, typ: &PyType) -> Result<bool, PyErr>

Checks whether this object is an instance of type typ.

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

Source

pub fn is_instance_of<T>(&self) -> Result<bool, PyErr>
where T: PyTypeObject,

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.

Source

pub fn contains<V>(&self, value: V) -> Result<bool, PyErr>

Determines if self contains value.

This is equivalent to the Python expression value in self.

Source

pub fn py(&self) -> Python<'_>

Returns a GIL marker constrained to the lifetime of this type.

Trait Implementations§

Source§

impl AsPyPointer for ServersDown

Source§

fn as_ptr(&self) -> *mut PyObject

Gets the underlying FFI pointer, returns a borrowed pointer.

Source§

impl AsRef<PyAny> for ServersDown

Source§

fn as_ref(&self) -> &PyAny

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl Debug for ServersDown

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl Display for ServersDown

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl Error for ServersDown

Source§

fn source(&self) -> Option<&(dyn Error + 'static)>

Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · Source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
Source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type-based access to context intended for error reports. Read more
Source§

impl<'a> From<&'a ServersDown> for &'a PyAny

Source§

fn from(ob: &'a ServersDown) -> Self

Converts to this type from the input type.
Source§

impl From<&ServersDown> for Py<ServersDown>

Source§

fn from(other: &ServersDown) -> Self

Converts to this type from the input type.
Source§

impl From<&ServersDown> for PyErr

Source§

fn from(err: &ServersDown) -> PyErr

Converts to this type from the input type.
Source§

impl<'py> FromPyObject<'py> for &'py ServersDown

Source§

fn extract(obj: &'py PyAny) -> PyResult<Self>

Extracts Self from the source PyObject.
Source§

impl IntoPy<Py<ServersDown>> for &ServersDown

Source§

fn into_py(self, py: Python<'_>) -> Py<ServersDown>

Performs the conversion.
Source§

impl PyNativeType for ServersDown

Source§

fn py(&self) -> Python<'_>

Returns a GIL marker constrained to the lifetime of this type.
Source§

unsafe fn unchecked_downcast(obj: &PyAny) -> &Self

Cast &PyAny to &Self without no type checking. Read more
Source§

impl PyTypeInfo for ServersDown

Source§

const NAME: &'static str = "ServersDown"

Class name.
Source§

const MODULE: Option<&'static str>

Module name, if any.
Source§

type AsRefTarget = ServersDown

Utility type to make Py::as_ref work.
Source§

fn type_object_raw(_py: Python<'_>) -> *mut PyTypeObject

PyTypeObject instance for this type.
Source§

fn is_type_of(object: &PyAny) -> bool

Checks if object is an instance of this type or a subclass of this type.
Source§

fn is_exact_type_of(object: &PyAny) -> bool

Checks if object is an instance of this type.
Source§

impl ToPyObject for ServersDown

Source§

fn to_object(&self, py: Python<'_>) -> PyObject

Converts self into a Python object.
Source§

impl Deref for ServersDown

Source§

type Target = PyAny

The resulting type after dereferencing.
Source§

fn deref(&self) -> &PyAny

Dereferences the value.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

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

Source§

unsafe fn from_owned_ptr_or_opt( py: Python<'p>, ptr: *mut PyObject, ) -> Option<&'p T>

Convert from an arbitrary PyObject. Read more
Source§

unsafe fn from_borrowed_ptr_or_opt( _py: Python<'p>, ptr: *mut PyObject, ) -> Option<&'p T>

Convert from an arbitrary borrowed PyObject. Read more
Source§

unsafe fn from_owned_ptr_or_panic( py: Python<'p>, ptr: *mut PyObject, ) -> &'p Self

Convert from an arbitrary PyObject or panic. Read more
Source§

unsafe fn from_owned_ptr(py: Python<'p>, ptr: *mut PyObject) -> &'p Self

Convert from an arbitrary PyObject or panic. Read more
Source§

unsafe fn from_owned_ptr_or_err( py: Python<'p>, ptr: *mut PyObject, ) -> Result<&'p Self, PyErr>

Convert from an arbitrary PyObject. Read more
Source§

unsafe fn from_borrowed_ptr_or_panic( py: Python<'p>, ptr: *mut PyObject, ) -> &'p Self

Convert from an arbitrary borrowed PyObject. Read more
Source§

unsafe fn from_borrowed_ptr(py: Python<'p>, ptr: *mut PyObject) -> &'p Self

Convert from an arbitrary borrowed PyObject. Read more
Source§

unsafe fn from_borrowed_ptr_or_err( py: Python<'p>, ptr: *mut PyObject, ) -> Result<&'p Self, PyErr>

Convert from an arbitrary borrowed PyObject. Read more
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<'v, T> PyTryFrom<'v> for T

Source§

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.
Source§

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.
Source§

unsafe fn try_from_unchecked<V>(value: V) -> &'v T
where V: Into<&'v PyAny>,

Cast a PyAny to a specific type of PyObject. The caller must have already verified the reference is for this type. Read more
Source§

impl<T> PyTypeObject for T
where T: PyTypeInfo,

Source§

fn type_object(py: Python<'_>) -> &PyType

Returns the safe abstraction over the type object.
Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T> ToBorrowedObject for T
where T: ToPyObject,

Source§

fn with_borrowed_ptr<F, R>(&self, py: Python<'_>, f: F) -> R
where F: FnOnce(*mut PyObject) -> R,

Converts self into a Python object and calls the specified closure on the native FFI pointer underlying the Python object. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,