在代码中定义可重复过程的工具

runbook的Python项目详细描述


runbook.py(v0.1)

pip3 install runbook

灵感来自this blog post 丹·斯莱蒙。

在从Runbook扩展的类中定义自己的运行手册。每一种方法 不是以下划线开头,而是作为要完成的步骤按顺序读入。 步骤名将根据方法名生成,并采用描述 从方法自己的文档字符串或从调用返回的任何数据 方法。

fromrunbookimportRunbookclassCustomRunbook(Runbook):deffirst_step(self):"""        Do ABC now.        """defsecond_step():"""        Do EFG then wait 1 hour.        """defthird_step():task="reboot"returnf"perform a {task}"@staticmethoddeflast_step():"""Everything ok?"""

每个Runbook对象都有一个默认的main方法,您可以使用它来执行脚本。

if__name__=='__main__':CustomRunbook.main()

Runbook对象也可以被实例化并直接运行。

book=CustomRunbook(file_path="path/to/file")book.run()

您应该避免使用已经定义的步骤名runmain。如果你需要覆盖这些 方法来定义自定义行为,然后就可以了。

完成步骤后,结果将写入日志文件。您可以通过传递 main的参数,如:

python3 my_runbook.py output.log

重用同一日志文件时,将跳过已完成的步骤。在Runbook中找到的任何新步骤 日志中没有的将被正常处理,结果将附加到文件末尾。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java中ArrayList的超简单问题   Java 8在一段时间后过期   java如何创建具有用户定义维度的矩阵,并使用从上到下、从左到右的递增值填充它?   java从JDBC重启mysql   带有sqlite的java LiveData未更新UI   带有JDialog的java小程序在Mac OSX中未正确隐藏   java ActionListener无法从公共类引用数组?   java Apache Digester:NoSuchMethodException:没有这样的可访问方法   安卓中数据库中的java数据没有以正确的格式检索   java快速排序实现:使用random pivot时几乎排序   安卓 Java:高效的ArrayList过滤?   java如何在单独的文件中制作GUI程序   jasper报告如何从JSP或Java代码在JasperReport中传递参数值?