Repolode
pydoit

pydoit/doit

タスクを通常のPython関数として定義でき、最新の状態にある処理をスキップするPython製タスクランナー兼ビルドツール。

スター
2,099
フォーク
204
未解決の Issue
112
最終コミット
19 時間前

これは何?

doitはmakeに似たタスク管理・自動化ツールですが、専用のDSLやYAMLではなく、通常のPython関数と辞書でタスクを記述します。タスクはdodo.pyファイルで宣言し、doitが依存関係に沿った順序で実行します。

ファイルの依存関係とターゲットを追跡して結果をキャッシュし、前回の実行以降に入力が変わっていないタスクはスキップします。1つの関数からサブタスクを生成したり、calc_depで依存関係を動的に計算したり、multiprocessingやthreadingを使って並列実行したりできます。

コマンド、レポーター、バックエンド、タスクローダーに対応するプラグインアーキテクチャで拡張できるため、タスク内のPythonコードから任意のライブラリを利用できます。

主な機能

  • 01依存関係が変更されたタスクだけを再実行するインクリメンタルビルド
  • 02通常のPython関数と辞書でタスクを定義
  • 03タスクグラフの依存関係に沿った実行
  • 04multiprocessingまたはthreadingによる並列実行
  • 05サブタスクの生成とcalc_depによる動的な依存関係
  • 06コマンド、レポーター、バックエンド、ローダー向けのプラグインシステム

ユースケース

  • ファイル単位のインクリメンタルな再ビルドが必要なプロジェクトのビルド手順を自動化
  • Pythonで記述したデータ処理パイプラインのオーケストレーション
  • 場当たり的なシェルスクリプトを、バージョン管理できる依存関係対応のPythonタスクに置き換え

クイックスタート

  1. 1

    PyPIからdoitをインストールする

    pip install doit
  2. 2

    タスク関数を含むdodo.pyファイルを作成する(READMEのQuick Exampleを参照)

  3. 3

    dodo.pyがあるディレクトリでdoitを実行する

    doit

収録されている特集

トピック

よくある質問

doit とは?
タスクを通常のPython関数として定義でき、最新の状態にある処理をスキップするPython製タスクランナー兼ビルドツール。 doitはmakeに似たタスク管理・自動化ツールですが、専用のDSLやYAMLではなく、通常のPython関数と辞書でタスクを記述します。タスクはdodo.pyファイルで宣言し、doitが依存関係に沿った順序で実行します。
doit は無料で使えますか?ライセンスは?
doit は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
doit は今もメンテナンスされていますか?
活発にメンテナンス中。doit の最終コミットは 2026年11月7日 です。
doit は何に使えますか?
ファイル単位のインクリメンタルな再ビルドが必要なプロジェクトのビルド手順を自動化 Pythonで記述したデータ処理パイプラインのオーケストレーション 場当たり的なシェルスクリプトを、バージョン管理できる依存関係対応のPythonタスクに置き換え
doit のインストール方法は?
PyPIからdoitをインストールする: pip install doit タスク関数を含むdodo.pyファイルを作成する(READMEのQuick Exampleを参照) dodo.pyがあるディレクトリでdoitを実行する: doit
doit はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/pydoit/doit

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト