U
    g                     @   sL   d Z ddlmZmZ ddlmZ ddlmZ ddlm	Z	 G dd deZ
dS )	zEThis module contains an object that represents a Telegram ForceReply.    )FinalOptional)	constants)TelegramObject)JSONDictc                       sl   e Zd ZU dZdZd
ddee ee ee d fddZ	e
jjZee ed< e
jjZee ed	<   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_kwargs)r
   r	   r   c                   s6   t  j|d d| _|| _|| _| jf| _|   d S )Nr   T)super__init__r   r
   r	   Z	_id_attrsZ_freeze)selfr
   r	   r   	__class__ 8/tmp/pip-unpacked-wheel-swnnwir2/telegram/_forcereply.pyr   Q   s    
zForceReply.__init__MIN_INPUT_FIELD_PLACEHOLDERMAX_INPUT_FIELD_PLACEHOLDER)NN)__name__
__module____qualname____doc__	__slots__r   boolstrr   r   r   Z
ReplyLimitr   r   int__annotations__r   __classcell__r   r   r   r   r      s   
2  r   N)r   typingr   r   Ztelegramr   Ztelegram._telegramobjectr   Ztelegram._utils.typesr   r   r   r   r   r   <module>   s
   