小编Phi*_*997的帖子

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

我在 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)

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

python flake8 pydantic

7
推荐指数
1
解决办法
955
查看次数

根据初始化参数初始化两个 Pydantic 模型之一

我有一个MessageModel版本号为 的Pydantic 模型类Literal。现在我们的需求发生了变化,我们需要另一个MessageModel具有更高版本号的版本,因为 的属性MessageModel已经发生了变化。我想要一个类,我可以在其中将版本号作为构造函数的参数。有人有想法吗?

以下是型号:

from typing import Literal
from pydantic import BaseModel


class MessageModelV1(BaseModel):
    version: Literal[1]
    bar: str
        
class MessageModelV2(BaseModel):
    version: Literal[2]
    foo: str
Run Code Online (Sandbox Code Playgroud)

我想要的是一个初始化正确MessageModel版本的类:

model = MessageModel(version=2, ...)
Run Code Online (Sandbox Code Playgroud)

python pydantic

4
推荐指数
1
解决办法
1980
查看次数

标签 统计

pydantic ×2

python ×2

flake8 ×1