doit comes from the idea of bringing the power of build-tools to execute any kind of task
Define functions returning python dict with task's meta-data.
Snippet from tutorial:
def task_imports(): """find imports from a python module""" for name, module in PKG_MODULES.by_name.items(): yield { 'name': name, 'file_dep': [module.path], 'actions': [(get_imports, (PKG_MODULES, module.path))], } def task_dot(): """generate a graphviz's dot graph from module imports""" return { 'targets': ['requests.dot'], 'actions': [module_to_dot], 'getargs': {'imports': ('imports', 'modules')}, 'clean': True, } def task_draw(): """generate image from a dot file""" return { 'file_dep': ['requests.dot'], 'targets': ['requests.png'], 'actions': ['dot -Tpng %(dependencies)s -o %(targets)s'], 'clean': True, }
Run from terminal:
$ doit list dot generate a graphviz's dot graph from module imports draw generate image from a dot file imports find imports from a python module $ doit . imports:requests.models . imports:requests.__init__ . imports:requests.help (...) . dot . draw
- Website & docs - http://pydoit.org
- Project management on github - https://github.com/pydoit/doit
- Discussion group - https://groups.google.com/forum/#!forum/python-doit
- News/twitter - https://twitter.com/py_doit
- Plugins, extensions and projects based on doit - https://github.com/pydoit/doit/wiki/powered-by-doit
The MIT License Copyright (c) 2008-2018 Eduardo Naufel Schettino
see LICENSE file
see AUTHORS file
doit is tested on python 3.4 to 3.6.
The last version supporting python 2 is version 0.29.
$ pip install doit
- cloudpickle
- pyinotify (linux)
- macfsevents (mac)
Tools required for development:
- git * VCS
- py.test * unit-tests
- coverage * code coverage
- sphinx * doc tool
- pyflakes * syntax checker
- doit-py * helper to run dev tasks
The best way to setup an environment to develop doit itself is to create a virtualenv...
doit$ virtualenv dev doit$ source dev/bin/activate
install doit
as "editable", and add development dependencies
from dev_requirements.txt:
(dev) doit$ pip install --editable . (dev) doit$ pip install --requirement dev_requirements.txt
Use py.test - http://pytest.org
$ py.test
doc
folder contains ReST documentation based on Sphinx.
doc$ make html
They are the base for creating the website. The only difference is that the website includes analytics tracking. To create it (after installing doit):
$ doit website
All documentation is spell checked using the task spell:
$ doit spell
It is a bit annoying that code snippets and names always fails the check, these words must be added into the file doc/dictionary.txt.
The spell checker currently uses hunspell, to install it on debian based systems install the hunspell package: apt-get install hunspell.
python -m cProfile -o output.pstats `which doit` list gprof2dot -f pstats output.pstats | dot -Tpng -o output.png
On github create pull requests using a named feature branch.
Become a backer and show your support to our open source project.
Support this project by becoming a sponsor. Your logo will show up here with a link to your website.