如何使用枚举限制 pydantic 的选择
How to limit choices for pydantic using Enum
我得到下一个枚举选项:
class ModeEnum(str, Enum):
""" mode """
map = "map"
cluster = "cluster"
region = "region"
这个枚举用在两个 Pydantic 数据结构中。
在一个数据结构中,我需要所有枚举选项。
在其他数据结构中,我需要排除 region
。
如果我为此使用自定义验证并尝试输入一些 other
值,标准验证错误消息会通知,允许的值都是三个。
那么在这种情况下最好的决定是什么?
P.S。
我在 ModeEnum
中使用 map
变量。不好吗?我无法想象它可以覆盖内置 map
对象的情况,但仍然可以吗?
有点hack,但如果你用pre=True
标记你的验证器,你应该能够先强制它运行,然后你可以抛出一个自定义错误允许的值。
我得到下一个枚举选项:
class ModeEnum(str, Enum):
""" mode """
map = "map"
cluster = "cluster"
region = "region"
这个枚举用在两个 Pydantic 数据结构中。
在一个数据结构中,我需要所有枚举选项。
在其他数据结构中,我需要排除 region
。
如果我为此使用自定义验证并尝试输入一些 other
值,标准验证错误消息会通知,允许的值都是三个。
那么在这种情况下最好的决定是什么?
P.S。
我在 ModeEnum
中使用 map
变量。不好吗?我无法想象它可以覆盖内置 map
对象的情况,但仍然可以吗?
有点hack,但如果你用pre=True
标记你的验证器,你应该能够先强制它运行,然后你可以抛出一个自定义错误允许的值。