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.6+ and 3.3+) 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 {0}".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.20.2.tar.gz (287.1 kB view details)

Uploaded Source

Built Distributions

invoke-0.20.2-py3-none-any.whl (152.2 kB view details)

Uploaded Python 3

invoke-0.20.2-py2-none-any.whl (153.1 kB view details)

Uploaded Python 2

File details

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

File metadata

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

File hashes

Hashes for invoke-0.20.2.tar.gz
Algorithm Hash digest
SHA256 fa75f6e0983bdc026c18a290423d0e47ad82bcf1aa05130fc23896d8d9443525
MD5 487c25e53ce7c60ec3a08a9e76b926bd
BLAKE2b-256 a42f2587ee05bbac0c3bd42c6769b065c639bf997a823f845f84990c130d19ac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for invoke-0.20.2-py3-none-any.whl
Algorithm Hash digest
SHA256 f233f8a040a1ad627265974d26c81c3f3b13c8b2b57f8dd4dc8819454722de6a
MD5 9bd347e1e5bf8f6eb08d4dc43b586437
BLAKE2b-256 6fde7106d0f42b01564435f48a894c0e58ffcb32efdd334254bc82ec1adeec7d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for invoke-0.20.2-py2-none-any.whl
Algorithm Hash digest
SHA256 a30c4a3318c15067dcd529cde29a964e7775fed0ca6388d50c60dee9f4214b4c
MD5 95fe63888cefd6038bd35fe860efa917
BLAKE2b-256 9eb150e1001266fb79041552080a6e688ada467b9bb56f9e32ff321cb44a8d98

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