
    hI                    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      a  !!! abstract "Usage Documentation"
    [`AliasPath` and `AliasChoices`](../concepts/alias.md#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      B/var/www/html/env/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   9   a  !!! abstract "Usage Documentation"
    [`AliasPath` and `AliasChoices`](../concepts/alias.md#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__F   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_aliasesI   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   9   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
   X   a  !!! abstract "Usage Documentation"
    [Using an `AliasGenerator`](../concepts/alias.md#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_aliasi   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_aliases}   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
   X   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&R 8,778  9< 8,778.< .< 9.<r   