o
    ZzjÀ  ã                	   @   s¢   d Z ddlZddlZddlmZ edƒZedƒZedejd�Z	de
e	 d	ed
ede	eB eB fdd„ZG dd„ deejƒZG dd„ dejƒZG dd„ deejƒZdS )a  This module contains helper functions related to enums.

Warning:
    Contents of this module are intended to be used internally by the library and *not* by the
    user. Changes to this module are not considered breaking changes and may not be documented in
    the changelog.
é    N)ÚTypeVarÚ_AÚ_BÚ_Enum)ÚboundÚenum_clsÚvalueÚdefaultÚreturnc                 C   s"   z| |ƒW S  t y   | Y S w )z‡Tries to call ``enum_cls(value)`` to convert the value into an enumeration member.
    If that fails, the ``default`` is returned.
    )Ú
ValueError)r   r   r	   © r   úO/var/www/kodo/tsheker/venv/lib/python3.10/site-packages/telegram/_utils/enum.pyÚ
get_member$   s
   
ÿr   c                   @   ó0   e Zd ZdZdZdefdd„Zdefdd„ZdS )	Ú
StringEnumzƒHelper class for string enums where ``str(member)`` prints the value, but ``repr(member)``
    gives ``EnumName.MEMBER_NAME``.
    r   r
   c                 C   ó   d| j j› d| j› d�S ©Nú<Ú.ú>©Ú	__class__Ú__name__Úname©Úselfr   r   r   Ú__repr__8   ó   zStringEnum.__repr__c                 C   s
   t  | ¡S ©N)ÚstrÚ__str__r   r   r   r   r    ;   ó   
zStringEnum.__str__N©r   Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__r   r   r    r   r   r   r   r   1   ó
    r   c                   @   s>   e Zd ZdZdZdefdd„Zejdk rdefdd„Z	d	S d	S )
ÚIntEnumz€Helper class for int enums where ``str(member)`` prints the value, but ``repr(member)``
    gives ``EnumName.MEMBER_NAME``.
    r   r
   c                 C   r   r   r   r   r   r   r   r   G   r   zIntEnum.__repr__)é   é   c                 C   ó
   t | jƒS r   ©r   r   r   r   r   r   r    L   r!   zIntEnum.__str__N)
r   r#   r$   r%   r&   r   r   ÚsysÚversion_infor    r   r   r   r   r(   @   s    
þr(   c                   @   r   )	Ú	FloatEnumz‚Helper class for float enums where ``str(member)`` prints the value, but ``repr(member)``
    gives ``EnumName.MEMBER_NAME``.
    r   r
   c                 C   r   r   r   r   r   r   r   r   W   r   zFloatEnum.__repr__c                 C   r+   r   r,   r   r   r   r   r    Z   r!   zFloatEnum.__str__Nr"   r   r   r   r   r/   P   r'   r/   )r%   ÚenumÚ_enumr-   Útypingr   r   r   ÚEnumr   Útyper   r   r   r(   Úfloatr/   r   r   r   r   Ú<module>   s   &