轻松创建构建文件和cli工具。
bump的Python项目详细描述
用法
颠簸使用起来很简单。打开一个bum.py文件,定义你的任务, 并在同一目录中运行bump。
import bumpy as b @b.task def build(): '''Builds ALL THE CODE.''' print 'Building'
$ bump build Building
API
bumpy提供了一个简单的函数装饰器来注册和跟踪 任务,以及几个帮助函数,使您的生活更轻松 与shell命令和文件交互。
任务
为了把你可爱的功能转变成一项艰巨的任务, 简单地应用 @task decorator:
import bumpy as b @b.task def build(): '''Builds ALL THE CODE.''' print 'Building'
函数名将用作任务名。文档字符串将是 保存并用于内置帮助。任何参数或关键字参数 将被解析并注册为cli标志。
先决条件任务/文件可以用可选的reqs指定 任务的关键字参数
@b.task(reqs=build) def run(): print 'Running'
需求可以是单个需求,也可以是一组需求。一 依赖项只在第一次需要时执行,尽管 它可以通过命令行显式执行多次:
$ bump run Building Running $ bump build run Building Running $ bump build build run Building Building Running
str 需求将解释为文件/路径。
生成的文件可以用可选的 gens 关键字指定 参数:
@b.task(gens='docs') def docs(): print 'Documenting'
生成的文件将被保存,并可以使用 bumpy的 clean() 帮助函数。生成的文件也将被使用 查找基于文件的依赖关系链。
任务别名可以用可选的 alias 关键字指定 参数:
@b.task(alias='pkg', reqs=(build, docs)) def package(): print 'Packaging'
别名 可以是单个别名或一组别名。
任务可以设为"默认"任务. 如果未提供参数,则调用,方法是将 'default' 作为 可选参数:
@b.task('default'): def build(): print 'Building'
任务可以设置为"设置"任务 在执行任何其他任务之前调用,方法是提供 'setup' 作为可选 参数:
@b.task('setup') def setup(): print 'Setting stuff up'
安装任务也可以接受参数。以后再说!
类似于"安装"任务,"拆卸"任务在每一个任务之后调用 任务,就在退出之前:
import bumpy as b @b.task def build(): '''Builds ALL THE CODE.''' print 'Building'0
通过添加 'private' 可选参数或在其名称前加下划线:
import bumpy as b @b.task def build(): '''Builds ALL THE CODE.''' print 'Building'1
私有任务仍然可以是必需的和执行的,但不能被调用 在命令行中,并且不会包含在内置帮助中。
任务可以通过添加可选的 参数:
import bumpy as b @b.task def build(): '''Builds ALL THE CODE.''' print 'Building'2
函数参数/关键字参数将转换为 命令行标志和选项。
import bumpy as b @b.task def build(): '''Builds ALL THE CODE.''' print 'Building'3
然后可以这样调用:
import bumpy as b @b.task def build(): '''Builds ALL THE CODE.''' print 'Building'4
关键字参数 必须在标准参数之前,与 巨蟒的标准。
助手
要中止任务执行并显示错误消息,请使用 中止(消息,*格式参数) :
import bumpy as b @b.task def build(): '''Builds ALL THE CODE.''' print 'Building'5
如果提供格式参数, 消息将用作字符串 str.format格式
要调用shell命令,请使用shell(command,*formatargs) :
import bumpy as b @b.task def build(): '''Builds ALL THE CODE.''' print 'Building'6
如果提供格式参数,则命令将用作字符串 str.format格式
要在执行期间而不是执行前要求任务,请使用 要求(*要求) :
import bumpy as b @b.task def build(): '''Builds ALL THE CODE.''' print 'Building'7
检查需求是否有效,而不实际执行它们, 使用 有效的(*reqs)
要获取文件集合的最年轻年龄,请使用: 年龄(*路径) :
import bumpy as b @b.task def build(): '''Builds ALL THE CODE.''' print 'Building'8
如果您在用 gens 记录生成的文件时非常小心, bumpy将能够自动删除所有生成的文件 clean() :
import bumpy as b @b.task def build(): '''Builds ALL THE CODE.''' print 'Building'9
名称空间
通过使用可选的 命名空间,可以将任务分组到命名空间中。 关键字参数:
$ bump build Building0
$ bump build Building1
当bumpy启动时,它会在
bump/
目录中搜索模块
并导入它们,为每个名称空间分配适当的名称空间。如果你想要
要在全局命名空间中的任务,请将它们添加到
bump/
CLI
bumpy --版本 将打印bumpy的当前运行版本。
bump -h 或 bump --help 将打印内置帮助消息。
bump -f <;file>; 将告诉 bump 加载不同的文件 bum.py 或 build.py 的
bump -v 任务将启用详细模式,打印进入/退出 每次任务开始和结束执行时都会发送消息。
bump task1 task2 task3 将按顺序执行任务