用于在字符串或字节字面量中使用一致转义风格的flake8插件
项目描述
flake8-escaping-style
一个flake8插件,帮助在整个项目中保持字符串和字节字面量中转义序列的一致风格。
安装
此插件至少需要Python 3.7版本。
与大多数flake8插件一样,首先安装包
pip install flake8-escaping-style
然后在您的flake8配置中,使用匹配您偏好的select
和ignore
组合。
例如,如果您想防止除\N{字符名称}
之外的所有转义,它将看起来像这样
select=ESC1
ignore=ESC105
错误代码列表
对于字符串字面量(str
)
错误代码 | 转义序列样式 | 示例字符串("café" ) |
---|---|---|
ESC101 |
八进制(3位) | "caf\351" |
ESC102 |
十六进制(2位) | "caf\xe9" |
ESC103 |
十六进制(4位) | "caf\u00e9" |
ESC104 |
十六进制(8位) | "caf\U000000e9" |
ESC105 |
命名字符 | "caf\N{latin small letter e with acute}" |
对于字节字符串字面量(bytes
)
为了完整性,此插件还可以检测字节字符串字面量中的转义风格
错误代码 | 转义序列样式 | 示例字节字符串 |
---|---|---|
ESC201 |
八进制(3位) | “caf\351” |
ESC202 |
十六进制(2位) | “caf\xE9” |
动机
Python有多种不同的方式来编写转义序列。
在Python 2的旧时代,任何文件都被假定为ASCII编码,除非你在一行的开头添加特殊注释。这意味着如果你想在源代码中写入字符串"café"
,你必须要么在文件的第行开头添加这个注释,要么使用转义序列如"caf\xe9"
或"caf\u00E9"
。
如今,Python已经取消了这些限制,并使用更实用的默认编码(utf-8,参见PEP3120)。因此,对于大多数字符串字面量,你可以使用你想要的字符,而不必使用转义序列。
我仍然建议在使用“奇怪”的[1]字符和特别是不可见字符时使用转义序列。但在此情况下,我喜欢使用“命名字符”转义样式\N{name}
。
[1]:“奇怪”的意思是任何在我键盘上需要超过两个手指才能输入的字符。
以一个非断行空格为例。这是一个很实用的字符,有时非常有用,但它也可能导致一些艰难的调试。
你能看出区别吗?
>>> "hello world" == "hello world"
False
在这里使用转义序列(而不是字符本身)可以使正在发生的事情更加明显。
>>> "hello world" == "hello\xa0world"
False
在我看来,这更好,但仍然需要知道哪个字符的十六进制数字是A0
。最佳选项是使用命名转义序列。
>>> "hello world" == "hello\N{no-break space}world"
False
因此,我更喜欢在我的项目中只使用“命名”风格的转义序列(ESC105
)。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源代码分发
flake8-escaping-style-0.1.2.tar.gz (5.4 kB 查看哈希值)
构建分发
关闭
flake8-escaping-style-0.1.2.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2e2b4653cd83279bd052e7273a501c91108898cf52096943a9eda53e80451145 |
|
MD5 | 73d0afe13086701aa82269b940f24aab |
|
BLAKE2b-256 | b44db007f50bd50b22509ef92abc06dc02192bb5649e41ef29fe189a0d296a1b |
关闭
flake8_escaping_style-0.1.2-py2.py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 253ec6105b0a52c1e3ca82442b218cd6d559f832e390b0ca95ea8101bc135d6f |
|
MD5 | 6bd9860aef37bdfb8e86e19154f5bbf5 |
|
BLAKE2b-256 | df39f6604947212db511a8fe11fec757bff4975dd6889484b1196c574de3bbc1 |