python-miio icon indicating copy to clipboard operation
python-miio copied to clipboard

Failure to initialize the `gateway` command while using `miiocli` to connect with `lumi.gateway.mgl03`

Open StarterCraft opened this issue 2 years ago • 0 comments

Describe the bug It is not possible to run miiocli gateway command because of an unspecified error related to the click library.

Version information (please complete the following information):

  • OS: Windows 10 21H1
  • python: Python 3.11.3
  • python-miio: version 0.6.0.dev0

Device information: Sadly, miiocli device --ip <ip address> --token <token> info for my device doesn't work, but this is an another issue #1777 and it's not connected to the malfunction of the gateway command.

  • Model: lumi.gateway.mgl03
  • Hardware version: Xiaomi Multimode Gateway CN/EU (Mi Gateway 3) ZNDMWG02LM
  • Firmware version: 1.5.0_0026

To Reproduce Steps to reproduce the behavior:

  1. install python-miio version 0.6.0.dev0, possibly into a virtualenv, but global installation gives the same issue
  2. run miiocli gateway

Expected behavior A help page with the list of supported gateway actions is expected.

Console output

C:\Users\User>miiocli gateway
ERROR:miio.click_common:Exception: Arguments take exactly one parameter declaration, got 2.
Traceback (most recent call last):
  File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\miio\click_common.py", line 54, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\click\core.py", line 1055, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\click\core.py", line 1655, in invoke
    sub_ctx = cmd.make_context(cmd_name, args, parent=ctx)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\click\core.py", line 920, in make_context
    self.parse_args(ctx, args)
  File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\click\core.py", line 1610, in parse_args
    echo(ctx.get_help(), color=ctx.color)
         ^^^^^^^^^^^^^^
  File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\click\core.py", line 699, in get_help
    return self.command.get_help(self)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\click\core.py", line 1298, in get_help
    self.format_help(ctx, formatter)
  File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\click\core.py", line 1331, in format_help
    self.format_options(ctx, formatter)
  File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\click\core.py", line 1533, in format_options
    self.format_commands(ctx, formatter)
  File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\click\core.py", line 1586, in format_commands
    cmd = self.get_command(ctx, subcommand)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\miio\click_common.py", line 277, in get_command
    return self.commands[cmd_name].wrap(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\miio\click_common.py", line 213, in wrap
    func = decorator(func)
           ^^^^^^^^^^^^^^^
  File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\click\decorators.py", line 287, in decorator
    _param_memo(f, ArgumentClass(param_decls, **attrs))
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\click\core.py", line 2950, in __init__
    super().__init__(param_decls, required=required, **attrs)
  File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\click\core.py", line 2072, in __init__
    self.name, self.opts, self.secondary_opts = self._parse_decls(
                                                ^^^^^^^^^^^^^^^^^^
  File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\click\core.py", line 2985, in _parse_decls
    raise TypeError(
TypeError: Arguments take exactly one parameter declaration, got 2.

StarterCraft avatar May 17 '23 12:05 StarterCraft