Shofel2_T124_python/venv/lib/python3.10/site-packages/questionary/prompts/rawselect.py

80 lines
2.4 KiB
Python
Raw Permalink Normal View History

2024-05-25 16:45:07 +00:00
from typing import Any
from typing import Dict
from typing import Optional
from typing import Sequence
from typing import Union
from prompt_toolkit.styles import Style
from questionary.constants import DEFAULT_QUESTION_PREFIX
from questionary.constants import DEFAULT_SELECTED_POINTER
from questionary.prompts import select
from questionary.prompts.common import Choice
from questionary.question import Question
def rawselect(
message: str,
choices: Sequence[Union[str, Choice, Dict[str, Any]]],
default: Optional[str] = None,
qmark: str = DEFAULT_QUESTION_PREFIX,
pointer: Optional[str] = DEFAULT_SELECTED_POINTER,
style: Optional[Style] = None,
**kwargs: Any,
) -> Question:
"""Ask the user to select one item from a list of choices using shortcuts.
The user can only select one option.
Example:
>>> import questionary
>>> questionary.rawselect(
... "What do you want to do?",
... choices=[
... "Order a pizza",
... "Make a reservation",
... "Ask for opening hours"
... ]).ask()
? What do you want to do? Order a pizza
'Order a pizza'
.. image:: ../images/rawselect.gif
This is just a really basic example, the prompt can be customised using the
parameters.
Args:
message: Question text.
choices: Items shown in the selection, this can contain :class:`Choice` or
or :class:`Separator` objects or simple items as strings. Passing
:class:`Choice` objects, allows you to configure the item more
(e.g. preselecting it or disabling it).
default: Default return value (single value).
qmark: Question prefix displayed in front of the question.
By default this is a ``?``.
pointer: Pointer symbol in front of the currently highlighted element.
By default this is a ``»``.
Use ``None`` to disable it.
style: A custom color and style for the question parts. You can
configure colors as well as font types for different elements.
Returns:
:class:`Question`: Question instance, ready to be prompted (using ``.ask()``).
"""
return select.select(
message,
choices,
default,
qmark,
pointer,
style,
use_shortcuts=True,
use_arrow_keys=False,
**kwargs,
)