CLI for installing RevoData modules
Project description
Revo Modules
Revo Modules is a Python CLI for listing and installing module bundles from a registry. It is built with Typer and uses Pydantic models for configuration.
Requirements
- Python 3.12+
- uv
Setup
uv sync
Usage
uv run revo --help
List modules from the default registry repository.
uv run revo modules list
Show module descriptions in the output.
uv run revo modules list --show-description
Generate an install plan for a specific module.
uv run revo modules install example-module
Write the plan to a specific path and skip writing files.
uv run revo modules install example-module --plan-output ./plan.json --dry-run
By default the install plan is written under the user cache directory in
revo-modules/plans/<module_id>.json. Use --plan-output to override the path
or --dry-run to avoid writing the plan.
Registry sources
Registry URLs can point to:
- GitHub repositories, which are resolved to raw registry files.
- Direct HTTP(S) URLs to registry YAML files.
- Local files via
file://URLs or file paths. - Bundled package examples via
package://example_registry.yml.
Manifest URLs support the same URL forms. GitHub blob URLs are automatically converted to raw content URLs.
Local registry fallback for tests
For testing purposes, you can allow a fallback to the bundled example registry by setting the following environment variables:
export REVO_MODULES_ENV=test
export REVO_MODULES_ALLOW_LOCAL_REGISTRY_FALLBACK=1
The bundled registry entry points to package://example_manifest.yml, so the
example manifest stays self-contained for offline testing.
Demo repository
The demo_repo/ folder is a fictional project that we use to manually validate
module installs. It includes a .just/justfile with a known anchor for the
example manifest. Run the CLI against it with the local registry fallback:
cd demo_repo
REVO_MODULES_ENV=test REVO_MODULES_ALLOW_LOCAL_REGISTRY_FALLBACK=1 \
uv run revo modules install example-module
Testing
uv run pytest
Development
Format and lint with Ruff.
uv run ruff format .
uv run ruff check .
Type check with Pyright.
uv run pyright
Run pre-commit checks.
just precommit
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 revo_module_installer-0.1.0.tar.gz.
File metadata
- Download URL: revo_module_installer-0.1.0.tar.gz
- Upload date:
- Size: 8.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f402d9dc58604e281ecf4ebdefbb9a597f0ffc3300410b6f51e44bd20f61b506
|
|
| MD5 |
c9c61f27ea616e9c3c11546a4fc3be00
|
|
| BLAKE2b-256 |
f49affbaa9eb5a3c57cee2aed1cc8b66a1c574d2480fae2c5e50cb2cfd0d0c9a
|
Provenance
The following attestation bundles were made for revo_module_installer-0.1.0.tar.gz:
Publisher:
publish.yml on revodatanl/revo-module-installer
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
revo_module_installer-0.1.0.tar.gz -
Subject digest:
f402d9dc58604e281ecf4ebdefbb9a597f0ffc3300410b6f51e44bd20f61b506 - Sigstore transparency entry: 872185277
- Sigstore integration time:
-
Permalink:
revodatanl/revo-module-installer@0d71e1c8d17cdffc403b2324484a06be342469f6 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/revodatanl
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@0d71e1c8d17cdffc403b2324484a06be342469f6 -
Trigger Event:
push
-
Statement type:
File details
Details for the file revo_module_installer-0.1.0-py3-none-any.whl.
File metadata
- Download URL: revo_module_installer-0.1.0-py3-none-any.whl
- Upload date:
- Size: 12.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d2d2f45a573b00e75deceb37af3def817342d6e82a81d7b0465bbdc99e0671b8
|
|
| MD5 |
d99e2f24a850d0b38ea6bc0d625b3cab
|
|
| BLAKE2b-256 |
fd9111a5a0c46ce6def71a220b159e4a58e0a39e02cab877e997ef48c3b213d1
|
Provenance
The following attestation bundles were made for revo_module_installer-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on revodatanl/revo-module-installer
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
revo_module_installer-0.1.0-py3-none-any.whl -
Subject digest:
d2d2f45a573b00e75deceb37af3def817342d6e82a81d7b0465bbdc99e0671b8 - Sigstore transparency entry: 872185279
- Sigstore integration time:
-
Permalink:
revodatanl/revo-module-installer@0d71e1c8d17cdffc403b2324484a06be342469f6 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/revodatanl
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@0d71e1c8d17cdffc403b2324484a06be342469f6 -
Trigger Event:
push
-
Statement type: