Skip to content

Bellows CLI scan results in error if no channels are specified ("AttributeError: 'list' object has no attribute 'split'") #437

@mt0321

Description

@mt0321

Hello, thank you for the work on this library!

The bellows CLI scan command raises an AttributeError when no channels list is specified. When the channels list is specified, the command works properly.

Version and environment information:

bash-5.1# uname -a
Linux homeassistant 5.10.17-v8 #1 SMP PREEMPT Sat Sep 4 00:55:46 UTC 2021 aarch64 Linux

bash-5.1# python --version
Python 3.9.6

bash-5.1# pip3 --version
pip 20.2.4 from /usr/local/lib/python3.9/site-packages/pip (python 3.9)

bash-5.1# pip3 show bellows
Name: bellows
Version: 0.27.0
Summary: Library implementing EZSP
Home-page: http://github.com/zigpy/bellows
Author: Russell Cloran
Author-email: [email protected]
License: GPL-3.0
Location: /usr/local/lib/python3.9/site-packages
Requires: pyserial-asyncio, pure-pcapy3, voluptuous, pyserial, zigpy, click-log, click
Required-by:

Example of the error:

bash-5.1# export EZSP_DEVICE=/dev/ttyUSB1

bash-5.1# bellows scan -e
Traceback (most recent call last):
  File "/usr/local/bin/bellows", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1137, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1062, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1666, in invoke
    sub_ctx = cmd.make_context(cmd_name, args, parent=ctx)
  File "/usr/local/lib/python3.9/site-packages/click/core.py", line 923, in make_context
    self.parse_args(ctx, args)
  File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1379, in parse_args
    value, args = param.handle_parse_result(ctx, opts, args)
  File "/usr/local/lib/python3.9/site-packages/click/core.py", line 2364, in handle_parse_result
    value = self.process_value(ctx, value)
  File "/usr/local/lib/python3.9/site-packages/click/core.py", line 2320, in process_value
    value = self.type_cast_value(ctx, value)
  File "/usr/local/lib/python3.9/site-packages/click/core.py", line 2307, in type_cast_value
    return convert(value)
  File "/usr/local/lib/python3.9/site-packages/click/types.py", line 75, in __call__
    return self.convert(value, param, ctx)
  File "/usr/local/lib/python3.9/site-packages/bellows/cli/util.py", line 22, in convert
    values = [self.intrange.convert(v, param, ctx) for v in value.split(",")]
AttributeError: 'list' object has no attribute 'split'

Example without the error:

bash-5.1# bellows scan -e -C 11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26
Scanning channels 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
[11, -70]
[12, -73]
[13, -67]
[14, -76]
[15, -73]
[16, -72]
[17, -76]
[18, -78]
[19, -73]
[20, -78]
[21, -60]
[22, -40]
[23, -40]
[24, -77]
[25, -71]
[26, -76]

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