Skip to main content

Prudentia CLI - Development tools for Prudentia internal developers

Project description

Prudentia CLI (pevx)

A development CLI tool for Prudentia internal developers.

Installation

From PyPI (when published)

pip install pevx

Development Mode

Clone the repository and install in development mode using uv:

git clone https://github.com/Prudentia-Sciences/pevx
cd pevx
uv sync

Usage

After installation, you can use the CLI with the pevx command:

# Show help
pevx --help

# Show version
pevx --version

Available Commands

uv [args]

Proxy to uv with AWS CodeArtifact authentication.

pevx uv add [package] --domain custom-domain --domain-owner 123456789 --repo custom-repo --region us-west-2

Default values:

  • Domain: prudentia-sciences
  • Domain Owner: 728222516696
  • Repository: pypi-store
  • Region: us-east-1

docker [args]

Proxy to docker with AWS ECR authentication.

aws-each [args]

Assume a role in each target AWS account using OIDC and run an AWS CLI command.

pevx aws-each --accounts '["111111111111","222222222222"]' s3 ls

Options:

  • --accounts: JSON list of AWS account IDs (required, or set TARGET_ACCOUNTS env var)
  • --role-name: IAM Role name to assume (default: github-actions-backend-role)
  • --continue-on-error/--fail-fast: Continue with remaining accounts on failure

pyclient

Generate a Python client from a FastAPI OpenAPI spec.

pevx pyclient --app-path app.main:app

Options:

  • --pyproject: Path to pyproject.toml (default: pyproject.toml)
  • --app-path: Python path to FastAPI app (default: app.main:app)

Development

Adding New Commands

  1. Create a new file in the src/pevx/commands/ directory for your command
  2. Implement your command using Click
  3. Import and register your command in src/pevx/cli.py

Example:

# In src/pevx/commands/my_command.py
import click

@click.command()
def my_command():
    """Command description."""
    click.echo("Running my command")

# In src/pevx/cli.py, add:
from pevx.commands.my_command import my_command
cli.add_command(my_command)

CI/CD and Versioning

This project uses semantic-release for automated versioning:

  1. Automated Testing: Runs tests on Python 3.9-3.12
  2. Semantic Versioning: Automatically determines version from commit messages
  3. Automated Publishing: Builds and publishes to PyPI on new versions

Commit Message Format

Use conventional commit messages:

<type>(<scope>): <description>

Common types:

  • fix: Bug fixes (PATCH bump)
  • feat: New features (MINOR bump)
  • feat!, fix!: Breaking changes (MAJOR bump)

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

pevx-1.5.1.tar.gz (7.4 kB view details)

Uploaded Source

Built Distribution

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

pevx-1.5.1-py3-none-any.whl (10.9 kB view details)

Uploaded Python 3

File details

Details for the file pevx-1.5.1.tar.gz.

File metadata

  • Download URL: pevx-1.5.1.tar.gz
  • Upload date:
  • Size: 7.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pevx-1.5.1.tar.gz
Algorithm Hash digest
SHA256 6c5cdb4c81c91a271ac3b12a8a14ddd2907c1214fc9fc84096220f0786776017
MD5 4342f679ad492f0941e7f2c06cf81e36
BLAKE2b-256 ee51ddcca5e18dc26f92d7553bc1c68d0eef3ce5f5b91cf8387ec41cfdbb4e85

See more details on using hashes here.

File details

Details for the file pevx-1.5.1-py3-none-any.whl.

File metadata

  • Download URL: pevx-1.5.1-py3-none-any.whl
  • Upload date:
  • Size: 10.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pevx-1.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1209a2af29fd106c827e00b766442e10b826c5b90bf26d5c6c7ef06f02c27f92
MD5 538bc6e9c667c4fc599c3503e6127960
BLAKE2b-256 b6b11fe64f2ac474f49d4b6afdba812cbbf3c515005a19322863c53ce3592775

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