1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157
|
# select
A prompt that displays a list of choices to select.
## Example

<details>
<summary>Classic Syntax (PyInquirer)</summary>
```{eval-rst}
.. literalinclude :: ../../../examples/classic/list.py
:language: python
```
</details>
<details open>
<summary>Alternate Syntax</summary>
```{eval-rst}
.. literalinclude :: ../../../examples/alternate/list.py
:language: python
```
</details>
## Choices
```{seealso}
{ref}`pages/dynamic:choices`
```
## Keybindings
```{seealso}
{ref}`pages/kb:Keybindings`
```
```{include} ../kb.md
:start-after: <!-- start kb -->
:end-before: <!-- end kb -->
```
<!-- start list kb -->
The following dictionary contains the additional keybindings created by this prompt.
```{code-block} python
{
"down": [
{"key": "down"},
{"key": "c-n"}, # move down
],
"up": [
{"key": "up"},
{"key": "c-p"}, # move up
],
"toggle": [
{"key": "space"}, # toggle choices
],
"toggle-down": [
{"key": "c-i"}, # toggle choice and move down (tab)
],
"toggle-up": [
{"key": "s-tab"}, # toggle choice and move up (shift+tab)
],
"toggle-all": [
{"key": "alt-r"}, # toggle all choices
{"key": "c-r"},
],
"toggle-all-true": [
{"key": "alt-a"}, # toggle all choices true
{"key": "c-a"}.
],
"toggle-all-false": [], # toggle all choices false
}
```
<!-- end list kb -->
<!-- start list vi kb -->
When `vi_mode` is True, the "up" and "down" navigation key will be changed.
```{code-block} python
{
"down": [
{"key": "down"},
{"key": "j"},
],
"up": [
{"key": "up"},
{"key": "k"},
],
}
```
<!-- end list vi kb -->
## Multiple Selection
```{seealso}
{ref}`pages/prompts/list:Keybindings`
```
You can enable multiple selection on the prompt by configuring the parameter `multiselect` to `True`.
You can also have certain choices pre-selected during the mode. The choices to be pre-selected requires to be either an instance
of {class}`~InquirerPy.base.control.Choice` or {class}`dict`.
The following example will have `1` and `2` pre-selected.
```{code-block} python
from InquirerPy import inquirer
from InquirerPy.base.control import Choice
choices = [
Choice(1, enabled=True),
Choice(2, enabled=True),
3,
4,
]
result = inquirer.select(
message="Selct one:", choices=choices, multiselect=True
).execute()
```
## Default Value
```{seealso}
{ref}`pages/dynamic:default`
```
The `default` parameter will be used to determine which choice is highlighted by default.
It should be the value of one of the choices.
If you wish to pre-select certain choices in multiselect mode, you can leverage the `enabled` parameter/key of each choice.
```{code-block} python
from InquirerPy.base import Choice
choices = [
Choice(1, enabled=True), # enabled by default
Choice(2) # not enabled
]
```
## Reference
```{eval-rst}
.. autoclass:: InquirerPy.prompts.list.ListPrompt
:noindex:
```
|