Skip to main content

Pythonic task execution

Project description

To find out what's new in this version of Invoke, please see `the changelog
<http://pyinvoke.org/changelog.html#0.16.0>`_.

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:

.. code-block:: python

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:

.. testsetup:: blurb

fakeout = """
Hello, this is pip
Installing is fun
Fake output is fake
Successfully installed invocations-0.13.0 pep8-1.5.7 spec-1.3.1
"""
proc = MockSubprocess(out=fakeout, exit=0)

.. testcleanup:: blurb

proc.stop()

.. doctest:: blurb

>>> 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.16.0.tar.gz (288.4 kB view details)

Uploaded Source

Built Distributions

invoke-0.16.0-py3-none-any.whl (142.5 kB view details)

Uploaded Python 3

invoke-0.16.0-py2-none-any.whl (143.4 kB view details)

Uploaded Python 2

File details

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

File metadata

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

File hashes

Hashes for invoke-0.16.0.tar.gz
Algorithm Hash digest
SHA256 61f1b7a4b3cb942ce92cb3f75cea8c69cc7c6106bea321772d35d74090cf9992
MD5 a1d84e537147ad42e3b9c4b55dfe55dd
BLAKE2b-256 c02c425bfd4796538c4bb76885d6761fae81bbe116f3966ae82688fcf95d2dfe

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for invoke-0.16.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d7b7a4154785e3b6d3264a07fc882d1921c23a7ede81b8a712db6a7084133b4c
MD5 894e07d375aca66d5c152c3a7be1de88
BLAKE2b-256 69b1ef3d9738c3dfd237d6e6ae263b5bb63181d4c6b58048d3cd247e29f4c292

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for invoke-0.16.0-py2-none-any.whl
Algorithm Hash digest
SHA256 2a1914e4878e6bdea1bd7a721bde115fe18a7513f09bd60e48a2358927e18e10
MD5 d395225319ee137c095bcdac93939f7e
BLAKE2b-256 ea617b991653c501f4e05fa07b7a98d55fc7c9320b1bb6b868c5d3398b325670

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