Skip to main content

Python Tools Scripts

Project description

Python Tools Scripts

This is a tool, similar to invoke. It's more recent and uses argparse under the hood and some additional magic to define the CLI arguments.

To use it, you must have a tools package in your repository root. On your tools/__init__.py import your scripts and Python Tools Scripts will add them to it's CLI.

An Example Script tools/vm.py

"""
These commands are used to create/destroy VMs, sync the local checkout
to the VM and to run commands on the VM.
"""

from ptscripts import Context, command_group

# Define the command group
vm = command_group(name="vm", help="VM Related Commands", description=__doc__)


@vm.command(
    arguments={
        "name": {
            "help": "The VM Name",
            "metavar": "VM_NAME",
            "choices": list(AMIS),
        },
        "key_name": {
            "help": "The SSH key name.",
        },
        "instance_type": {
            "help": "The instance type to use.",
        },
        "region": {
            "help": "The AWS regsion.",
        },
    }
)
def create(
    ctx: Context,
    name: str,
    key_name: str = None,
    instance_type: str = None,
    region: str = "eu-central-1",
):
    """
    Create VM.
    """
    vm = VM(ctx=ctx, name=name)
    vm.create(region_name=region, key_name=key_name, instance_type=instance_type)


@vm.command(
    arguments={
        "name": {
            "help": "The VM Name",
            "metavar": "VM_NAME",
        },
    }
)
def destroy(ctx: Context, name: str):
    """
    Destroy VM.
    """
    vm = VM(ctx=ctx, name=name)
    vm.destroy()

The, on your repository root, run:

❯ tools -h
usage: tools [-h] [--debug] {vm} ...

Python Tools Scripts

optional arguments:
  -h, --help   show this help message and exit
  --debug, -d  Show debug messages

Commands:
  {vm}
    vm         VM Related Commands

These tools are discovered under `<repo-root>/tools`.
❯ tools vm -h
usage: tools vm [-h] {create,destroy} ...

These commands are used to create/destroy VMs, sync the local checkout to the VM and to run commands on the VM.

optional arguments:
  -h, --help            show this help message and exit

Commands:
  {create,destroy}
    create              Create VM.
    destroy             Destroy VM.

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

python-tools-scripts-0.12.0.tar.gz (25.3 kB view details)

Uploaded Source

Built Distribution

python_tools_scripts-0.12.0-py3-none-any.whl (20.1 kB view details)

Uploaded Python 3

File details

Details for the file python-tools-scripts-0.12.0.tar.gz.

File metadata

  • Download URL: python-tools-scripts-0.12.0.tar.gz
  • Upload date:
  • Size: 25.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.10

File hashes

Hashes for python-tools-scripts-0.12.0.tar.gz
Algorithm Hash digest
SHA256 967acd4e72df865aeafd309dc6f6d1135d5a76e0f5dc43e0c86e954bbec2506a
MD5 78846cd26f80bc68a35a29fc81aa7034
BLAKE2b-256 1fff908ee21be295690fcd28259af724ca30ba45ddca1a09e2277e66fc72fa13

See more details on using hashes here.

File details

Details for the file python_tools_scripts-0.12.0-py3-none-any.whl.

File metadata

File hashes

Hashes for python_tools_scripts-0.12.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8fa564d8064aa755279bd827c8725bd02fe5475c90dfdb23257deff56515e370
MD5 9ecb0d28d5ebba7fb20557e61d527e23
BLAKE2b-256 fe3af499637fae7f8735f0ee7ad4577b6cc54c2485eecdecfb621fec930b6703

See more details on using hashes here.

Supported by

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