38 Commits

Author SHA1 Message Date
6a28c7940d Release version 0.1.0 latest v0.1.0 2025-12-10 09:51:53 +01:00
039481d3a9 This commit introduces a complete structural and architectural refactor of
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
2025-12-10 09:47:19 +01:00
b55576beb2 Refactor CodeProcessor to use safe state-machine and tokenize-based stripping, add Jinja {# #} support, and introduce unit tests with Makefile targets
- Added LanguageSpec dataclass and mapping for extensions
- Implemented state-machine for C/CPP/JS comment stripping (handles strings correctly)
- Improved Python comment/docstring removal using tokenize
- Added regex-based stripping for hash (#) and Jinja {# #} comments
- Added Makefile with test and install targets
- Added unit test suite under tests/unit covering Python, C-style, hash, and Jinja cases
- Added compress/decompress roundtrip test
- Added directory handler tests

See: https://chatgpt.com/share/68e0250f-40d4-800f-911d-2b4700246574
2025-10-03 21:34:02 +02:00
c5938cf482 Optimized parameter 2025-07-09 16:59:18 +02:00
847b40e9e6 Added binary ignoration 2025-04-15 22:11:01 +02:00
69477fa29e Optimized gitignore function 2025-04-15 22:02:59 +02:00
ab62b4d1b9 Renamed .gitignore 2025-04-15 21:54:22 +02:00
485f068fa5 Ignored __pycache__ 2025-04-15 21:53:48 +02:00
bf2f548a1f Refactored 2025-04-15 21:52:42 +02:00
11b325ee25 Added automatic ignore option for .gitignore 2025-04-15 21:47:41 +02:00
4953993321 Added Funding 2025-03-12 20:47:42 +01:00
49601176e0 Merge branch 'main' of github.com:kevinveenbirkenbach/analysis-ready-code 2025-03-12 11:14:39 +01:00
b822435762 renamed main.py 2025-03-12 10:49:36 +01:00
843b16563e renamed main.py 2025-03-12 10:38:59 +01:00
9de33b67db renamed to main.py to make it installable 2025-03-06 10:10:09 +01:00
bef5f392d7 Update README.md 2025-03-04 19:13:35 +01:00
efcfc585d7 Added instructions for path independend execution 2024-12-01 14:37:43 +01:00
095701e304 Added logic to remove bash and shell comments 2024-07-21 09:22:53 +02:00
c950a42ca9 Updated README.md 2024-06-18 19:05:46 +02:00
68aa8628e1 Solved bvug 2023-12-18 14:08:23 +01:00
0a315ad6ea changed to path contains 2023-12-16 20:12:41 +01:00
435df90709 implemented or for content-contains and file-name-contains 2023-12-16 20:11:23 +01:00
4cd687052e added detailed description 2023-12-16 18:30:01 +01:00
e78834da08 implemented string whitelist 2023-12-15 13:42:52 +01:00
36c5b62812 shortend description tags 2023-09-15 14:07:19 +02:00
ba2a345305 implemented also filter for files 2023-09-14 18:40:07 +02:00
632334f574 Solved commit bug 2023-09-14 18:18:27 +02:00
1fbf43bfeb Refactored to class 2023-09-14 18:00:43 +02:00
ab609af3bd Implemented filter by string 2023-09-14 17:52:49 +02:00
72cc7b581b added compress function 2023-09-14 08:54:21 +02:00
47425f1ad6 added no-comments filter 2023-09-14 08:41:20 +02:00
fc19546378 Accepted now all paths 2023-09-14 08:02:05 +02:00
100f5267f0 Ignored hidden files 2023-09-14 07:50:13 +02:00
fbfae9e400 Added more options to scanner 2023-09-14 07:41:37 +02:00
3ac9e52206 Added the option to pass multiple directories 2023-09-13 17:13:02 +02:00
07bc9e000c Create scan.sh 2023-09-02 17:00:45 +02:00
05be0e33aa Create README.md 2023-09-02 16:59:06 +02:00
d9864c0bfc Initial commit 2023-09-02 16:35:30 +02:00