Mercurial > public > mercurial-scm > hg
comparison rust/hg-cpython/src/utils.rs @ 52046:de317a87ea6a
rust-pathauditor: match more of Python's behavior and display messages
We will make use of the path auditor when running our update fast-path,
and we want to output of it to be close enough.
author | Rapha?l Gom?s <rgomes@octobus.net> |
---|---|
date | Wed, 02 Oct 2024 20:29:48 +0200 |
parents | 28a0eb21ff04 |
children | e698e3e75420 |
comparison
equal
deleted
inserted
replaced
52045:a8cf6a852f11 | 52046:de317a87ea6a |
---|---|
1 use cpython::exc::ValueError; | 1 use cpython::exc::ValueError; |
2 use cpython::{PyBytes, PyDict, PyErr, PyObject, PyResult, PyTuple, Python}; | 2 use cpython::{ |
3 ObjectProtocol, PyBytes, PyDict, PyErr, PyObject, PyResult, PyTuple, | |
4 Python, ToPyObject, | |
5 }; | |
3 use hg::config::Config; | 6 use hg::config::Config; |
4 use hg::errors::HgError; | 7 use hg::errors::HgError; |
5 use hg::repo::{Repo, RepoError}; | 8 use hg::repo::{Repo, RepoError}; |
6 use hg::revlog::Node; | 9 use hg::revlog::Node; |
7 use hg::utils::files::get_path_from_bytes; | 10 use hg::utils::files::get_path_from_bytes; |
33 log::trace!("Update from null fallback: {}", as_string); | 36 log::trace!("Update from null fallback: {}", as_string); |
34 PyErr::new::<FallbackError, _>(py, &as_string) | 37 PyErr::new::<FallbackError, _>(py, &as_string) |
35 } | 38 } |
36 HgError::RaceDetected(_) => { | 39 HgError::RaceDetected(_) => { |
37 unreachable!("must not surface to the user") | 40 unreachable!("must not surface to the user") |
41 } | |
42 HgError::Path(path_error) => { | |
43 let msg = PyBytes::new(py, path_error.to_string().as_bytes()); | |
44 let cls = py | |
45 .import("mercurial.error") | |
46 .and_then(|m| m.get(py, "InputError")) | |
47 .unwrap(); | |
48 PyErr::from_instance( | |
49 py, | |
50 cls.call(py, (msg,), None).ok().into_py_object(py), | |
51 ) | |
38 } | 52 } |
39 e => PyErr::new::<cpython::exc::RuntimeError, _>(py, e.to_string()), | 53 e => PyErr::new::<cpython::exc::RuntimeError, _>(py, e.to_string()), |
40 }) | 54 }) |
41 } | 55 } |
42 | 56 |