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

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:不解析XML的简单XML。例外   KIE Workbench的java自定义UI   java将元素从bucket移动到LinkedList,但有一个元素被完全删除   如何将java stream collect转换为scala   java运行AsynkTask多次不工作   java组织。xml。萨克斯。SAXParseException:cvccomplextype。2.4.c:匹配的通配符是严格的   java是一种计算排序算法所需时间的合适方法   java在O(logn)时间内对排序整数数组中具有相同数字的数字进行计数   xpages从当前数据库javaAgent调用另一个数据库的javaAgent   java如何在instagram中上传特定位置的所有照片   JavaApachePOI可以有效地删除多个列   java创建的对象数   java我可以在关闭连接时关闭Oracle JDBC自动提交吗?