Craft is 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
History
v0.2.6 - 10 Nov 2012
Fix an issue with setup.py linking to the README
v0.2.3 - 14 Oct 2012
Fix error catching isolation from craft and the actual task
v0.2.0 - 27 Aug 2012
Added setup() and auto() tasks
Added support for task dependencies via @depends
v0.1.0 - 26 Aug 2012
Source is available at: https://github.com/jdpaton/craft
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file craft-0.2.6.tar.gz.
File metadata
- Download URL: craft-0.2.6.tar.gz
- Upload date:
- Size: 3.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
95db9547dd3ab28156ad40ed19231ba6bc688cbb07ff16bcfb657ac3b3e268f4
|
|
| MD5 |
0020491fc0e21edf40115fef2d5f3bd1
|
|
| BLAKE2b-256 |
618b1b56f8066ee76741b7b14ed0ea7bc9614e221c2321c9de98379121a81db4
|