Files
wtismycode/PR_DESCRIPTION.md
Arkasha c095560e13 feat: improve documentation quality with real data
- Extract file-level docstrings from Python files (module-level string expressions)
- Use __init__.py docstrings as module doc_summary
- Use file docstrings as file purpose in layout tables (instead of 'Source file')
- Populate module outbound_modules/inbound_modules from import edges (internal only)
- Make filename sanitization consistent (sanitize_for_link matches sanitize_filename)
- Clean up stale .md files from previous runs before generating
- Fill ARCHITECTURE.md template with real layout, modules index, and critical points
- Add file_docstring field to ParsedModule and file_purpose to FileDoc
2026-02-15 04:10:20 +03:00

2.4 KiB

PR: Major improvements to ArchDoc

Summary

Comprehensive refactoring and feature additions to ArchDoc — the Python architecture documentation generator. This PR improves code quality, adds new features, and significantly enhances the development experience.

Stats: 24 files changed, ~3900 insertions, ~1400 deletions, 50 tests

Changes

🏗️ Architecture

  • Decomposed monolithic main.rs into commands/ module structure (generate, init, check, stats)
  • Added workspace Cargo.toml for unified builds across both crates
  • New cycle_detector module with DFS-based dependency cycle detection

🐍 Python Analyzer

  • Full AST traversal — properly walks all statement types (if/for/while/try/with/match)
  • Function signatures — extracts parameter names, types, defaults, return types
  • Method detection — distinguishes methods from standalone functions via self/cls parameter
  • Docstring extraction — parses first line of docstrings for symbol documentation
  • Module path computation — correctly computes module IDs from src_roots config

New Features

  • stats command — project statistics with colored output and progress bar
  • Config validation — validates project root, language, scan paths, cache age, file size formats
  • Cycle detection — finds circular dependencies in module graph, shown in critical points section
  • --dry-run flag — preview what would be generated without writing files
  • Dynamic project data — uses config project name and current date instead of hardcoded values
  • Real usage examples — generates Python import/call examples from analyzed symbols
  • Skip-unchanged optimization — writer skips files that haven't changed

🧹 Code Quality

  • Zero unwrap() calls in non-test code — proper error handling throughout
  • Zero clippy warnings — all lints resolved
  • 50 tests — unit tests for config validation, cycle detection, caching, integration detection, error handling, and full pipeline integration tests

📚 Documentation

  • README.md — badges, full command reference, configuration table, architecture overview
  • CHANGELOG.md — complete changelog for this branch

Testing

cargo test        # 50 tests, all passing
cargo clippy      # 0 warnings
cargo build       # clean build

Breaking Changes

None. All existing functionality preserved.