Skip to main content

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

modeldownloaderutil-1.0.7.tar.gz (45.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

modeldownloaderutil-1.0.7-py3-none-any.whl (15.2 kB view details)

Uploaded Python 3

File details

Details for the file modeldownloaderutil-1.0.7.tar.gz.

File metadata

  • Download URL: modeldownloaderutil-1.0.7.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

Hashes for modeldownloaderutil-1.0.7.tar.gz
Algorithm Hash digest
SHA256 d50a4e881db8d53ddb5451e86b1c614f15afba52f08f21735190f160ddb03122
MD5 368f916b3fab9fcf8a7aa9642e63a518
BLAKE2b-256 a9c3820956da4e54ee8481a224756fd3791ca3092f149817b30035bbd0ad67d1

See more details on using hashes here.

File details

Details for the file modeldownloaderutil-1.0.7-py3-none-any.whl.

File metadata

  • Download URL: modeldownloaderutil-1.0.7-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

Hashes for modeldownloaderutil-1.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 5fabfe900b81bee88424f4b2a22ce9a21d52d48b565b74fb9705845f5fe8326a
MD5 f9c2949f0d5fb28ef6305acb763f4cff
BLAKE2b-256 f91c641f654de1d28a0ac2a631a5668150df8c4f6f24f75ec48a7de7b64b03f3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page