doit - 自动化工具
项目描述
doit 的理念是将构建工具的力量应用于执行任何类型的任务
doit 可以作为一个简单的 任务运行器,让您轻松定义临时任务,帮助您以统一、易于使用和发现的方式组织所有项目相关任务。
doit 通过一个高效的执行模型(如构建工具)进行扩展。 doit 创建一个DAG(有向无环图)并能够缓存任务结果。它确保只执行所需的任务,并且按正确顺序执行(即增量构建)。
缓存任务结果的最新检查不仅限于查找依赖项上的文件修改。也不需要“目标”文件。因此,它也适用于处理传统构建工具无法处理的 工作流。
任务依赖项和创建可以在执行期间动态完成,使其适用于驱动复杂的 流水线。
doit 采用插件架构,允许扩展命令、自定义输出、存储后端和“任务加载器”。它还提供了一个 API,允许用户利用 doit 的功能创建新的应用程序/工具,就像一个框架。
doit 是一个成熟的项目,已经活跃开发超过10年。它包括一些附加功能,如:并行执行、自动执行(监视文件更改)、shell 自动补全、DAG 可视化、IPython 集成等。
示例代码
定义返回 Python 字典的函数,其中包含任务的元数据。
摘录自 教程
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,
}
从终端运行
$ 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
项目详情
网站 & 文档 - http://pydoit.org
GitHub 上的项目管理 - https://github.com/pydoit/doit
新闻/推特 - https://twitter.com/pydoit
基于 doit 的插件、扩展和项目 - https://github.com/pydoit/doit/wiki/powered-by-doit
许可证
MIT 许可证 版权 (c) 2008-2022 Eduardo Naufel Schettino
项目详情
下载文件
下载您平台上的文件。如果您不确定要选择哪一个,请了解更多关于 安装包 的信息。
源代码分发
构建分发
doit-0.36.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 71d07ccc9514cb22fe59d98999577665eaab57e16f644d04336ae0b4bae234bc |
|
MD5 | 5ee4995e15d9308ccc6a3211a9fa2abd |
|
BLAKE2b-256 | 5a3666b7dea1bb5688ba0d2d7bc113e9c0d57df697bd3f39ce2a139d9612aeee |