add project tooling and test suite for many-rsync

- Add pyproject.toml: hatchling build, many-rsync entrypoint, ruff/mypy/pytest config
with 60% coverage floor
- Add uv.lock for reproducible dev installs
- Add .pre-commit-config.yaml: ruff (with --fix) + mypy hooks
- Add test_main.py: unit tests for _build_rsync_cmd, _load_raw, and load_config
covering happy paths and FATAL exit cases
- Add explanation.md: architecture overview with flowchart
- main.py: refactor into typed, testable functions (_load_raw, _build_rsync_cmd
extracted); add RsyncParameters/Config TypedDicts; add rsync_parameters config support
(rsync_path, exclude_from); harden validation (n clamped, log_level validated)
- README.md: update install instructions and document all config fields including
rsync_parameters
This commit is contained in:
2026-03-31 22:05:08 +03:00
parent 4f6ef3d179
commit a168b4cbea
7 changed files with 796 additions and 20 deletions

View File

@@ -4,6 +4,20 @@
rsync a set of folders to the remote in parallel.
### how to use it
Install to ~/.local/bin:
```sh
uv tool install .
```
After code changes, reinstall:
```sh
uv tool install --force .
```
### config
use TOML (preferred) or JSON.