o
    Zzj¤  ã                   @   s8   d Z ddlZddlmZ ddlmZ G dd„ deƒZdS )zCThis module contains an object that represents a Telegram Birthday.é    N)ÚTelegramObject)ÚJSONDictc                       sb   e Zd ZdZdZ	dddœdedededB dedB f‡ fd	d
„ZddedB dej	fdd„Z
‡  ZS )Ú	Birthdatea‚  
    This object describes the birthdate of a user.

    Objects of this class are comparable in terms of equality. Two objects of this class are
    considered equal, if their :attr:`day`, and :attr:`month` are equal.

    .. versionadded:: 21.1

    Args:
        day (:obj:`int`): Day of the user's birth; 1-31.
        month (:obj:`int`): Month of the user's birth; 1-12.
        year (:obj:`int`, optional): Year of the user's birth.

    Attributes:
        day (:obj:`int`): Day of the user's birth; 1-31.
        month (:obj:`int`): Month of the user's birth; 1-12.
        year (:obj:`int`): Optional. Year of the user's birth.

    )ÚdayÚmonthÚyearN©Ú
api_kwargsr   r   r   r	   c                   s:   t ƒ j|d� || _|| _|| _| j| jf| _|  ¡  d S )Nr   )ÚsuperÚ__init__r   r   r   Ú	_id_attrsÚ_freeze)Úselfr   r   r   r	   ©Ú	__class__© úN/var/www/kodo/tsheker/venv/lib/python3.10/site-packages/telegram/_birthdate.pyr   2   s   þzBirthdate.__init__Úreturnc                 C   s2   | j du r|du rtdƒ‚t |p| j | j| j¡S )a·  Return the birthdate as a date object.

        .. versionchanged:: 21.2
           Now returns a :obj:`datetime.date` object instead of a :obj:`datetime.datetime` object,
           as was originally intended.

        Args:
            year (:obj:`int`, optional): The year to use. Required, if the :attr:`year` was not
                present.

        Returns:
            :obj:`datetime.date`: The birthdate as a date object.
        NzHThe `year` argument is required if the `year` attribute was not present.)r   Ú
ValueErrorÚdtmÚdater   r   )r   r   r   r   r   Úto_dateI   s
   ÿzBirthdate.to_date)N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__Úintr   r   r   r   r   Ú__classcell__r   r   r   r   r      s     üúþýüú"r   )r   Údatetimer   Útelegram._telegramobjectr   Útelegram._utils.typesr   r   r   r   r   r   Ú<module>   s
   