doit

task management & automation tool

Github星跟踪图

================
README

.. display some badges

.. image:: https://img.shields.io/pypi/v/doit.svg
:target: https://pypi.python.org/pypi/doit

.. image:: https://travis-ci.org/pydoit/doit.png?branch=master
:target: https://travis-ci.org/pydoit/doit

.. image:: https://ci.appveyor.com/api/projects/status/f7f97iywo8y7fe4d/branch/master?svg=true
:target: https://ci.appveyor.com/project/schettino72/doit/branch/master

.. image:: https://coveralls.io/repos/pydoit/doit/badge.png?branch=master
:target: https://coveralls.io/r/pydoit/doit?branch=master

.. image:: https://badges.gitter.im/Join%20Chat.svg
:alt: Join the chat at https://gitter.im/pydoit/doit
:target: https://gitter.im/pydoit/doit?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge

.. image:: https://opencollective.com/doit/backers/badge.svg
:target: backers_

.. image:: https://opencollective.com/doit/sponsors/badge.svg
:target: sponsors_

doit - automation tool

doit comes from the idea of bringing the power of build-tools to
execute any kind of task

Sample Code

Define functions returning python dict with task's meta-data.

Snippet from tutorial <http://pydoit.org/tutorial_1.html>_::

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

Project Details

license

The MIT License
Copyright (c) 2008-2018 Eduardo Naufel Schettino

see LICENSE file

developers / contributors

see AUTHORS file

install

doit is tested on python 3.4 to 3.6.

The last version supporting python 2 is version 0.29.

::

$ pip install doit

dependencies

  • 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

development setup

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

tests

Use py.test - http://pytest.org

::

$ py.test

documentation

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

spell checking

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.

profiling

::

python -m cProfile -o output.pstats which doit list

gprof2dot -f pstats output.pstats, dot -Tpng -o output.png

contributing

On github create pull requests using a named feature branch.

.. _backers

backers

Become a backer <https://opencollective.com/doit#backer>_ and show your support to our open source project.

.. image:: https://opencollective.com/doit/backers.svg?width=890
:target: https://opencollective.com/doit#backers

.. _sponsors

sponsors

Support this project by becoming a sponsor <https://opencollective.com/doit#sponsor>_.
Your logo will show up here with a link to your website.

.. image:: https://opencollective.com/doit/sponsor/0/avatar
:target: https://opencollective.com/doit/sponsor/0/website

.. image:: https://opencollective.com/doit/sponsor/1/avatar
:target: https://opencollective.com/doit/sponsor/1/website

.. image:: https://opencollective.com/doit/sponsor/2/avatar
:target: https://opencollective.com/doit/sponsor/2/website

.. image:: https://opencollective.com/doit/sponsor/3/avatar
:target: https://opencollective.com/doit/sponsor/3/website

.. image:: https://opencollective.com/doit/sponsor/4/avatar
:target: https://opencollective.com/doit/sponsor/4/website

.. image:: https://opencollective.com/doit/sponsor/5/avatar
:target: https://opencollective.com/doit/sponsor/5/website

.. image:: https://opencollective.com/doit/sponsor/6/avatar
:target: https://opencollective.com/doit/sponsor/6/website

.. image:: https://opencollective.com/doit/sponsor/7/avatar
:target: https://opencollective.com/doit/sponsor/7/website

.. image:: https://opencollective.com/doit/sponsor/8/avatar
:target: https://opencollective.com/doit/sponsor/8/website

.. image:: https://opencollective.com/doit/sponsor/9/avatar
:target: https://opencollective.com/doit/sponsor/9/website

概览

名称与所有者pydoit/doit
主编程语言Python
编程语言Python (语言数: 2)
平台
许可证MIT License
发布数47
最新版本名称0.36.0 (发布于 )
第一版名称0.2.0 (发布于 )
创建于2014-02-14 22:21:23
推送于2023-10-21 22:19:38
最后一次提交2023-01-16 00:40:03
星数1.8k
关注者数48
派生数170
提交数1.5k
已启用问题?
问题数302
打开的问题数84
拉请求数63
打开的拉请求数7
关闭的拉请求数93
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?
去到顶部