-
Notifications
You must be signed in to change notification settings - Fork 7
/
interactive_cli.py
48 lines (43 loc) · 1.32 KB
/
interactive_cli.py
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
from PyInquirer import style_from_dict, Token, prompt, Separator
from pprint import pprint
style = style_from_dict(
{
Token.Separator: "#cc5454",
Token.QuestionMark: "#673ab7 bold",
Token.Selected: "#cc5454", # default
Token.Pointer: "#673ab7 bold",
Token.Instruction: "", # default
Token.Answer: "#f44336 bold",
Token.Question: "",
}
)
questions = [
{
"type": "checkbox",
"message": "Select toppings",
"name": "toppings",
"choices": [
Separator("= The Meats ="),
{"name": "Ham"},
{"name": "Ground Meat"},
{"name": "Bacon"},
Separator("= The Cheeses ="),
{"name": "Mozzarella", "checked": True},
{"name": "Cheddar"},
{"name": "Parmesan"},
Separator("= The usual ="),
{"name": "Mushroom"},
{"name": "Tomato"},
{"name": "Pepperoni"},
Separator("= The extras ="),
{"name": "Pineapple"},
{"name": "Olives", "disabled": "out of stock"},
{"name": "Extra cheese"},
],
"validate": lambda answer: "You must choose at least one topping."
if len(answer) == 0
else True,
}
]
answers = prompt(questions, style=style)
pprint(answers)