Skip to content

Commit 2cfdb99

Browse files
authored
🐛 Ensure an optional argument is shown in brackets, even when metavar is set (#1409)
1 parent bc43a7a commit 2cfdb99

File tree

6 files changed

+10
-9
lines changed

6 files changed

+10
-9
lines changed

docs/tutorial/arguments/help.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -178,10 +178,10 @@ Now the generated help text will have `✨username✨` instead of `NAME`:
178178
```console
179179
$ python main.py --help
180180

181-
Usage: main.py [OPTIONS] ✨username✨
181+
Usage: main.py [OPTIONS] [✨username✨]
182182

183183
Arguments:
184-
✨username✨ [default: World]
184+
[✨username✨] [default: World]
185185

186186
Options:
187187
--help Show this message and exit.

tests/test_tutorial/test_arguments/test_help/test_tutorial005.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
def test_help():
1313
result = runner.invoke(app, ["--help"])
1414
assert result.exit_code == 0
15-
assert "[OPTIONS] [NAME]" in result.output
15+
assert "Usage: main [OPTIONS] [NAME]" in result.output
1616
assert "Arguments" in result.output
1717
assert "Who to greet" in result.output
1818
assert "[default: (Deadpoolio the amazing's name)]" in result.output

tests/test_tutorial/test_arguments/test_help/test_tutorial005_an.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
def test_help():
1313
result = runner.invoke(app, ["--help"])
1414
assert result.exit_code == 0
15-
assert "[OPTIONS] [NAME]" in result.output
15+
assert "Usage: main [OPTIONS] [NAME]" in result.output
1616
assert "Arguments" in result.output
1717
assert "Who to greet" in result.output
1818
assert "[default: (Deadpoolio the amazing's name)]" in result.output

tests/test_tutorial/test_arguments/test_help/test_tutorial006.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,8 @@
1212
def test_help():
1313
result = runner.invoke(app, ["--help"])
1414
assert result.exit_code == 0
15-
assert "[OPTIONS] ✨username✨" in result.output
15+
assert "Usage: main [OPTIONS] [✨username✨]" in result.output
1616
assert "Arguments" in result.output
17-
assert "✨username✨" in result.output
1817
assert "[default: World]" in result.output
1918

2019

tests/test_tutorial/test_arguments/test_help/test_tutorial006_an.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,8 @@
1212
def test_help():
1313
result = runner.invoke(app, ["--help"])
1414
assert result.exit_code == 0
15-
assert "[OPTIONS] ✨username✨" in result.output
15+
assert "Usage: main [OPTIONS] [✨username✨]" in result.output
1616
assert "Arguments" in result.output
17-
assert "✨username✨" in result.output
1817
assert "[default: World]" in result.output
1918

2019

typer/core.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -383,7 +383,10 @@ def make_metavar(self, ctx: Union[click.Context, None] = None) -> str:
383383
# Modified version of click.core.Argument.make_metavar()
384384
# to include Argument name
385385
if self.metavar is not None:
386-
return self.metavar
386+
var = self.metavar
387+
if not self.required and not var.startswith("["):
388+
var = f"[{var}]"
389+
return var
387390
var = (self.name or "").upper()
388391
if not self.required:
389392
var = f"[{var}]"

0 commit comments

Comments
 (0)