Ë
    &V.jÖ  ã                  óB  — d Z ddlmZ ddlZddlmZmZmZ ddlm	Z	 ddl
mZ dZ ej                  di ej                  ¤Ž G d	„ d
«      «       Z ej                  di ej                  ¤Ž G d„ d«      «       Z ej                  di ej                  ¤Ž G d„ d«      «       Zy)z!Support for alias configurations.é    )ÚannotationsN)ÚAnyÚCallableÚLiteral)ÚPydanticUndefinedé   )Ú_internal_dataclass)ÚAliasGeneratorÚ	AliasPathÚAliasChoicesc                  ó4   — e Zd ZU dZded<   dd„Zd	d„Zd
d„Zy)r   zîUsage 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                ó,   — |gt        |«      z   | _        y ©N)Úlistr   )ÚselfÚ	first_argÚargss      úRC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\pydantic/aliases.pyÚ__init__zAliasPath.__init__   s   € Ø�K¤$ t£*Ñ,ˆ�	ó    c                ó   — | j                   S )zvConverts arguments to a list of string or integer aliases.

        Returns:
            The list of aliases.
        )r   )r   s    r   Úconvert_to_aliaseszAliasPath.convert_to_aliases   s   € ð �y‰yÐr   c                ó¬   — |}| j                   D ]   }t        |t        «      rt        c S 	 ||   }Œ" |S # t        t
        t        f$ r t        cY c S w xY w)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_pathzAliasPath.search_dict_for_path&   sZ   € ð ˆØ—”ˆAÜ˜!œSÔ!ä(Ò(ð)Ø�a‘D‘ð ð ˆøô œj¬)Ð4ò )Ü(Ô(ð)ús   «4´AÁAN)r   r   r   z	str | intÚreturnÚNone)r$   zlist[str | int])r    Údictr$   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__r   r   r#   © r   r   r   r      s   … ñð Óó-óôr   r   c                  ó,   — e Zd ZU dZded<   dd„Zdd„Zy)	r   z÷Usage 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                ó,   — |gt        |«      z   | _        y r   )r   r.   )r   Úfirst_choicer.   s      r   r   zAliasChoices.__init__D   s   € Ø$�~¬¨W«Ñ5ˆ�r   c                ó°   — g }| j                   D ]D  }t        |t        «      r |j                  |j	                  «       «       Œ3|j                  |g«       ŒF |S )z‡Converts arguments to a list of lists containing string or integer aliases.

        Returns:
            The list of aliases.
        )r.   r   r   Úappendr   )r   ÚaliasesÚcs      r   r   zAliasChoices.convert_to_aliasesG   sK   € ð *,ˆØ—”ˆAÜ˜!œYÔ'Ø—‘˜q×3Ñ3Ó5Õ6à—‘ ˜sÕ#ð	 ð
 ˆr   N)r0   ústr | AliasPathr.   r5   r$   r%   )r$   zlist[list[str | int]])r'   r(   r)   r*   r+   r   r   r,   r   r   r   r   8   s   … ñð #Ó"ó6ôr   r   c                  ó\   — e Zd ZU dZdZded<   dZded<   dZded<   	 	 	 	 	 	 	 	 d
d„Zdd	„Z	y)r
   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           	     ó|   — d}t        | |«      x}r+ ||«      }|r!t        ||«      st        d|› d|› d|› d�«      ‚|S )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_namer7   Úalias_generators         r   Ú_generate_aliaszAliasGenerator._generate_aliasf   sa   € ð ˆÜ% d¨JÓ7Ð7ˆ?Ð7Ù# JÓ/ˆEÙœZ¨¨}Ô=ÜØ 
˜|¨9°Z°LÐ@aÐboÐapÐpqÐróð ð ˆr   c                ó°   — | j                  dt        f|«      }| j                  dt        t        t        f|«      }| j                  dt        f|«      }|||fS )z´Generate `alias`, `validation_alias`, and `serialization_alias` for a field.

        Returns:
            A tuple of three aliases - validation, alias, and serialization.
        r7   r8   r9   )rA   r   r   r   )r   r?   r7   r8   r9   s        r   Úgenerate_aliaseszAliasGenerator.generate_aliasesz   sa   € ð ×$Ñ$ W¬s¨f°jÓAˆØ×/Ñ/Ð0BÄSÌ,ÔXaÐDbÐdnÓoÐØ"×2Ñ2Ð3HÌ3È&ÐR\Ó]ÐàÐ&Ð(;Ð;Ð;r   )r=   z;Literal['alias', 'validation_alias', 'serialization_alias']r>   z<tuple[type[str] | type[AliasPath] | type[AliasChoices], ...]r?   r   r$   z%str | AliasPath | AliasChoices | None)r?   r   r$   zDtuple[str | None, str | AliasPath | AliasChoices | None, str | None])
r'   r(   r)   r*   r7   r+   r8   r9   rA   rC   r,   r   r   r
   r
   V   s]   … ñð *.€EÐ&Ó-ØOSÐÐLÓSØ7;ÐÐ4Ó;ðàOðð Tðð ð	ð
 
/óô(
<r   r
   r,   )r*   Ú
__future__r   ÚdataclassesÚtypingr   r   r   Úpydantic_corer   Ú	_internalr	   Ú__all__Ú	dataclassÚ
slots_truer   r   r
   r,   r   r   Ú<module>rL      s°   ðÙ 'å "ã ß )Ñ )å +å *à
9€ð €×ÑÑ8Ð,×7Ñ7Ñ8÷%ð %ó 9ð%ðP €×ÑÑ8Ð,×7Ñ7Ñ8÷ð ó 9ðð: €×ÑÑ8Ð,×7Ñ7Ñ8÷-<ð -<ó 9ñ-<r   