refactor: decompose CLI into commands, fix clippy, improve error handling

- Decompose main.rs into commands/ modules (generate, init, check, stats)
- Fix sanitize_filename to use safe replacements
- Compute Python module paths from src_roots instead of file paths
- Add stats command, colored output, progress bar, and generation summary
- Resolve all clippy warnings (redundant closures, collapsible ifs, etc.)
- Replace last unwrap() with proper error handling
- Add target/ to .gitignore, remove target/ artifacts from git tracking
This commit is contained in:
2026-02-15 03:21:36 +03:00
parent 736909ac3d
commit 9f823d2a2a
16 changed files with 626 additions and 3400 deletions

View File

@@ -20,6 +20,12 @@ pub struct Renderer {
templates: Handlebars<'static>,
}
impl Default for Renderer {
fn default() -> Self {
Self::new()
}
}
impl Renderer {
pub fn new() -> Self {
let mut handlebars = Handlebars::new();
@@ -393,7 +399,7 @@ impl Renderer {
// Collect layout information from files
let mut layout_items = Vec::new();
for (_file_id, file_doc) in &model.files {
for file_doc in model.files.values() {
layout_items.push(serde_json::json!({
"path": file_doc.path,
"purpose": "Source file",
@@ -525,7 +531,7 @@ impl Renderer {
// Collect layout information from files
let mut layout_items = Vec::new();
for (_file_id, file_doc) in &model.files {
for file_doc in model.files.values() {
layout_items.push(serde_json::json!({
"path": file_doc.path,
"purpose": "Source file",