
    i                     V    d Z ddlmZ ddlmZ ddlmZ ddlmZ  G d de          Z	dS )	zEThis module contains an object that represents a Telegram ForceReply.    )Final)	constants)TelegramObject)JSONDictc            	            e Zd ZU dZdZ	 	 ddddedz  dedz  dedz  f fdZe	j
        j        Zee         ed	<   	 e	j
        j        Zee         ed
<    xZS )
ForceReplya	  
    Upon receiving a message with this object, Telegram clients will display a reply interface to
    the user (act as if the user has selected the bot's message and tapped 'Reply'). This can be
    extremely useful if you want to create user-friendly step-by-step interfaces without having
    to sacrifice `privacy mode <https://core.telegram.org/bots/features#privacy-mode>`_. Not
    supported in channels and for messages sent on behalf of a Telegram Business account.

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

    .. versionchanged:: 20.0
        The (undocumented) argument ``force_reply`` was removed and instead :attr:`force_reply`
        is now always set to :obj:`True` as expected by the Bot API.

    Args:
        selective (:obj:`bool`, optional): Use this parameter if you want to force reply from
            specific users only. Targets:

            1) Users that are @mentioned in the :attr:`~telegram.Message.text` of the
               :class:`telegram.Message` object.
            2) If the bot's message is a reply to a message in the same chat and forum topic,
               sender of the original message.

        input_field_placeholder (:obj:`str`, optional): The placeholder to be shown in the input
            field when the reply is active;
            :tg-const:`telegram.ForceReply.MIN_INPUT_FIELD_PLACEHOLDER`-
            :tg-const:`telegram.ForceReply.MAX_INPUT_FIELD_PLACEHOLDER`
            characters.

            .. versionadded:: 13.7

    Attributes:
        force_reply (:obj:`True`): Shows reply interface to the user, as if they manually selected
            the bots message and tapped 'Reply'.
        selective (:obj:`bool`): Optional. Force reply from specific users only. Targets:

            1) Users that are @mentioned in the :attr:`~telegram.Message.text` of the
               :class:`telegram.Message` object.
            2) If the bot's message is a reply to a message in the same chat and forum topic,
                sender of the original message.
        input_field_placeholder (:obj:`str`): Optional. The placeholder to be shown in the input
            field when the reply is active;
            :tg-const:`telegram.ForceReply.MIN_INPUT_FIELD_PLACEHOLDER`-
            :tg-const:`telegram.ForceReply.MAX_INPUT_FIELD_PLACEHOLDER`
            characters.

            .. versionadded:: 13.7

    )force_replyinput_field_placeholder	selectiveN
api_kwargsr   r
   r   c                    t                                          |           d| _        || _        || _        | j        f| _        |                                  d S )Nr   T)super__init__r	   r   r
   	_id_attrs_freeze)selfr   r
   r   	__class__s       T/Users/shanyulin/my-agent/.venv/lib/python3.11/site-packages/telegram/_forcereply.pyr   zForceReply.__init__Q   sT     	J///!%&/3J$.*    MIN_INPUT_FIELD_PLACEHOLDERMAX_INPUT_FIELD_PLACEHOLDER)NN)__name__
__module____qualname____doc__	__slots__boolstrr   r   r   
ReplyLimitr   r   int__annotations__r   __classcell__)r   s   @r   r   r      s         0 0d HI "&.2
 '+  $; "%t
 tO       /8.B.^s^^^ /8.B.^s^^^   r   r   N)
r   typingr   telegramr   telegram._telegramobjectr   telegram._utils.typesr   r    r   r   <module>r)      s   & L K             3 3 3 3 3 3 * * * * * *N N N N N N N N N Nr   