コンテンツにスキップ

Aliases

エイリアス構成のサポート.

AliasPath dataclass

AliasPath(first_arg: str, *args: str | int)

Usage Documentation

AliasPath and AliasChoices

エイリアスを作成するためにvalidation_aliasによって使用されるデータクラス。

Attributes:

Name Type Description
path list[int | str]

文字列または整数のエイリアスのリスト。

Source code in pydantic/aliases.py
27
28
def __init__(self, first_arg: str, *args: str | int) -> None:
    self.path = [first_arg] + list(args)

convert_to_aliases

convert_to_aliases() -> list[str | int]

引数を文字列または整数のエイリアスのリストに変換します。

Returns:

Type Description
list[str | int]

別名のリスト.

Source code in pydantic/aliases.py
30
31
32
33
34
35
36
def convert_to_aliases(self) -> list[str | int]:
    """引数を文字列または整数のエイリアスのリストに変換します。

    Returns:
        別名のリスト.
    """
    return self.path

search_dict_for_path

search_dict_for_path(d: dict) -> Any

エイリアスで指定されたパスを辞書で検索します。

Returns:

Type Description
Any

指定されたパスの値、またはパスが見つからない場合はPydanticUndefined

Source code in pydantic/aliases.py
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
def search_dict_for_path(self, d: dict) -> Any:
    """エイリアスで指定されたパスを辞書で検索します。

    Returns:
        指定されたパスの値、またはパスが見つからない場合は`PydanticUndefined`。
    """
    v = d
    for k in self.path:
        if isinstance(v, str):
            # disallow indexing into a str, like for AliasPath('x', 0) and x='abc'
            return PydanticUndefined
        try:
            v = v[k]
        except (KeyError, IndexError, TypeError):
            return PydanticUndefined
    return v

AliasChoices dataclass

AliasChoices(
    first_choice: str | AliasPath, *choices: str | AliasPath
)

Usage Documentation

AliasPath and AliasChoices

エイリアスを作成するためにvalidation_aliasによって使用されるデータクラス。

Attributes:

Name Type Description
choices list[str | AliasPath]

文字列またはAliasPathを含むリスト。

Source code in pydantic/aliases.py
68
69
def __init__(self, first_choice: str | AliasPath, *choices: str | AliasPath) -> None:
    self.choices = [first_choice] + list(choices)

convert_to_aliases

convert_to_aliases() -> list[list[str | int]]

引数を、文字列または整数のエイリアスを含むリストのリストに変換します。

Returns:

Type Description
list[list[str | int]]

別名のリスト。

Source code in pydantic/aliases.py
71
72
73
74
75
76
77
78
79
80
81
82
83
def convert_to_aliases(self) -> list[list[str | int]]:
    """引数を、文字列または整数のエイリアスを含むリストのリストに変換します。

    Returns:
        別名のリスト。
    """
    aliases: list[list[str | int]] = []
    for c in self.choices:
        if isinstance(c, AliasPath):
            aliases.append(c.convert_to_aliases())
        else:
            aliases.append([c])
    return aliases

AliasGenerator dataclass

AliasGenerator(
    alias: Callable[[str], str] | None = None,
    validation_alias: (
        Callable[[str], str | AliasPath | AliasChoices]
        | None
    ) = None,
    serialization_alias: Callable[[str], str] | None = None,
)

Usage Documentation

Using an AliasGenerator

さまざまなエイリアスを簡単に作成するためにalias_generatorが使用するデータクラスです。

Attributes:

Name Type Description
alias Callable[[str], str] | None

フィールド名を受け取り、そのエイリアスを返す呼び出し可能オブジェクト。

validation_alias Callable[[str], str | AliasPath | AliasChoices] | None

フィールド名を受け取り、その検証エイリアスを返す呼び出し可能オブジェクト。

serialization_alias Callable[[str], str] | None

フィールド名を取り、そのシリアライゼーション・エイリアスを返す呼び出し可能オブジェクト。

generate_aliases

generate_aliases(
    field_name: str,
) -> tuple[
    str | None,
    str | AliasPath | AliasChoices | None,
    str | None,
]

フィールドのaliasvalidation_aliasserialization_aliasを生成します。

Returns:

Type Description
tuple[str | None, str | AliasPath | AliasChoices | None, str | None]

3つのエイリアス(バリデーション、エイリアス、シリアル化)のタプル。

Source code in pydantic/aliases.py
122
123
124
125
126
127
128
129
130
131
132
def generate_aliases(self, field_name: str) -> tuple[str | None, str | AliasPath | AliasChoices | None, str | None]:
    """フィールドの`alias`、`validation_alias`、`serialization_alias`を生成します。

    Returns:
        3つのエイリアス(バリデーション、エイリアス、シリアル化)のタプル。
    """
    alias = self._generate_alias('alias', (str,), field_name)
    validation_alias = self._generate_alias('validation_alias', (str, AliasChoices, AliasPath), field_name)
    serialization_alias = self._generate_alias('serialization_alias', (str,), field_name)

    return alias, validation_alias, serialization_alias  # type: ignore