Skip to main content

A set of extended APIs for PyInvoke for composable scripts, plugins and richer output

Project description

invoke-toolkit

A set of extensions for rich output, more options in collection/config discovery through entry-points.

This extends the Collection from Invoke so it can create automatically collections.

PyPI - Version PyPI - Python Version


Table of Contents

Features

  • Task discovery by namespace for extendable/composable CLIs
  • Discovery to plain old tasks.py (or any other name)
  • Local tasks discovery from local_tasks.py in the current directory
  • Integration with stand alone binaries for specific tasks
  • Future Download binaries

Do I need this package

If you have...

  • Used invoke for a while and...
  • Have a large tasks.py that needs to be modularized
  • Have a lot of copy/pasted code in multiple tasks.py across multiple repos.
  • Have exceeded the approach of a repository cloned as ~/tasks/ with more .py files that you want to manage.
  • Or you want to combine various tasks defined in multiple directories
  • You want to create a zipped (shiv) redistribute script for container environments like Kubernetes based CI environments with only requiring the Python interpreter.

Installation

pip install invoke-toolkit

Quick Start

Using Local Tasks

Create a local_tasks.py file in your project directory with your tasks:

from invoke_toolkit import task

@task()
def my_task(ctx):
    """Do something useful"""
    print("Hello from local tasks!")

Then run it with:

intk local.my-task

Local tasks are automatically discovered and added to the local namespace, allowing you to keep project-specific tasks separate from your main task collection.

Development

This project utilizes the pre-commit framework, make sure you run:

pre-commit install

With uvx:

uvx --with pre-commit-uv pre-commit install

License

invoke-toolkit is distributed under the terms of 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

invoke_toolkit-0.0.42.tar.gz (50.7 kB view details)

Uploaded Source

Built Distribution

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

invoke_toolkit-0.0.42-py3-none-any.whl (49.3 kB view details)

Uploaded Python 3

File details

Details for the file invoke_toolkit-0.0.42.tar.gz.

File metadata

  • Download URL: invoke_toolkit-0.0.42.tar.gz
  • Upload date:
  • Size: 50.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for invoke_toolkit-0.0.42.tar.gz
Algorithm Hash digest
SHA256 ed4aea7b5efc16358bcd3c28ca95328e74584ebf0c78bf71930dde776a7e33d0
MD5 2a54af3db0a8f27401c7959cb18604ca
BLAKE2b-256 039c57ffc58bab9413f1b8f8f21f46c3533ae6dcea42eff6671e8eb6bb3874ca

See more details on using hashes here.

Provenance

The following attestation bundles were made for invoke_toolkit-0.0.42.tar.gz:

Publisher: publish-releases.yaml on D3f0/invoke-toolkit

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

File details

Details for the file invoke_toolkit-0.0.42-py3-none-any.whl.

File metadata

File hashes

Hashes for invoke_toolkit-0.0.42-py3-none-any.whl
Algorithm Hash digest
SHA256 c03ecd445de713226a518a9b651e9ecba8faf128b309e3bb2b2ca3942e38c8c4
MD5 9e8d779d93e5c703731a5040b0c453c1
BLAKE2b-256 5e6aced1cb67a8e0d06d74857b6bbd5b4b4cab6dcb511911ad9f4f7843f4c609

See more details on using hashes here.

Provenance

The following attestation bundles were made for invoke_toolkit-0.0.42-py3-none-any.whl:

Publisher: publish-releases.yaml on D3f0/invoke-toolkit

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