Skip to content

sco1/wheely-bucket

Repository files navigation

wheely-bucket

Python Version from PEP 621 TOML GitHub Release GitHub License pre-commit.ci status

Cache wheels for your locked dependencies.

This tool is a thin wrapper around pip download in order to utilize pip's internal caching mechanisms.

Installation

Wheels are built in CI for each released version; the latest release can be found at: https://github.com/sco1/wheely-bucket/releases/latest

You can confirm proper installation via the wheely_bucket CLI:

$ wheely_bucket --help
Usage: wheely_bucket [OPTIONS] COMMAND [ARGS]...

  Cache wheels for your locked dependencies.

Options:
  --help  Show this message and exit.

Commands:
  package  Download wheels for the the specified package(s).
  project  Download wheels specified by the project's uv lockfile.

Usage

wheely-bucket provides two mechanisms for package specification: manual specification & project lockfile specification.

For both entry points, python-version and platform allow specification of multiple comma-delimited targets of a form understood by pip download.

Manual Package Specification

Manual package specification is accomplished via the wheely_bucket package command:

$ wheely_bucket package --help
Usage: wheely_bucket package [OPTIONS] PACKAGES...

  Download wheels for the the specified package(s).

  Package specifiers are expected in a form understood by pip, e.g. "black" or
  "black==25.1.0"; multiple packages may be specified.

  python_version and platform are expected in a form understood by pip;
  multiple comma-delimited targets may be specified. If not specified, pip
  will default to matching the currently running interpreter.

Arguments:
  PACKAGES...  Package(s) to download  [required]

Options:
  --dest DIRECTORY       Destination directory  [default: .]
  --python-version TEXT  Python interpreter version(s)
  --platform TEXT        Platform specification(s)
  --help                 Show this message and exit.

Project Lockfile Specification

Project lockfile specification is accomplished via the wheely_bucket project command:

$ wheely_bucket project --help
Usage: wheely_bucket project [OPTIONS] TOPDIR

  Download wheels specified by the project's uv lockfile.

  If recurse is True, the specified base directory is assumed to contain one
  or more projects managed by uv, and will recursively parse all contained
  lockfiles for locked dependencies.

  python_version and platform are expected in a form understood by pip;
  multiple comma-delimited targets may be specified. If not specified, pip
  will default to matching the currently running interpreter.

Arguments:
  TOPDIR  Base directory  [required]

Options:
  --dest DIRECTORY       Destination directory  [default: .]
  -r, --recurse          Parse child directories for lockfiles [default:
                         False]
  --lock-filename TEXT   Name of lockfile to match  [default: uv.lock]
  --python-version TEXT  Python interpreter version(s)
  --platform TEXT        Platform specification(s)
  --help                 Show this message and exit.

About

Cache wheels for your locked dependencies

Resources

License

Contributing

Stars

Watchers

Forks

Sponsor this project

 

Languages