实用工具

内部的实用小程序。;例如:遇到错误信息后终止执行,或者对多行输出进行缩进处理。

fabric.utils.abort(msg)

终止执行,向 stderr 输入错误信息 msg 并退出(错误状态 1)。

This function currently makes use of SystemExit in a manner that is similar to sys.exit (but which skips the automatic printing to stderr, allowing us to more tightly control it via settings).

Therefore, it’s possible to detect and recover from inner calls to abort by using except SystemExit or similar.

fabric.utils.error(message, func=None, exception=None, stdout=None, stderr=None)

给定错误信息 message 以调用 func

如果 funcNone ,将根据 env.warn_only 来调用 abort 还是 warn

如果 exception` 参数(应当是字符串类型)存在,将会在用户传入的 message 周围输出它。

如果指定了 stdin 和/或者 stderr ,将作为打印输出的终端。

fabric.utils.fastprint(text, show_prefix=False, end='', flush=True)

立即打印 text 不添加任何前缀或后缀。

该函数只是 puts 的别名,区别在参数的迷默认值不同, text 将会不加任何装饰地输出出去。

当你想要输出可能被 Python 输出所缓冲(比如在计算密集的 for 循环中)时会很需要它。Since such use cases typically also require a lack of line endings (such as printing a series of dots to signify progress) it also omits the traditional newline by default.

注解

由于 fastprint 会调用 puts ,因此其 output level 也取决于 user

0.9.2 新版功能.

参见

puts

fabric.utils.indent(text, spaces=4, strip=False)

根据给定空格数缩进 text

如果 text 并非字符串,将被当作单行输出的列表,并使用 \n 连接、排列。

stripTrue ,a minimum amount of whitespace is removed from the left-hand side of the given string (so that relative indents are preserved, but otherwise things are left-stripped). 这样你就能有效地“规范化”某些输出前的缩进。

fabric.utils.isatty(stream)

检查输入输出流是否是 tty。

并非所有类文件对象都实现了 isatty 方法。

fabric.utils.puts(text, show_prefix=None, end='\n', flush=False)

print 函数的别名,同样受 Fabric 管理输出。

换句话说,这个函数只是简单地将输出指向 sys.stdout` ,如果``useroutput level 设置为 False 则隐藏输出。

如果 show_prefix=Falseputs 将略过默认添加的输出头 [hostname] 。(如果 env.host_string 为空的话也能起到同样的效果。)

设置 end 为空字符串 '' 将不会在末尾输出换行。()

你可以通过设置 flush=True 来强制立即输出(例如绕过输出缓冲)。

0.9.2 新版功能.

参见

fastprint

fabric.utils.warn(msg)

打印警告信息,但不退出执行。

该函数遵循 Fabric output controls 如果已开启 warnings 等级(默认开启),将会向 stderr 打印 msg