Analysis-Ready Code (ARC). The project is now fully migrated to a modern
src/-based Python package layout, with proper packaging via pyproject.toml,
a clean Nix flake, and improved CLI entry points.
Major changes:
• Add `src/arc/` package with clean module structure:
- arc/__init__.py now contains the main() dispatcher and clipboard helpers
- arc/__main__.py provides a proper `python -m arc` entry point
- arc/cli.py rewritten with full argparse-based interface
- arc/code_processor.py modernized and relocated
- arc/directory_handler.py rewritten with output_stream support
- arc/tee.py added for multi-stream output (stdout + buffer)
• Remove legacy top-level modules:
- cli.py
- directory_handler.py
- main.py
• Introduce fully PEP-517 compliant pyproject.toml with console script:
- arc = arc.__main__:main
• Add Nix flake (`flake.nix`) providing:
- buildPythonApplication package `arc`
- `nix run .#arc` app
- development shell with Python + xclip
• Add Makefile overhaul:
- automatic detection of Nix vs Python installation
- unified install/uninstall targets
- Nix wrapper installation into ~/.local/bin
- improved help text and shell safety
• Add GitHub CI pipelines:
- ci-python.yml for Python builds + Makefile tests + arc --help
- ci-nix.yml for Nix builds, flake checks, dev-shell tests, and `nix run .#arc`
• Refactor and extend unit tests:
- test_arc.py updated for src/ imports
- new tests: test_cli.py, test_main.py, test_tee.py
- improved CodeProcessor and DirectoryHandler tests
• Add egg-info metadata for local builds
• Add build/lib/ tree for compatibility with setuptools (generated)
Overall, this commit modernizes ARC into a clean, robust, and fully packaged
Python/Nix hybrid tool, enabling reproducible builds, solid CLI behavior,
testable architecture, and CI automation.
https://chatgpt.com/share/693933a0-e280-800f-9cf0-26036d15be04