Skip to content

Aliases

Support for alias configurations.

AliasPath dataclass

AliasPath(first_arg, *args)

Usage Documentation

AliasPath and AliasChoices

A data class used by validation_alias as a convenience to create aliases.

Attributes:

Name Type Description
path list[int | str]

A list of string or integer aliases.

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

convert_to_aliases

convert_to_aliases()

Converts arguments to a list of string or integer aliases.

Returns:

Type Description
list[str | int]

The list of aliases.

Source code in pydantic/aliases.py
27
28
29
30
31
32
33
def convert_to_aliases(self) -> list[str | int]:
    """Converts arguments to a list of string or integer aliases.

    Returns:
        The list of aliases.
    """
    return self.path

AliasChoices dataclass

AliasChoices(first_choice, *choices)

Usage Documentation

AliasPath and AliasChoices

A data class used by validation_alias as a convenience to create aliases.

Attributes:

Name Type Description
choices list[str | AliasPath]

A list containing a string or AliasPath.

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

convert_to_aliases

convert_to_aliases()

Converts arguments to a list of lists containing string or integer aliases.

Returns:

Type Description
list[list[str | int]]

The list of aliases.

Source code in pydantic/aliases.py
51
52
53
54
55
56
57
58
59
60
61
62
63
def convert_to_aliases(self) -> list[list[str | int]]:
    """Converts arguments to a list of lists containing string or integer aliases.

    Returns:
        The list of aliases.
    """
    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

Usage Documentation

Using an AliasGenerator

A data class used by alias_generator as a convenience to create various aliases.

Attributes:

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

A callable that takes a field name and returns an alias for it.

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

A callable that takes a field name and returns a validation alias for it.

serialization_alias Callable[[str], str] | None

A callable that takes a field name and returns a serialization alias for it.

generate_aliases

generate_aliases(field_name)

Generate alias, validation_alias, and serialization_alias for a field.

Returns:

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

A tuple of three aliases - validation, alias, and serialization.

Source code in pydantic/aliases.py
102
103
104
105
106
107
108
109
110
111
112
def generate_aliases(self, field_name: str) -> tuple[str | None, str | AliasPath | AliasChoices | None, str | None]:
    """Generate `alias`, `validation_alias`, and `serialization_alias` for a field.

    Returns:
        A tuple of three aliases - validation, alias, and serialization.
    """
    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