Skip to content

TypeError: LogParam.get_metavar() got an unexpected keyword argument 'ctx' with Click 8.2.1 #36

@dgruano

Description

@dgruano

When running filesender --help (v2.1.1) using Python 3.10, I get the following error:

                                                                                                                       
 Usage: filesender [OPTIONS] COMMAND [ARGS]...                                                                         
                                                                                                                       
Traceback (most recent call last):
  File "/home/dgarcia/software/miniconda3/bin/filesender", line 8, in <module>
    sys.exit(app())
  File "/home/dgarcia/software/miniconda3/lib/python3.10/site-packages/typer/main.py", line 341, in __call__
    raise e
  File "/home/dgarcia/software/miniconda3/lib/python3.10/site-packages/typer/main.py", line 324, in __call__
    return get_command(self)(*args, **kwargs)
  File "/home/dgarcia/software/miniconda3/lib/python3.10/site-packages/click/core.py", line 1442, in __call__
    return self.main(*args, **kwargs)
  File "/home/dgarcia/software/miniconda3/lib/python3.10/site-packages/typer/core.py", line 757, in main
    return _main(
  File "/home/dgarcia/software/miniconda3/lib/python3.10/site-packages/typer/core.py", line 194, in _main
    with self.make_context(prog_name, args, **extra) as ctx:
  File "/home/dgarcia/software/miniconda3/lib/python3.10/site-packages/click/core.py", line 1186, in make_context
    self.parse_args(ctx, args)
  File "/home/dgarcia/software/miniconda3/lib/python3.10/site-packages/click/core.py", line 1786, in parse_args
    rest = super().parse_args(ctx, args)
  File "/home/dgarcia/software/miniconda3/lib/python3.10/site-packages/click/core.py", line 1197, in parse_args
    value, args = param.handle_parse_result(ctx, opts, args)
  File "/home/dgarcia/software/miniconda3/lib/python3.10/site-packages/click/core.py", line 2416, in handle_parse_result
    value = self.process_value(ctx, value)
  File "/home/dgarcia/software/miniconda3/lib/python3.10/site-packages/click/core.py", line 2355, in process_value
    value = self.callback(ctx, self, value)
  File "/home/dgarcia/software/miniconda3/lib/python3.10/site-packages/click/decorators.py", line 539, in show_help
    echo(ctx.get_help(), color=ctx.color)
  File "/home/dgarcia/software/miniconda3/lib/python3.10/site-packages/click/core.py", line 730, in get_help
    return self.command.get_help(self)
  File "/home/dgarcia/software/miniconda3/lib/python3.10/site-packages/click/core.py", line 1064, in get_help
    self.format_help(ctx, formatter)
  File "/home/dgarcia/software/miniconda3/lib/python3.10/site-packages/typer/core.py", line 771, in format_help
    return rich_utils.rich_format_help(
  File "/home/dgarcia/software/miniconda3/lib/python3.10/site-packages/typer/rich_utils.py", line 620, in rich_format_help
    _print_options_panel(
  File "/home/dgarcia/software/miniconda3/lib/python3.10/site-packages/typer/rich_utils.py", line 376, in _print_options_panel
    metavar_str = param.make_metavar(ctx=ctx)
  File "/home/dgarcia/software/miniconda3/lib/python3.10/site-packages/typer/core.py", line 496, in make_metavar
    return super().make_metavar(ctx=ctx)  # type: ignore[arg-type]
  File "/home/dgarcia/software/miniconda3/lib/python3.10/site-packages/click/core.py", line 2212, in make_metavar
    metavar = self.type.get_metavar(param=self, ctx=ctx)
TypeError: LogParam.get_metavar() got an unexpected keyword argument 'ctx'

Others have reported an incompatibility between particular versions of click and typer.

Here are the versions installed in my environment after pip install filesender-cli:

filesender-client=3.10
typer=0.16.0
click=8.2.1

The problem was solved after installing a version of click<8.2.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions