diff --git a/crates/ruff_python_spo/examples/plain_propose.rs b/crates/ruff_python_spo/examples/plain_propose.rs new file mode 100644 index 00000000000000..e66376f149a13c --- /dev/null +++ b/crates/ruff_python_spo/examples/plain_propose.rs @@ -0,0 +1,73 @@ +//! Dev probe: run the plain-Python residual proposer over 2+ corpora and +//! print candidate config rows as TOML — data, not Rust — with each row's +//! `scope` (`generic` iff it cleared `min_support` in EVERY supplied +//! corpus, `corpus_scoped` otherwise). See `drill.rs`'s module doc for +//! exactly what this claims (grouping + classification) and what it does +//! NOT claim (a promotion gate — that needs a config-consuming +//! extractor this probe does not build). +//! +//! Usage: `cargo run -p ruff_python_spo --example plain_propose -- \ +//! = [= ...]` +//! (2+ corpora required — see `classify_across_corpora`'s doc comment.) + +#![expect( + clippy::print_stdout, + reason = "a dev probe's stdout report IS its deliverable" +)] + +use std::path::Path; + +use ruff_python_spo::{RowScope, classify_across_corpora, extract_plain_with_residuals}; + +fn main() { + let mut args = std::env::args().skip(1); + let min_support: usize = args + .next() + .expect("usage: plain_propose