ó
    pyüiI  ã                  ó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      ÚM/home/mande/repo/quber/.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   € ð �y‰yÐr   c                óº   • UnU R                    H%  n[        U[        5      (       a  [        s  $  X#   nM'     U$ ! [        [
        [        4 a    [        s s  $ f = f)z›Searches 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$ )zŸGenerate 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¨×=Ñ=ÜØ 
˜|¨9°Z°LÐ@aÐboÐapÐpqÐ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$ )zœGenerate `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^   € ð ×$Ñ$ W¬s¨f°jÓAˆØ×/Ñ/Ð0BÄSÌ,ÔXaÐDbÐdnÓoÐØ"×2Ñ2Ð3HÌ3È&Ð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ÓSØ7;ÐÐ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   