跳转到主要内容

孩子们Python ANSI字符串库

项目描述

https://pypip.in/v/kids.ansi/badge.png https://secure.travis-ci.org/0k/kids.ansi.png?branch=master

孩子们.ansi 是一个Python库,提供在Python中编写命令行实用程序时的辅助功能。它是“孩子们”(Keep It Dead Simple的缩写)库的一部分,但也可以在不添加额外依赖项的情况下使用。

成熟度

此代码处于测试版阶段。其中一部分正在进行反思。此处记录的内容不太可能改变,实际上是可以工作的。

功能

使用 孩子们.ansi

  • 手动访问和插入ANSI转义序列。

  • 或者使用 aformat 包装器以实现完全抽象。

注意,它与 termcolor 非常相似。

使用方法

aformat

孩子们.ansi具有一个 aformat 函数,可以返回包含ANSI字符的已准备打印的字符串

>>> from kids.ansi import aformat

>>> aformat("You", fg="red")
aformat('\x1b[31mYou\x1b[39m')

>>> aformat("Hello You, how are you?", fg="black", bg="blue", attrs=["bold", ])
aformat('\x1b[30m\x1b[44mHello You, how are you?\x1b[39m\x1b[49m')

注意 aformat 是相当聪明的

>>> you = aformat("You", fg="red")
>>> aformat("Hello, Are " + you + " Well", fg="blue")
aformat('\x1b[34mHello, Are \x1b[31mYou\x1b[34m Well\x1b[39m')

注意 you 的结尾ANSI序列将蓝色颜色设置回默认颜色,而不是蓝色。因此,单词“Well”仍然显示为蓝色。

aformat 是聪明的,但仍有一些限制,主要影响字符串插值

>>> aformat("Hello, Are %s Well" % you, fg="blue")
aformat('\x1b[34mHello, Are \x1b[31mYou\x1b[39m Well\x1b[39m')

单词“Well”没有蓝色。这是一个问题。

访问ANSI序列

可以通过FG、BG、ATTR和CTL属性字典访问原始ANSI颜色序列

>>> from kids.ansi import FG, BG, ATTR, CTL

>>> FG.white
'\x1b[37m'
>>> BG.red
'\x1b[41m'
>>> BG.default
'\x1b[49m'
>>> ATTR.bold
'\x1b[1m'
>>> ATTR.unbold
'\x1b[21m'
>>> CTL.reset
'\x1b[0m'

由于它们是字典,并且您不记得所有可访问的键,因此可以轻松地对其执行内省

>>> sorted(ATTR)  ## doctest: +NORMALIZE_WHITESPACE
['blink', 'bold', 'conceal', 'faint', 'italic', 'reverse', 'strike',
 'unblink', 'unbold', 'unconceal', 'underline', 'unfaint', 'unitalic',
 'unreverse', 'unstrike', 'ununderline']

然后您可以

>>> "Hmm " + FG.red + "Hello" + FG.default + " you."
'Hmm \x1b[31mHello\x1b[39m you.'

并打印它。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

kids.ansi-0.0.1.tar.gz (6.2 kB 查看哈希值)

上传时间 源代码

支持者