Download model files from local paths, HTTP, S3-compatible storage, GCS, and Git LFS.
Project description
model-downloader-util
Download or resolve model files from local paths, HTTP(S), S3-compatible storage (S3, MinIO, RustFS), Google Cloud Storage, and Git LFS.
Install
pip install modeldownloaderutil
From source:
uv sync
Usage
from modeldownloaderutil import download_model, cache_dir
path = download_model("s3://my-bucket/models/weights.onnx")
path = download_model("https://example.com/model.onnx", force_download=True)
Supported sources
| Scheme | Example |
|---|---|
| Local | /path/to/model.onnx, ~/models/x.onnx |
| HTTP(S) | https://host/path/model.onnx |
| S3 | s3://bucket/key |
| MinIO | minio://bucket/key (MINIO_ENDPOINT) |
| RustFS | rustfs://bucket/key (RUSTFS_ENDPOINT) |
| GCS | gs://bucket/object |
| Git LFS | git+https://github.com/org/repo.git#path/in/repo.onnx |
Cache
Default: platformdirs cache for model_registry (override with MODEL_CACHE_DIR).
<cache>/
s3/<bucket>/<key>
gs/<bucket>/<object>
url/<host>/<path>
git/<repo_slug>/<file_path>
git/<repo_slug>.lock # serializes parallel Git / Git LFS pulls for the same repo
Progress
HTTP(S), S3/MinIO/RustFS, GCS, and Git LFS show tqdm byte bars. Plain Git clones/pulls stream native git --progress to stderr. Disable with MODEL_DOWNLOAD_PROGRESS=0 (or TQDM_DISABLE=1).
Environment
Copy .env.example to .env in the project root (loaded automatically on download_model).
| Variable | Purpose |
|---|---|
MODEL_CACHE_DIR |
Download cache root (cache_dir()) |
MODEL_DOWNLOAD_PROGRESS |
Set to 0/false to disable tqdm progress bars |
RUSTFS_ENDPOINT |
Required for rustfs:// URLs |
MINIO_ENDPOINT |
Required for minio:// URLs |
MODEL_ACCESS_KEY / MODEL_SECRET_KEY |
S3-compatible credentials |
Development
make test
make build
Publish to PyPI
Create an API token at pypi.org (scope: project modeldownloaderutil or entire account).
export UV_PUBLISH_TOKEN=pypi-xxxxxxxx
make publish
Dry run on TestPyPI first:
export UV_PUBLISH_TOKEN=pypi-xxxxxxxx
make publish-test
pip install --index-url https://test.pypi.org/simple/ modeldownloaderutil
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file modeldownloaderutil-1.0.8.tar.gz.
File metadata
- Download URL: modeldownloaderutil-1.0.8.tar.gz
- Upload date:
- Size: 45.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
47c0d5fd4b005cc071a025f342fea2f66d2fce5909b9e6ad63bbe07eb74f1e89
|
|
| MD5 |
d200416c00f9f986e825db3246db308e
|
|
| BLAKE2b-256 |
b4d844589f5a102f2c4451f21ef0a70e854a8cbf6aa9184e5e81761eaa7b3714
|
File details
Details for the file modeldownloaderutil-1.0.8-py3-none-any.whl.
File metadata
- Download URL: modeldownloaderutil-1.0.8-py3-none-any.whl
- Upload date:
- Size: 15.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f18d5a5d8528ec6961511da47806f1ae5eb8f090a39b4c9636a60eb625d1312b
|
|
| MD5 |
c564c47421c619d4fba5d9ba421d0560
|
|
| BLAKE2b-256 |
a162a3fe9fd4aefcb3639426e5f71408909bf44c513d49db4ebe1d891b28cae5
|