Pipeline API¶
实验性 pipeline API 功能。请谨慎使用此 API,它可能会发生变化。
_Pipeline dataclass
¶
_Pipeline(_steps: tuple[_Step, ...])
基类: Generic[_InT, _OutT]
验证、转换和解析步骤链的抽象表示。
transform ¶
转换上一步的输出。
如果用作 pipeline 中的第一步,则使用字段的类型。 也就是说,转换应用于将值解析为字段类型之后。
源代码位于 pydantic/experimental/pipeline.py
134 135 136 137 138 139 140 141 142 143 |
|
validate_as ¶
validate_as(
tp: EllipsisType, *, strict: bool = ...
) -> _Pipeline[_InT, Any]
validate_as(
tp: type[_NewOutT] | EllipsisType,
*,
strict: bool = False
) -> _Pipeline[_InT, Any]
验证/解析输入为新类型。
如果未提供类型,则使用字段的类型。
默认情况下,类型以 Pydantic 的 lax
模式解析,但您可以通过传递 strict=True
来启用 strict
模式。
源代码位于 pydantic/experimental/pipeline.py
152 153 154 155 156 157 158 159 160 161 162 |
|
validate_as_deferred ¶
将输入解析为新类型,延迟类型的解析,直到当前类完全定义。
当您需要在其自身的类型注解中引用该类时,这非常有用。
源代码位于 pydantic/experimental/pipeline.py
164 165 166 167 168 169 170 |
|
constrain ¶
constrain(constraint: Ge) -> _Pipeline[_InT, _NewOutGe]
constrain(constraint: Gt) -> _Pipeline[_InT, _NewOutGt]
constrain(constraint: Le) -> _Pipeline[_InT, _NewOutLe]
constrain(constraint: Lt) -> _Pipeline[_InT, _NewOutLt]
constrain(constraint: Len) -> _Pipeline[_InT, _NewOutLen]
constrain(
constraint: MultipleOf,
) -> _Pipeline[_InT, _NewOutT]
constrain(
constraint: Timezone,
) -> _Pipeline[_InT, _NewOutDatetime]
constrain(constraint: Predicate) -> _Pipeline[_InT, _OutT]
constrain(
constraint: Interval,
) -> _Pipeline[_InT, _NewOutInterval]
constrain(constraint: _Eq) -> _Pipeline[_InT, _OutT]
constrain(constraint: _NotEq) -> _Pipeline[_InT, _OutT]
constrain(constraint: _In) -> _Pipeline[_InT, _OutT]
constrain(constraint: _NotIn) -> _Pipeline[_InT, _OutT]
constrain(constraint: _ConstraintAnnotation) -> Any
约束值以满足特定条件。
我们支持来自 annotated_types
的大多数条件,以及正则表达式。
大多数时候,您将调用像 gt
、lt
、len
等快捷方法,因此您无需直接调用此方法。
源代码位于 pydantic/experimental/pipeline.py
223 224 225 226 227 228 229 230 231 |
|
predicate ¶
约束值以满足特定谓词。
源代码位于 pydantic/experimental/pipeline.py
233 234 235 |
|
gt ¶
gt(gt: _NewOutGt) -> _Pipeline[_InT, _NewOutGt]
约束值必须大于某个值。
源代码位于 pydantic/experimental/pipeline.py
237 238 239 |
|
lt ¶
lt(lt: _NewOutLt) -> _Pipeline[_InT, _NewOutLt]
约束值必须小于某个值。
源代码位于 pydantic/experimental/pipeline.py
241 242 243 |
|
ge ¶
ge(ge: _NewOutGe) -> _Pipeline[_InT, _NewOutGe]
约束值必须大于或等于某个值。
源代码位于 pydantic/experimental/pipeline.py
245 246 247 |
|
le ¶
le(le: _NewOutLe) -> _Pipeline[_InT, _NewOutLe]
约束值必须小于或等于某个值。
源代码位于 pydantic/experimental/pipeline.py
249 250 251 |
|
len ¶
约束值必须具有特定长度。
源代码位于 pydantic/experimental/pipeline.py
253 254 255 |
|
multiple_of ¶
multiple_of(
multiple_of: _NewOutDiv,
) -> _Pipeline[_InT, _NewOutDiv]
multiple_of(
multiple_of: _NewOutMod,
) -> _Pipeline[_InT, _NewOutMod]
约束值必须是某个数字的倍数。
源代码位于 pydantic/experimental/pipeline.py
263 264 265 |
|
eq ¶
eq(value: _OutT) -> _Pipeline[_InT, _OutT]
约束值必须等于某个值。
源代码位于 pydantic/experimental/pipeline.py
267 268 269 |
|
not_eq ¶
not_eq(value: _OutT) -> _Pipeline[_InT, _OutT]
约束值必须不等于某个值。
源代码位于 pydantic/experimental/pipeline.py
271 272 273 |
|
in_ ¶
约束值必须在某个集合中。
源代码位于 pydantic/experimental/pipeline.py
275 276 277 |
|
not_in ¶
约束值必须不在某个集合中。
源代码位于 pydantic/experimental/pipeline.py
279 280 281 |
|
otherwise ¶
组合两个验证链,如果第一个链成功,则返回第一个链的结果,如果失败,则返回第二个链的结果。
源代码位于 pydantic/experimental/pipeline.py
326 327 328 |
|
then ¶
将一个验证链的结果管道输送到另一个验证链中。
源代码位于 pydantic/experimental/pipeline.py
332 333 334 |
|
Arguments schema API¶
实验性模块,公开了一个函数,用于生成验证可调用参数的核心模式。
generate_arguments_schema ¶
generate_arguments_schema(
func: Callable[..., Any],
schema_type: Literal[
"arguments", "arguments-v3"
] = "arguments-v3",
parameters_callback: (
Callable[[int, str, Any], Literal["skip"] | None]
| None
) = None,
config: ConfigDict | None = None,
) -> CoreSchema
为函数的参数生成模式。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
func
|
Callable[..., Any]
|
要为其生成模式的函数。 |
required |
schema_type
|
Literal['arguments', 'arguments-v3']
|
要生成的模式的类型。 |
'arguments-v3'
|
parameters_callback
|
Callable[[int, str, Any], Literal['skip'] | None] | None
|
将为每个参数调用的可调用对象。 回调应接受三个必需的参数:索引、名称和类型注解(或 |
None
|
config
|
ConfigDict | None
|
要使用的配置。 |
None
|
返回
类型 | 描述 |
---|---|
CoreSchema
|
生成的模式。 |
源代码位于 pydantic/experimental/arguments_schema.py
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
|