Trait pyo3::types::PyTracebackMethods

source ·
pub trait PyTracebackMethods<'py>: Sealed {
    // Required method
    fn format(&self) -> PyResult<String>;
Expand description

Implementation of functionality for PyTraceback.

These methods are defined for the Bound<'py, PyTraceback> smart pointer, so to use method call syntax these methods are separated into a trait, because stable Rust does not yet support arbitrary_self_types.

Required Methods§


fn format(&self) -> PyResult<String>

Formats the traceback as a string.

This does not include the exception type and value. The exception type and value can be formatted using the Display implementation for PyErr.


The following code formats a Python traceback and exception pair from Rust:

Python::with_gil(|py| {
    let err = py
        .run_bound("raise Exception('banana')", None, None)
        .expect_err("raise will create a Python error");

    let traceback = err.traceback_bound(py).expect("raised exception will have a traceback");
        format!("{}{}", traceback.format()?, err),
Traceback (most recent call last):
  File \"<string>\", line 1, in <module>
Exception: banana\