@@ -40,33 +40,25 @@ named after the main module:
40
40
41
41
42
42
def greet (
43
- name : Annotated[str , typer.Argument(help = " The (last, if --gender is given) name of the person to greet" )] = " " ,
44
- gender : Annotated[str , typer.Option(help = " The gender of the person to greet" )] = " " ,
43
+ name : Annotated[str , typer.Argument(help = " The (last, if --title is given) name of the person to greet" )] = " " ,
44
+ title : Annotated[str , typer.Option(help = " The preferred title of the person to greet" )] = " " ,
45
45
knight : Annotated[bool , typer.Option(help = " Whether the person is a knight" )] = False ,
46
46
count : Annotated[int , typer.Option(help = " Number of times to greet the person" )] = 1
47
47
):
48
- greeting = " Greetings, dear "
49
- masculine = gender == " masculine"
50
- feminine = gender == " feminine"
51
- if gender or knight:
48
+ greeting = " Greetings, "
49
+ if not name:
50
+ if title:
51
+ name = title.lower().rstrip(" ." )
52
+ else :
53
+ name = " friend"
54
+ if title or knight:
52
55
salutation = " "
53
- if knight:
56
+ if title:
57
+ salutation = title
58
+ elif knight:
54
59
salutation = " Sir "
55
- elif masculine:
56
- salutation = " Mr. "
57
- elif feminine:
58
- salutation = " Ms. "
59
60
greeting += salutation
60
- if name:
61
- greeting += f " { name} ! "
62
- else :
63
- pronoun = " her" if feminine else " his" if masculine or knight else " its"
64
- greeting += f " what's- { pronoun} -name "
65
- else :
66
- if name:
67
- greeting += f " { name} ! "
68
- elif not gender:
69
- greeting += " friend!"
61
+ greeting += f " { name} ! "
70
62
for i in range (0 , count):
71
63
print (greeting)
72
64
@@ -145,12 +137,14 @@ Let's test it:
145
137
146
138
.. code-block :: console
147
139
140
+ $ greet
141
+ Greetings, friend!
148
142
$ greet --knight Lancelot
149
- Greetings, dear Sir Lancelot!
150
- $ greet --gender feminine Parks
151
- Greetings, dear Ms. Parks!
152
- $ greet --gender masculine
153
- Greetings, dear Mr. what's-his-name !
143
+ Greetings, Sir Lancelot!
144
+ $ greet --title Ms. Parks
145
+ Greetings, Ms. Parks!
146
+ $ greet --title Mr.
147
+ Greetings, Mr. mr !
154
148
155
149
Since this example uses ``typer ``, you could now also get an overview of the program's usage by calling it with
156
150
the ``--help `` option, or configure completions via the ``--install-completion `` option.
0 commit comments