Skip to main content

Pythonic task execution

Project description

To find out what’s new in this version of Invoke, please see the changelog.

Invoke is a Python (2.7 and 3.4+) task execution tool & library, drawing inspiration from various sources to arrive at a powerful & clean feature set.

  • Like Ruby’s Rake tool and Invoke’s own predecessor Fabric 1.x, it provides a clean, high level API for running shell commands and defining/organizing task functions from a tasks.py file:

    from invoke import task
    
    @task
    def clean(ctx, docs=False, bytecode=False, extra=''):
        patterns = ['build']
        if docs:
            patterns.append('docs/_build')
        if bytecode:
            patterns.append('**/*.pyc')
        if extra:
            patterns.append(extra)
        for pattern in patterns:
            ctx.run("rm -rf {}".format(pattern))
    
    @task
    def build(ctx, docs=False):
        ctx.run("python setup.py build")
        if docs:
            ctx.run("sphinx-build docs docs/_build")
  • From GNU Make, it inherits an emphasis on minimal boilerplate for common patterns and the ability to run multiple tasks in a single invocation:

    $ invoke clean build
  • Where Fabric 1.x considered the command-line approach the default mode of use, Invoke (and tools built on it) are equally at home embedded in your own Python code or a REPL:

    >>> from invoke import run
    >>> cmd = "pip install -r requirements.txt"
    >>> result = run(cmd, hide=True, warn=True)
    >>> print(result.ok)
    True
    >>> print(result.stdout.splitlines()[-1])
    Successfully installed invocations-0.13.0 pep8-1.5.7 spec-1.3.1
  • Following the lead of most Unix CLI applications, it offers a traditional flag-based style of command-line parsing, deriving flag names and value types from task signatures (optionally, of course!):

    $ invoke clean --docs --bytecode build --docs --extra='**/*.pyo'
    $ invoke clean -d -b build --docs -e '**/*.pyo'
    $ invoke clean -db build -de '**/*.pyo'
  • Like many of its predecessors, it offers advanced features as well – namespacing, task aliasing, before/after hooks, parallel execution and more.

For documentation, including detailed installation information, please see http://pyinvoke.org. Post-install usage information may be found in invoke --help.

You can install the development version via pip install -e git+https://github.com/pyinvoke/invoke#egg=invoke.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

invoke-0.22.1.tar.gz (292.4 kB view details)

Uploaded Source

Built Distributions

invoke-0.22.1-py3-none-any.whl (154.8 kB view details)

Uploaded Python 3

invoke-0.22.1-py2-none-any.whl (155.7 kB view details)

Uploaded Python 2

File details

Details for the file invoke-0.22.1.tar.gz.

File metadata

  • Download URL: invoke-0.22.1.tar.gz
  • Upload date:
  • Size: 292.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for invoke-0.22.1.tar.gz
Algorithm Hash digest
SHA256 621181a0efae67b3dadec583cf2c6b5096136635bf6a326c481c73db412b36fc
MD5 8f408e66121cd51173cccf8c19e1ec1c
BLAKE2b-256 681029f8d036864b3328fd92da9867aac10e2804c01daa699f46e173ccf72a94

See more details on using hashes here.

File details

Details for the file invoke-0.22.1-py3-none-any.whl.

File metadata

File hashes

Hashes for invoke-0.22.1-py3-none-any.whl
Algorithm Hash digest
SHA256 39020b07218c87747e85dd422510f02a8d1282c71952942324c67d9eeaae8e62
MD5 294ed58f743ba60bed31657b812f533f
BLAKE2b-256 2851cdb8bc6609aff41ee15511168f1041d08082cdc507cad39d75608005b1e8

See more details on using hashes here.

File details

Details for the file invoke-0.22.1-py2-none-any.whl.

File metadata

File hashes

Hashes for invoke-0.22.1-py2-none-any.whl
Algorithm Hash digest
SHA256 357f0661c1d84f9f113e6164705d92eb00b35cd704c31e82efbf0f012f25e40c
MD5 d8257a1e3df6e05bad8f6b1538438717
BLAKE2b-256 af7b8dc484fe1cce4dedcfcc49c37636a74ac5613c3f7c433b3c772196233f1f

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