Craft is a tool like Makefile, except everything is in native Python.
Install
pip install craft
Craft works on Python 2.7+ and Python 3.2+.
Crafty files
Craft will read attempt to read crafty.py in the current directory or the environment variable $CRAFTFILE.
An example crafty.py:
from craft import task, depends
@task
@depends('bar', 'foo')
def cake():
"""
Prints cake, and depends on foo & bar
to run first
"""
print('Time for cake')
@task
def bar():
""" Prints bar """
print('bar')
@task
def foo():
print("Hi,I'm foo")
@task
def auto():
"""
I will run when you supply no arguments to "craft".
"""
print("Auto - Doing my own thing. Which is 'foo' today.")
foo()
@task
def setup():
"""
I will run once on any call to "craft"
"""
print("Hello good sir, I'm the setup routine.")
Usage
Running craft -h in the directory containing crafty.py will show the list of available tasks. Example:
usage: craft [-h] [task [task ...]]
positional arguments:
task
optional arguments:
-h, --help show this help message and exit
Available tasks:
- cake: Prints cake, and depends on foo & bar to run first
- auto: I will run when you supply no arguments to "craft".
- setup: I will run once on any call to "craft"
- foo:
- bar: Prints bar
As you can see, the docstring for each @task function will then be represented in the help output, and docstrings can be omitted.
You can call individual tasks like:
craft foo
and run multiple tasks with one call like:
craft foo bar
What is new in this release:
- Fix error catching isolation from craft and the actual task
What is new in version 0.2.0:
- Added setup() and auto() tasks
- Added support for task dependencies via @depends
Requirements:
- Python
Comments not found