Skip to main content

Extra utilities and tools for the Rhiza ecosystem

Project description

Rhiza Logo rhiza-tools

Synced with Rhiza

PyPI version License: MIT Coverage Downloads CodeFactor

Extra utilities and tools serving the mothership rhiza.

📖 New to Rhiza? Check out the Getting Started Guide for a beginner-friendly introduction!

This package provides additional commands for the Rhiza ecosystem, such as version bumping, release management, and documentation helpers. It can be used as a plugin for rhiza-cli or as a standalone tool.

Installation

As a Rhiza Plugin (Recommended)

You can install rhiza-tools alongside rhiza-cli using uvx or pip. This automatically registers the tools as subcommands under rhiza tools.

Using uvx (run without installation)

uvx "rhiza[tools]" tools --help

Using pip

pip install "rhiza[tools]"

Standalone Usage

You can also use rhiza-tools independently if you don't need the full rhiza CLI.

Using uvx

uvx rhiza-tools --help

Using pip

pip install rhiza-tools

Commands

bump

Bump the version of the project in pyproject.toml using semantic versioning. Supports interactive selection, explicit version targets, and prerelease types.

Usage:

# Interactive (prompts for bump type)
rhiza-tools bump

# Explicit bump type
rhiza-tools bump patch
rhiza-tools bump minor
rhiza-tools bump major

# Explicit version
rhiza-tools bump 2.0.0

# Prerelease types
rhiza-tools bump alpha
rhiza-tools bump beta
rhiza-tools bump rc

Arguments:

  • VERSION - The version to bump to. Can be an explicit version (e.g., 1.0.1), a bump type (patch, minor, major), a prerelease type (alpha, beta, rc, dev), or omitted for interactive selection.

Options:

  • --dry-run - Show what would change without actually modifying files.
  • --commit - Automatically commit the version change to git.
  • --push - Push changes to remote after commit (implies --commit).
  • --branch BRANCH - Branch to perform the bump on (switches back after).
  • --allow-dirty - Allow bumping even with uncommitted changes.
  • --verbose, -v - Show detailed output from bump-my-version.

release

Push a release tag to remote to trigger the automated release workflow. Optionally bumps the version before releasing.

Usage:

# Interactive (prompts for bump and push)
rhiza-tools release

# Dry-run preview
rhiza-tools release --dry-run

# Bump and release in one step
rhiza-tools release --bump MINOR --push

# Interactive bump selection with dry-run preview
rhiza-tools release --with-bump --push --dry-run

# Non-interactive (for CI/CD)
rhiza-tools release --bump PATCH --push --non-interactive

Options:

  • --bump TYPE - Bump type (MAJOR, MINOR, PATCH) to apply before release.
  • --with-bump - Interactively select bump type before release (works with --dry-run).
  • --push - Push changes to remote (default: prompt in interactive mode).
  • --dry-run - Show what would happen without making any changes.
  • --non-interactive, -y - Skip all confirmation prompts (for CI/CD).

update-readme

Update README.md with the current output from make help.

Usage:

# As plugin
rhiza tools update-readme

# Standalone
rhiza-tools update-readme

Options:

  • --dry-run - Print what would happen without actually changing files.

generate-coverage-badge

Generate a coverage badge JSON file from a pytest-cov coverage report. The badge color adjusts automatically based on the coverage percentage.

Usage:

# Default paths
rhiza-tools generate-coverage-badge

# Custom paths
rhiza-tools generate-coverage-badge \
    --coverage-json tests/coverage.json \
    --output assets/badge.json

Options:

  • --coverage-json PATH - Path to the coverage.json file (default: _tests/coverage.json).
  • --output PATH - Path to output badge JSON (default: _book/tests/coverage-badge.json).

version-matrix

Emit supported Python versions from pyproject.toml as a JSON array. Primarily used in GitHub Actions to compute the CI test matrix.

Usage:

# Default candidates
rhiza-tools version-matrix

# Custom pyproject path
rhiza-tools version-matrix --pyproject /path/to/pyproject.toml

# Custom candidate versions
rhiza-tools version-matrix --candidates "3.10,3.11,3.12"

Options:

  • --pyproject PATH - Path to pyproject.toml (default: pyproject.toml).
  • --candidates TEXT - Comma-separated list of candidate Python versions (default: 3.11,3.12,3.13,3.14).

analyze-benchmarks

Analyze pytest-benchmark results and generate an interactive HTML visualization. Prints a table of benchmark names, mean runtimes, and operations per second.

Usage:

# Default paths
rhiza-tools analyze-benchmarks

# Custom paths
rhiza-tools analyze-benchmarks \
    --benchmarks-json tests/benchmarks.json \
    --output-html reports/benchmarks.html

Options:

  • --benchmarks-json PATH - Path to benchmarks.json file (default: _benchmarks/benchmarks.json).
  • --output-html PATH - Path to save HTML visualization (default: _benchmarks/benchmarks.html).

Development

Prerequisites

  • Python 3.11 or higher
  • uv package manager (recommended) or pip
  • Git

Setup Development Environment

# Clone the repository
git clone https://github.com/Jebel-Quant/rhiza-tools.git
cd rhiza-tools

# Install dependencies
make install

# Run tests
make test

License

This project is licensed under the MIT License.

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

rhiza_tools-0.3.5b2.tar.gz (246.8 kB view details)

Uploaded Source

Built Distribution

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

rhiza_tools-0.3.5b2-py3-none-any.whl (42.8 kB view details)

Uploaded Python 3

File details

Details for the file rhiza_tools-0.3.5b2.tar.gz.

File metadata

  • Download URL: rhiza_tools-0.3.5b2.tar.gz
  • Upload date:
  • Size: 246.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for rhiza_tools-0.3.5b2.tar.gz
Algorithm Hash digest
SHA256 4fa7d7f3fbd9c45f1b6cb3fb3caf7cbea352063c95f9714fc9822220bb62ff02
MD5 e15573705a8ff5298e71f4ebc10c2d5f
BLAKE2b-256 b993557562573e25e52617ab693382819e069fed7a9a0c0313820807ee804057

See more details on using hashes here.

Provenance

The following attestation bundles were made for rhiza_tools-0.3.5b2.tar.gz:

Publisher: rhiza_release.yml on Jebel-Quant/rhiza-tools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rhiza_tools-0.3.5b2-py3-none-any.whl.

File metadata

  • Download URL: rhiza_tools-0.3.5b2-py3-none-any.whl
  • Upload date:
  • Size: 42.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for rhiza_tools-0.3.5b2-py3-none-any.whl
Algorithm Hash digest
SHA256 52d8248ea522d2de6c24e4ca997a6013b49846460629210b1798279b7f156a88
MD5 cd244ec6ef0bf3eaf21682d695a5b9a0
BLAKE2b-256 e7b6d52b988baefae21a513bc660f80e017b571858d10d07ae54a46731c00e3a

See more details on using hashes here.

Provenance

The following attestation bundles were made for rhiza_tools-0.3.5b2-py3-none-any.whl:

Publisher: rhiza_release.yml on Jebel-Quant/rhiza-tools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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