1. download_entry_t pydantic model (frozen=True) replaces tuples; 2. download_t class with async run(), _download_one(), _run_parallel(), _run_aria2c_batch(); 3. asyncio.Semaphore for -j concurrency, run_in_executor for blocking I/O; 4. .part file pattern: download to dest.pkg.part, rename on success; 5. curl -C - and aria2c --continue=true for resume support; 6. curl/aria2c stdout/stderr redirected to devnull; 7. --dry-run, --verify-checksum BooleanOptionalAction flags; 8. --progress-mode plain|interactive using terminal.py renderer; 9. progress_t with byte-based ETA (when --size= available) and pkg-rate fallback; 10. parse --size=BYTES and --hash=sha256: from compiled requirements; 11. update test_cli.py downloader tests for .part rename and **kwargs; 12. update test_download_cli.py for pydantic model and new progress_t constructor; |
||
|---|---|---|
| .vscode | ||
| d1 | ||
| d2/gamepad | ||
| deps | ||
| docker | ||
| dotfiles | ||
| meson | ||
| mypy-stubs | ||
| platform_dotfiles | ||
| platform_dotfiles_gpg/ideapad_slim_3_15arp10 | ||
| python | ||
| releases | ||
| .dockerignore | ||
| .editorconfig | ||
| .env.examples | ||
| .gitattributes | ||
| .gitignore | ||
| .gitmodules | ||
| docker-compose.local.yml | ||
| docker-compose.yml | ||
| Makefile | ||
| osx-brew.txt | ||