Skip to main content

Extends pythonic task management & command execution with file dependencies.

Project description

Extends pythonic task management & command execution with file dependencies.

Latest Version on PyPI Supported Implementations

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 the creates globs.

It does not automatically add pre or post steps to the task based on the dependencies.

Project details


Download files

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

Source Distribution

pyinvokedepends-1.0.0.tar.gz (3.3 kB view details)

Uploaded Source

Built Distribution

pyinvokedepends-1.0.0-py3-none-any.whl (5.2 kB view details)

Uploaded Python 3

File details

Details for the file pyinvokedepends-1.0.0.tar.gz.

File metadata

  • Download URL: pyinvokedepends-1.0.0.tar.gz
  • Upload date:
  • Size: 3.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.8.5

File hashes

Hashes for pyinvokedepends-1.0.0.tar.gz
Algorithm Hash digest
SHA256 b6965d82602aa33c7e78071e0aa6b11418ffc19e1c54ae1b70187b8e062043f9
MD5 2ff4dc033ccc44b692ba43e8692f8569
BLAKE2b-256 be7e519b89adacc82f67adac0c8906cb6233fda9f840bd1f99abd194b276d906

See more details on using hashes here.

File details

Details for the file pyinvokedepends-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: pyinvokedepends-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 5.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.8.5

File hashes

Hashes for pyinvokedepends-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1e9533eb9e42ca312d76383cc64988169220411bf2e9f8fd0405b9ebbb544823
MD5 4665786c089f1806889269be68570a27
BLAKE2b-256 31d441c0b53e8ebbe8334da542c9f2c6ebf7e0aea8723a3240b4870f8aec67d0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page