Spaces:
Sleeping
Sleeping
first-space
/
first-space-venv
/lib
/python3.12
/site-packages
/InquirerPy
/containers
/instruction.py
"""Module contains :class:`.InstructionWindow` which can be used to display long instructions.""" | |
from typing import TYPE_CHECKING | |
from prompt_toolkit.layout.containers import ConditionalContainer, Window | |
from prompt_toolkit.layout.controls import FormattedTextControl | |
if TYPE_CHECKING: | |
from prompt_toolkit.filters.base import FilterOrBool | |
from prompt_toolkit.formatted_text.base import AnyFormattedText | |
class InstructionWindow(ConditionalContainer): | |
"""Conditional `prompt_toolkit` :class:`~prompt_toolkit.layout.Window` that displays long instructions. | |
Args: | |
message: Long instructions to display. | |
filter: Condition to display the instruction window. | |
""" | |
def __init__(self, message: str, filter: "FilterOrBool", **kwargs) -> None: | |
self._message = message | |
super().__init__( | |
Window( | |
FormattedTextControl(text=self._get_message), | |
dont_extend_height=True, | |
**kwargs | |
), | |
filter=filter, | |
) | |
def _get_message(self) -> "AnyFormattedText": | |
"""Get long instruction to display. | |
Returns: | |
FormattedText in list of tuple format. | |
""" | |
return [("class:long_instruction", self._message)] | |