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``.
<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``.
Project details
Release history Release notifications | RSS feed
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)
Built Distributions
invoke-0.16.0-py3-none-any.whl
(142.5 kB
view details)
invoke-0.16.0-py2-none-any.whl
(143.4 kB
view details)
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 61f1b7a4b3cb942ce92cb3f75cea8c69cc7c6106bea321772d35d74090cf9992 |
|
MD5 | a1d84e537147ad42e3b9c4b55dfe55dd |
|
BLAKE2b-256 | c02c425bfd4796538c4bb76885d6761fae81bbe116f3966ae82688fcf95d2dfe |
File details
Details for the file invoke-0.16.0-py3-none-any.whl
.
File metadata
- Download URL: invoke-0.16.0-py3-none-any.whl
- Upload date:
- Size: 142.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d7b7a4154785e3b6d3264a07fc882d1921c23a7ede81b8a712db6a7084133b4c |
|
MD5 | 894e07d375aca66d5c152c3a7be1de88 |
|
BLAKE2b-256 | 69b1ef3d9738c3dfd237d6e6ae263b5bb63181d4c6b58048d3cd247e29f4c292 |
File details
Details for the file invoke-0.16.0-py2-none-any.whl
.
File metadata
- Download URL: invoke-0.16.0-py2-none-any.whl
- Upload date:
- Size: 143.4 kB
- Tags: Python 2
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2a1914e4878e6bdea1bd7a721bde115fe18a7513f09bd60e48a2358927e18e10 |
|
MD5 | d395225319ee137c095bcdac93939f7e |
|
BLAKE2b-256 | ea617b991653c501f4e05fa07b7a98d55fc7c9320b1bb6b868c5d3398b325670 |