flake8 和 Pydantic 约束类型的语法错误:constr(regex=)

Phi*_*997 7 python flake8 pydantic

我在 Python 中使用包 pydantic 和链接器 Flake8。我想将来自 pydantic 的 constr 与常规 Experssion 一起使用。只应传递某些字符。(az、AZ、0-9 和 _)

常规"^[a-zA-Z0-9_]*$"Experssion 有效,但 flake8 向我显示以下错误:

前向注释中的语法错误 '^[a-zA-Z0-9_]*$' flake8(F722)

class RedisSettings(BaseModel):
    keyInput: constr(regex="^[a-zA-Z0-9_]*$") = "" 
    keyOutput: constr(regex="^[a-zA-Z0-9_]*$") = ""
Run Code Online (Sandbox Code Playgroud)

你能帮我避免错误信息吗?

Ant*_*ile 11

这里的错误来自 pyflakes,它试图根据PEP 484将类型注释解释为类型注释

pydantic 使用的注释与 PEP 484 不兼容并导致该错误。您可以在此 pyflakes 问题中阅读更多相关信息

我建议:(1)寻找一种方法来使用pydantic不涉及违反PEP 484或(2)使用忽略flake8的从pyflakes错误extend-ignore/ # noqa: .../per-file-ignores


免责声明:我是 pyflakes 维护者之一,我是当前的 flake8 维护者