构建工具,可选择性在指定条件下运行构建命令块
项目描述
HitchTrigger是一个自包含的构建工具,旨在在满足需要重新构建的条件时触发构建命令块。
条件可以是以下任一或多个的组合
文件(例如源文件)已更改。
指定的(构建)目录不存在。
已过去一段时间。
被监视的变量已更改其值。
在上次运行命令时发生了异常(默认情况下始终为是)。
从PyPI安装
$ hitch install hitchtrigger
使用
import hitchtrigger
monitor = hitchtrigger.Monitor(
"/path/to/project.watch"
#override=["virtualenv", ],
)
# Will run in the following cases:
#
## The command block has never been run before.
## An exception was triggered within the context manager on the previous run.
## venv directory is non-existent.
## A period of 7 days has elapsed
## A previous block named 'previousblock' was run.
## Either requirements.txt or dev_requirements.txt have been modified (file modification dates are monitored).
## Var "v=1" is changed (e.g. to "v=2").
## The line 'override=["virtualenv", ]' is uncommented.
with monitor.block(
"virtualenv",
monitor.nonexistent("venv") | monitor.not_run_since(days=7) | monitor.was_run("previousblock")
monitor.modified(["requirements.txt", "dev_requirements.txt"]) | monitor.var(v=1)
).context() as trigger:
if trigger:
print(trigger.why) # Prints out reason for running
Path("venv").rmtree(ignore_errors=True)
virtualenv("venv").run()
pip("install", "-r", "requirements.txt").run()
pip("freeze").stdout(Path("freeze.txt")).run()
pip("install", "dev_requirements.txt").run()
项目详情
关闭
hitchtrigger-0.2.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 413c5da2b11dc7d46df0ae94a3961879aef3a6cb10a6682611cad9868060b9e3 |
|
MD5 | 618b225901ffb1f531e3e00a94e1e471 |
|
BLAKE2b-256 | 1fc63338cdd98afa5307a750e95e3e96a6ac0caae7826addd8775afa41e49e1e |