Extends pythonic task management & command execution with file dependencies.
Project description
Extends pythonic task management & command execution with file dependencies.
Documentation
pyinvokedepends
is an extension of pyinvoke to allow more "makefile" like task definitions.
It introduces an additional decorator @depends
which can be used in addtion to pyinvoke's decorator @task
. Adding this decorator to a task will make sure that the task is only executed when any of to
files is newer than one of the created
files.
For a simple example, consider the following tasks.py
. In contrast to traditional make
, this will always run gcc hello.c
from invoke import task
@task
def compile(c):
c.run("gcc hello.c", echo=True)
With pyinvokedepends
we can add dependencies:
from invoke import task
from pyinvokedepends import depends
@depends(on=["./hello.c"], creates=["./a.out"])
@task
def test(c):
def compile(c):
c.run("gcc hello.c", echo=True)
The task will only execute if the file ./hello.c
is newer than the file ./a.out
. Otherwise, the execution will be skipped.
The values of the parameters on
and creates
are lists of globs
. At lease one the files matching (one of) the on
globs must exist. The task is executed
- if no file exists which matches (any of) the
creates
globs, or - one of the files matching the
on
globs is newer than at least one file of thecreates
globs.
It does not automatically add pre
or post
steps to the task based on the dependencies.
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
Built Distribution
Hashes for pyinvokedepends-1.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1e9533eb9e42ca312d76383cc64988169220411bf2e9f8fd0405b9ebbb544823 |
|
MD5 | 4665786c089f1806889269be68570a27 |
|
BLAKE2b-256 | 31d441c0b53e8ebbe8334da542c9f2c6ebf7e0aea8723a3240b4870f8aec67d0 |