##// END OF EJS Templates
fsmonitor: migrate Python ABCs from collections to collections.abc...
fsmonitor: migrate Python ABCs from collections to collections.abc The Collections Abstract Base Classes in the collections module are deprecated since Python 3.3 in favor of collections.abc, and removed in Python 3.10.

File last commit:

r49214:a19d1225 default
r50390:59a72267 default
Show More
dirstate.rs
70 lines | 2.0 KiB | application/rls-services+xml | RustLexer
Raphaël Gomès
rust-dirstate: add rust-cpython bindings to the new parse/pack functions...
r42489 // dirstate.rs
//
// Copyright 2019 Raphaël Gomès <rgomes@octobus.net>
//
// This software may be used and distributed according to the terms of the
// GNU General Public License version 2 or any later version.
//! Bindings for the `hg::dirstate` module provided by the
//! `hg-core` package.
//!
//! From Python, this will be seen as `mercurial.rustext.dirstate`
Raphaël Gomès
rust-dirstate: rust-cpython bridge for dirstatemap...
r42999 mod copymap;
Raphaël Gomès
rust-dirstate: create dirstate submodule in hg-cpython...
r42991 mod dirs_multiset;
Raphaël Gomès
rust-dirstate: rust-cpython bridge for dirstatemap...
r42999 mod dirstate_map;
Simon Sapin
rust: Add Python bindings for DirstateEntry as rustext.dirstate.DirstateItem...
r48857 mod item;
Raphaël Gomès
rust-dirstate-status: rust-cpython bindings for `dirstate.status`...
r43567 mod status;
Simon Sapin
rust: Add Python bindings for DirstateEntry as rustext.dirstate.DirstateItem...
r48857 use self::item::DirstateItem;
Raphaël Gomès
rust-status: update rust-cpython bridge to account for the changes in core...
r45016 use crate::{
dirstate::{
dirs_multiset::Dirs, dirstate_map::DirstateMap, status::status_wrapper,
},
exceptions,
Raphaël Gomès
rust-dirstate-status: rust-cpython bindings for `dirstate.status`...
r43567 };
Simon Sapin
dirstate: Use the Rust implementation of DirstateItem when Rust is enabled...
r48858 use cpython::{PyBytes, PyDict, PyList, PyModule, PyObject, PyResult, Python};
Simon Sapin
dirstate-v2: Change the on-disk format when the requirement is enabled...
r48055 use hg::dirstate_tree::on_disk::V2_FORMAT_MARKER;
dirstate-item: also build DistateItem in dirstate.directories()...
r48367
Raphaël Gomès
rust-dirstate: add rust-cpython bindings to the new parse/pack functions...
r42489 /// Create the module, with `__package__` given from parent
pub fn init_module(py: Python, package: &str) -> PyResult<PyModule> {
let dotted_name = &format!("{}.dirstate", package);
let m = PyModule::new(py, dotted_name)?;
Raphaël Gomès
rust-dirstate: add "dirs" rust-cpython binding...
r42737
Raphaël Gomès
rust-cpython: switch logging facade from `simple_logger` to `env_logger`...
r46090 env_logger::init();
Raphaël Gomès
rust: add logging utils...
r45027
Raphaël Gomès
rust-dirstate: add rust-cpython bindings to the new parse/pack functions...
r42489 m.add(py, "__package__", package)?;
m.add(py, "__doc__", "Dirstate - Rust implementation")?;
Raphaël Gomès
rust-status: update rust-cpython bridge to account for the changes in core...
r45016 m.add(
py,
"FallbackError",
py.get_type::<exceptions::FallbackError>(),
)?;
Raphaël Gomès
rust-dirstate: add "dirs" rust-cpython binding...
r42737 m.add_class::<Dirs>(py)?;
Raphaël Gomès
rust-dirstate: rust-cpython bridge for dirstatemap...
r42999 m.add_class::<DirstateMap>(py)?;
Simon Sapin
rust: Add Python bindings for DirstateEntry as rustext.dirstate.DirstateItem...
r48857 m.add_class::<DirstateItem>(py)?;
Simon Sapin
dirstate-v2: Change the on-disk format when the requirement is enabled...
r48055 m.add(py, "V2_FORMAT_MARKER", PyBytes::new(py, V2_FORMAT_MARKER))?;
Raphaël Gomès
rust-dirstate-status: rust-cpython bindings for `dirstate.status`...
r43567 m.add(
py,
"status",
py_fn!(
py,
status_wrapper(
dmap: DirstateMap,
root_dir: PyObject,
Raphaël Gomès
rust-dirstate-status: update bridge for new rust version of `dirstate.status`...
r44368 matcher: PyObject,
Raphaël Gomès
rust-status: update rust-cpython bridge to account for the changes in core...
r45016 ignorefiles: PyList,
check_exec: bool,
list_clean: bool,
list_ignored: bool,
Raphaël Gomès
rust-hg-cpython: update status bridge with the new `traversedir` support...
r45354 list_unknown: bool,
collect_traversed_dirs: bool
Raphaël Gomès
rust-dirstate-status: rust-cpython bindings for `dirstate.status`...
r43567 )
),
)?;
Raphaël Gomès
rust-dirstate: add "dirs" rust-cpython binding...
r42737
Raphaël Gomès
rust-dirstate: add rust-cpython bindings to the new parse/pack functions...
r42489 let sys = PyModule::import(py, "sys")?;
let sys_modules: PyDict = sys.get(py, "modules")?.extract(py)?;
sys_modules.set_item(py, dotted_name, &m)?;
Ok(m)
}