##// END OF EJS Templates
copy: move argument validation a little earlier...
copy: move argument validation a little earlier Argument validation is usually done early and I will want it done before some code that I'm about to add. Differential Revision: https://phab.mercurial-scm.org/D8033

File last commit:

r43526:8a6df4e4 default
r44846:d8b49bf6 default
Show More
utils.rs
13 lines | 538 B | application/rls-services+xml | RustLexer
Raphaël Gomès
rust-utils: introduce a debug util to print the python stack trace...
r43545 use cpython::{PyDict, PyObject, PyResult, PyTuple, Python};
#[allow(unused)]
pub fn print_python_trace(py: Python) -> PyResult<PyObject> {
eprintln!("===============================");
eprintln!("Printing Python stack from Rust");
eprintln!("===============================");
let traceback = py.import("traceback")?;
let sys = py.import("sys")?;
let kwargs = PyDict::new(py);
kwargs.set_item(py, "file", sys.get(py, "stderr")?)?;
traceback.call(py, "print_stack", PyTuple::new(py, &[]), Some(&kwargs))
}