Create a separate dev crate for development scripts (#607)

This commit is contained in:
Charlie Marsh
2022-11-05 15:59:18 -04:00
committed by GitHub
parent 2e1799dd80
commit 6741ea9790
10 changed files with 110 additions and 45 deletions

View File

@@ -0,0 +1,25 @@
//! Run round-trip source code generation on a given Python file.
use std::path::PathBuf;
use anyhow::Result;
use clap::Args;
use ruff::code_gen::SourceGenerator;
use ruff::fs;
use rustpython_parser::parser;
#[derive(Args)]
pub struct Cli {
/// Python file to round-trip.
#[arg(required = true)]
file: PathBuf,
}
pub fn main(cli: &Cli) -> Result<()> {
let contents = fs::read_file(&cli.file)?;
let python_ast = parser::parse_program(&contents, &cli.file.to_string_lossy())?;
let mut generator = SourceGenerator::new();
generator.unparse_suite(&python_ast)?;
println!("{}", generator.generate()?);
Ok(())
}