L izdZddlmZddlmZmZddlmZddlm Z ddl m Z ddl m Z erddlmZGd d e Zy ) zOThis module contains an object that represents a Telegram InlineKeyboardMarkup.)Sequence) TYPE_CHECKINGOptional)InlineKeyboardButton)TelegramObject)check_keyboard_type)JSONDict)BotceZdZdZdZdddeeedeeffdZ e dded ed d dfd Z e d ede d dfdZ e deede d dfdZe deede d dfdZxZS)InlineKeyboardMarkupa This object represents an inline keyboard that appears right next to the message it belongs to. Objects of this class are comparable in terms of equality. Two objects of this class are considered equal, if their size of :attr:`inline_keyboard` and all the buttons are equal. .. figure:: https://core.telegram.org/file/464001863/110f3/I47qTXAD9Z4.120010/e0 ea04f66357b640ec :align: center An inline keyboard on a message .. seealso:: Another kind of keyboard would be the :class:`telegram.ReplyKeyboardMarkup`. Examples: * :any:`Inline Keyboard 1 ` * :any:`Inline Keyboard 2 ` Args: inline_keyboard (Sequence[Sequence[:class:`telegram.InlineKeyboardButton`]]): Sequence of button rows, each represented by a sequence of :class:`~telegram.InlineKeyboardButton` objects. .. versionchanged:: 20.0 |sequenceclassargs| Attributes: inline_keyboard (tuple[tuple[:class:`telegram.InlineKeyboardButton`]]): Tuple of button rows, each represented by a tuple of :class:`~telegram.InlineKeyboardButton` objects. .. versionchanged:: 20.0 |tupleclassattrs| )inline_keyboardN api_kwargsr rct||t|s tdt d|D|_|j f|_|jy)NrzZThe parameter `inline_keyboard` should be a sequence of sequences of InlineKeyboardButtonsc32K|]}t|ywN)tuple).0rows k/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/telegram/_inline/inlinekeyboardmarkup.py z0InlineKeyboardMarkup.__init__..VsS E#JS s)super__init__r ValueErrorrr _id_attrs_freeze)selfr r __class__s rrzInlineKeyboardMarkup.__init__Isk J/"?3(  NSS "1S N ..0 databotr returncg}|dD]F}g}|D],}tj||}|s|j|.|j|H||S)z,See :meth:`telegram.TelegramObject.de_json`.r )rde_jsonappend)clsr r!keyboardrtmpcolbtns rr$zInlineKeyboardMarkup.de_json^sl)* !CC $*223<JJsO $ OOC  !8}rbuttonkwargsc ||ggfi|S)aShortcut for:: InlineKeyboardMarkup([[button]], **kwargs) Return an InlineKeyboardMarkup from a single InlineKeyboardButton Args: button (:class:`telegram.InlineKeyboardButton`): The button to use in the markup )r&r+r,s r from_buttonz InlineKeyboardMarkup.from_buttonmsVH:(((r button_rowc ||gfi|S)a|Shortcut for:: InlineKeyboardMarkup([button_row], **kwargs) Return an InlineKeyboardMarkup from a single row of InlineKeyboardButtons Args: button_row (Sequence[:class:`telegram.InlineKeyboardButton`]): The button to use in the markup .. versionchanged:: 20.0 |sequenceargs| r.)r&r0r,s rfrom_rowzInlineKeyboardMarkup.from_row{s$J<*6**r button_columnc >|Dcgc]}|g}}||fi|Scc}w)aShortcut for:: InlineKeyboardMarkup([[button] for button in button_column], **kwargs) Return an InlineKeyboardMarkup from a single column of InlineKeyboardButtons Args: button_column (Sequence[:class:`telegram.InlineKeyboardButton`]): The button to use in the markup .. versionchanged:: 20.0 |sequenceargs| r.)r&r3r,r+ button_grids r from_columnz InlineKeyboardMarkup.from_columns.$/<rFs1&V$*F36*A*>A*r