Python MIT

doit

CLI task management & automation tool

P

pydoit

Dernière activité 21 sept. 2026
pydoit/doit

2,1 k

étoiles

198

forks

99

issues ouvertes

build-automationbuild-systembuild-toolclidata-pipelinedata-sciencehacktoberfestpythontask-runnerworkflowworkflow-automationworkflow-management

Ce README est souvent en anglais.

README

https://github.com/pydoit/doit/actions/workflows/ci.yml/badge.svg?branch=master https://codecov.io/gh/pydoit/doit/branch/master/graph/badge.svg?token=wxKa1h11zn

pydoit - automation tool

Define tasks in Python. Run only what changed.

doit is a task management & automation tool like make, but in pure Python. It tracks file dependencies, caches results, and skips tasks that are already up-to-date. No DSL, no YAML - just Python functions.

Quick Example

Create a dodo.py:

def task_hello():
    """create a greeting file"""
    return {
        'actions': ['echo "Hello from doit" > hello.txt'],
        'targets': ['hello.txt'],
        'clean': True,
    }

def task_shout():
    """convert greeting to uppercase"""
    return {
        'actions': ['tr a-z A-Z < hello.txt > shout.txt'],
        'file_dep': ['hello.txt'],
        'targets': ['shout.txt'],
        'clean': True,
    }

Run it:

$ pip install doit
$ doit
.  hello
.  shout
$ doit            # nothing to do - already up-to-date
-- hello
-- shout
$ doit clean      # remove generated files
$ doit            # runs again
.  hello
.  shout

Key Features

  • Incremental builds - tracks file dependencies and targets, re-runs only what changed
  • DAG execution - tasks run in correct dependency order
  • Python-native - tasks are plain Python dicts and functions, use any library
  • Parallel execution - run independent tasks concurrently (multiprocessing or threading)
  • Subtask generation - yield multiple tasks from a single function
  • Computed dependencies - calc_dep for dynamic dependency graphs
  • Plugin architecture - extensible commands, reporters, backends, and task loaders

license

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

see LICENSE file

Financial contributions on Open Collective

https://opencollective.com/doit/tiers/backers.svg?avatarHeight=50

Projets similaires

Command line driven CI frontend and development task automation tool.

Pythonactionsautomationcli
Ttox-dev
3,9 k étoiles592

A fast, cross-platform build tool inspired by Make, designed for modern workflows.

Gobuild-tooldevopsgo
Ggo-task
16,2 k étoiles921

Ansible is a radically simple IT automation platform that makes your applications and systems easier to deploy and maintain. Automate everything from code deployment to network configuration to cloud management, in a language that approaches plain English, using SSH, with no agents to install on remote systems. https://docs.ansible.com.

Pythonansiblepython
Aansible
70,8 k étoiles24,3 k