Flake8字符串字面值验证
项目描述
flake8-literal
flake8插件,用于验证字符串字面值。
此插件用于强制执行字符串字面值的一致样式,它识别内联字面值、多行字面值和文档字符串。
引号使用
您可以为每种类型的字符串选择单引号或双引号,并且插件将强制执行一致的使用。
如果开启了avoid-escape
功能(默认),当这样做可以避免使用转义引号时,它将强制使用相反的引号类型。
它还识别延续字符串,并在可能的情况下强制整个集合的一致引号样式。
原始字符串
此插件检查原始字符串的使用,防止不必要的原始字符串使用,并在这样做可以避免转义反斜杠时要求使用原始字符串。
由于原始字符串常用于正则表达式模式,默认情况下,当用作正则表达式模式时允许不必要的原始字符串。有一个选项可以避免在正则表达式模式中使用原始字符串,或者无论是否存在转义都要求它们。请注意,此功能仅在直接在re函数调用中使用字符串字面值时才有效,并且必须以导入的方式调用这些函数。例如:
from re import compile as regex_compile
x = regex_compile(r'this does not need to be raw')
是可接受的,但是
import re
pattern = r'this does not need to be raw'
x = re.compile(pattern)
或
import re
regex_compile = re.compile
y = regex_compile(r'this does not need to be raw')
不会。
计划功能
- 强制使用多行字符串
- 字符串连接
- 格式化字符串的使用
安装
标准Python包安装
pip install flake8-literal
选项
literal-inline-quotes
: 用于内联字符串字面量的引号,选择项:单引号
,双引号
(默认:单引号
)
literal-multiline-quotes
: 用于多行字符串字面量的引号,选择项:单引号
,双引号
(默认:单引号
)
literal-docstring-quotes
: 用于文档字符串的引号,选择项:单引号
,双引号
(默认:双引号
)
literal-avoid-escape
: 尽可能避免在内联字符串字面量中使用转义符(默认启用)
literal-no-avoid-escape
: 禁用在内联字符串字面量中避免转义符
literal-re-pattern-raw
: 控制正则表达式模式中使用原始字符串字面量的方式,选择项 避免
,允许
,总是
(默认:允许
)
literal-include-name
: 在消息中包含插件名称
literal-no-include-name
: 在消息中不包含插件名称(默认设置)
所有选项都可以使用带有 --
前缀的命令行指定,也可以放置在你的 flake8 配置文件中。
错误代码
代码 | 信息 |
---|---|
LIT001 | 使用单引号表示字符串 |
LIT002 | 使用双引号表示字符串 |
LIT003 | 使用单引号表示多行字符串 |
LIT004 | 使用双引号表示多行字符串 |
LIT005 | 使用单引号表示文档字符串 |
LIT006 | 使用双引号表示文档字符串 |
LIT007 | 使用三个单引号表示文档字符串 |
LIT008 | 使用三个双引号表示文档字符串 |
LIT011 | 使用双引号表示字符串以避免转义的单引号 |
LIT012 | 使用单引号表示字符串以避免转义的双引号 |
LIT013 | 转义的单引号是不必要的 |
LIT014 | 转义的双引号是不必要的 |
LIT015 | 使用双引号表示续行字符串以匹配 |
LIT016 | 使用单引号表示续行字符串以匹配 |
LIT101 | 在不使用转义符时删除原始前缀 |
LIT102 | 使用原始前缀以避免转义的斜杠 |
LIT103 | 为正则表达式使用原始前缀 |
示例
x = "value" <-- LIT001
x = 'aren\'t escapes great?' <-- LIT011
x = "can\'t stop escaping" <-- LIT013
x = ('one' <-- LIT015
"o'clock")
x = r'no need to be raw' <-- LIT101
x = '\\windows\\path' <-- LIT102
x = re.compile(r'pattern') <-- (no error when literal-re-pattern-raw set to `allow` or `always`)
x = re.compile('pattern') <-- LIT103 (when literal-re-pattern-raw set to `always`)