コンテンツにスキップ

Annotated Handlers

Type annotations to use with __get_pydantic_core_schema__ and __get_pydantic_json_schema__.

GetJsonSchemaHandler

次のJSONスキーマ生成関数を呼び出すハンドラです。

Attributes:

Name Type Description
mode JsonSchemaMode

Jsonスキーマモードで、validationまたはserialization

resolve_ref_schema

resolve_ref_schema(
    maybe_ref_json_schema: JsonSchemaValue,
) -> JsonSchemaValue

{"$ref": ...}スキーマの実際のスキーマを取得します。 指定したスキーマが$refスキーマでない場合は、そのまま返されます。 つまり、この関数を呼び出す前にチェックする必要はありません。

Parameters:

Name Type Description Default
maybe_ref_json_schema JsonSchemaValue

$refスキーマの可能性があるJsonSchemaValue。

required

Raises:

Type Description
LookupError

参照が見つからない場合。

Returns:

Name Type Description
JsonSchemaValue JsonSchemaValue

$refを持たないJsonSchemaValue。

Source code in pydantic/annotated_handlers.py
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
def resolve_ref_schema(self, maybe_ref_json_schema: JsonSchemaValue, /) -> JsonSchemaValue:
    """`{"$ref": ...}`スキーマの実際のスキーマを取得します。
    指定したスキーマが`$ref`スキーマでない場合は、そのまま返されます。
    つまり、この関数を呼び出す前にチェックする必要はありません。

    Args:
        maybe_ref_json_schema: `$ref`スキーマの可能性があるJsonSchemaValue。

    Raises:
        LookupError: 参照が見つからない場合。

    Returns:
        JsonSchemaValue: `$ref`を持たないJsonSchemaValue。
    """
    raise NotImplementedError

GetCoreSchemaHandler

CoreSchemaスキーマ生成関数を呼び出すハンドラ。

field_name property

field_name: str | None

このバリデータに最も近いフィールドの名前を取得します。

generate_schema

generate_schema(source_type: Any) -> CoreSchema

現在のコンテキストに関連しないスキーマを生成します。 この関数は、例えばシーケンスのスキーマ生成を処理していて、その項目のスキーマを生成したい場合に使用します。 そうしないと、シーケンス自体を対象としたmin_length制約を項目に適用するようなことになってしまいます。

Parameters:

Name Type Description Default
source_type Any

入力タイプ。

required

Returns:

Name Type Description
CoreSchema CoreSchema

生成されたpydantic-coreCoreSchema。

Source code in pydantic/annotated_handlers.py
78
79
80
81
82
83
84
85
86
87
88
89
def generate_schema(self, source_type: Any, /) -> core_schema.CoreSchema:
    """現在のコンテキストに関連しないスキーマを生成します。
    この関数は、例えばシーケンスのスキーマ生成を処理していて、その項目のスキーマを生成したい場合に使用します。
    そうしないと、シーケンス自体を対象とした`min_length`制約を項目に適用するようなことになってしまいます。

    Args:
        source_type: 入力タイプ。

    Returns:
        CoreSchema: 生成された`pydantic-core`CoreSchema。
    """
    raise NotImplementedError

resolve_ref_schema

resolve_ref_schema(
    maybe_ref_schema: CoreSchema,
) -> CoreSchema

definition-refスキーマの実際のスキーマを取得します。 指定されたスキーマがdefinition-refスキーマでない場合は、そのまま返されます。 つまり、この関数を呼び出す前にチェックする必要はありません。

Parameters:

Name Type Description Default
maybe_ref_schema CoreSchema

CoreSchemaで、refベースかどうか。

required

Raises:

Type Description
LookupError

refが見つからない場合。

Returns:

Type Description
CoreSchema

具体的なCoreSchema

Source code in pydantic/annotated_handlers.py
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
def resolve_ref_schema(self, maybe_ref_schema: core_schema.CoreSchema, /) -> core_schema.CoreSchema:
    """`definition-ref`スキーマの実際のスキーマを取得します。
    指定されたスキーマが`definition-ref`スキーマでない場合は、そのまま返されます。
    つまり、この関数を呼び出す前にチェックする必要はありません。

    Args:
        maybe_ref_schema: `CoreSchema`で、`ref`ベースかどうか。

    Raises:
        LookupError: `ref`が見つからない場合。

    Returns:
        具体的な`CoreSchema`。
    """
    raise NotImplementedError