This project is a Python 3.12 utility for downloading, verifying, and managing drivers and related files from various sources, and optionally uploading them to a remote archive. It includes functionality for chunked asynchronous downloads, metadata handling, archiving through various storage backends, and optional email integration for notifications. The architecture is modular, with dedicated components for database handling, email operations, interactions with storage providers, and portal-like operations for organizing metadata.
- Asynchronous, chunked file downloads with range support
- Pluggable storage and metadata management
- Email client integration for notifications or workflow automation
- Parallel and robust workflow with graceful shutdown handling
- Integration with internet archive
- Detailed logging and progress tracking
- Conversion between sqlite and json format
- Python 3.12.8 is required.
- macOS Sonoma (aarch64) recommended for maximum compatibility.
- uv package manager, which is compatible with
poetry
CLI syntax.
(If you don't haveuv
, please see the docs)
-
Clone the Repository
git clone <your-repo-url> cd <your-repo-directory>
-
Install Dependencies
uv install # or to only install dependencies uv sync
-
Configuration
Rename theconfig.example/
dir intoconfig/
and edit it -
Running the Application
uv run python main.py --help
Db schema could change after code is updated, but most changes can be solved automatically by dumping to json (from old ver.) and reimport the json (in the new ver.)