
    g                    B   S r SSKJr  SSKrSSKJrJrJr  SSKJ	r	  SSK
Jr  Sr\R                  " S0 \R                  D6 " S	 S
5      5       r\R                  " S0 \R                  D6 " S S5      5       r\R                  " S0 \R                  D6 " S S5      5       rg)z!Support for alias configurations.    )annotationsN)AnyCallableLiteral)PydanticUndefined   )_internal_dataclass)AliasGenerator	AliasPathAliasChoicesc                  B    \ rS rSr% SrS\S'   S
S jrSS jrSS jrSr	g	)r      zUsage docs: https://docs.pydantic.dev/2.10/concepts/alias#aliaspath-and-aliaschoices

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

Attributes:
    path: A list of string or integer aliases.
zlist[int | str]pathc                ,    U/[        U5      -   U l        g N)listr   )self	first_argargss      I/home/matz/Project1/venv/lib/python3.13/site-packages/pydantic/aliases.py__init__AliasPath.__init__   s    K$t*,	    c                    U R                   $ )z^Converts arguments to a list of string or integer aliases.

Returns:
    The list of aliases.
r   )r   s    r   convert_to_aliasesAliasPath.convert_to_aliases   s     yyr   c                    UnU R                    H%  n[        U[        5      (       a  [        s  $  X#   nM'     U$ ! [        [
        [        4 a    [        s s  $ f = f)zSearches a dictionary for the path specified by the alias.

Returns:
    The value at the specified path, or `PydanticUndefined` if the path is not found.
)r   
isinstancestrr   KeyError
IndexError	TypeError)r   dvks       r   search_dict_for_pathAliasPath.search_dict_for_path&   s[     A!S!!(()D   j)4 )(()s   :AAr   N)r   r    r   z	str | intreturnNone)r)   zlist[str | int])r$   dictr)   r   )
__name__
__module____qualname____firstlineno____doc____annotations__r   r   r'   __static_attributes__ r   r   r   r      s     -r   r   c                  8    \ rS rSr% SrS\S'   S	S jrS
S jrSrg)r   8   zUsage docs: https://docs.pydantic.dev/2.10/concepts/alias#aliaspath-and-aliaschoices

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

Attributes:
    choices: A list containing a string or `AliasPath`.
zlist[str | AliasPath]choicesc                ,    U/[        U5      -   U l        g r   )r   r6   )r   first_choicer6   s      r   r   AliasChoices.__init__D   s    $~W5r   c                    / nU R                    HK  n[        U[        5      (       a!  UR                  UR	                  5       5        M9  UR                  U/5        MM     U$ )zoConverts arguments to a list of lists containing string or integer aliases.

Returns:
    The list of aliases.
)r6   r   r   appendr   )r   aliasescs      r   r   AliasChoices.convert_to_aliasesG   sN     *,A!Y''q3356s#	 
 r   )r6   N)r8   str | AliasPathr6   r?   r)   r*   )r)   zlist[list[str | int]])	r,   r-   r.   r/   r0   r1   r   r   r2   r3   r   r   r   r   8   s     #"6r   r   c                  h    \ rS rSr% SrSrS\S'   SrS\S'   SrS\S'           SS	 jr	SS
 jr
Srg)r
   V   a  Usage docs: https://docs.pydantic.dev/2.10/concepts/alias#using-an-aliasgenerator

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

Attributes:
    alias: A callable that takes a field name and returns an alias for it.
    validation_alias: A callable that takes a field name and returns a validation alias for it.
    serialization_alias: A callable that takes a field name and returns a serialization alias for it.
NzCallable[[str], str] | Nonealiasz6Callable[[str], str | AliasPath | AliasChoices] | Nonevalidation_aliasserialization_aliasc           	         Sn[        X5      =n(       a4  U" U5      nU(       a%  [        XB5      (       d  [        SU SU SU S35      eU$ )zGenerate an alias of the specified kind. Returns None if the alias generator is None.

Raises:
    TypeError: If the alias generator produces an invalid type.
Nz	Invalid `z	` type. `z!` generator must produce one of ``)getattrr   r#   )r   
alias_kindallowed_types
field_namerB   alias_generators         r   _generate_aliasAliasGenerator._generate_aliasf   s`     %d77?7#J/EZ==
|9ZL@aboappqr  r   c                    U R                  S[        4U5      nU R                  S[        [        [        4U5      nU R                  S[        4U5      nX#U4$ )zGenerate `alias`, `validation_alias`, and `serialization_alias` for a field.

Returns:
    A tuple of three aliases - validation, alias, and serialization.
rB   rC   rD   )rL   r    r   r   )r   rJ   rB   rC   rD   s        r   generate_aliasesAliasGenerator.generate_aliasesz   s^     $$WsfjA//0BS,XaDbdno"223H3&R\](;;;r   r3   )rH   z;Literal['alias', 'validation_alias', 'serialization_alias']rI   z<tuple[type[str] | type[AliasPath] | type[AliasChoices], ...]rJ   r    r)   z%str | AliasPath | AliasChoices | None)rJ   r    r)   zDtuple[str | None, str | AliasPath | AliasChoices | None, str | None])r,   r-   r.   r/   r0   rB   r1   rC   rD   rL   rO   r2   r3   r   r   r
   r
   V   s]     *.E&-OSLS7;4;O T 	
 
/(
<r   r
   r3   )r0   
__future__r   dataclassestypingr   r   r   pydantic_corer   	_internalr	   __all__	dataclass
slots_truer   r   r
   r3   r   r   <module>rY      s    ' "  ) ) + *
9 8,778% % 9%P 8,778  9: 8,778-< -< 9-<r   