solokeys / solo1-cli

Solo 1 library and CLI in Python
https://pypi.org/project/solo-python
Apache License 2.0
185 stars 69 forks source link

Fix bootloader version mapping single-value version #5

Closed Thor77 closed 5 years ago

Thor77 commented 5 years ago

Running solo program aux bootloader-version currently results in this exception:

Traceback (most recent call last):
  File "/usr/bin/solo", line 10, in <module>
    sys.exit(solo_cli())
  File "/usr/lib/python3.7/site-packages/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/usr/lib/python3.7/site-packages/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/usr/lib/python3.7/site-packages/click/core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/lib/python3.7/site-packages/click/core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/lib/python3.7/site-packages/click/core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/lib/python3.7/site-packages/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/lib/python3.7/site-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/usr/lib/python3.7/site-packages/solo/cli/program.py", line 278, in bootloader_version
    print(".".join(map(str, p.bootloader_version())))
TypeError: 'int' object is not iterable

because solo.client.bootloader_version can return a single integer value.

conorpp commented 5 years ago

This is a good point. Early versions just return 1 byte as a version.

nickray commented 5 years ago

@Thor77 I'm closing this in the hopes that https://github.com/solokeys/solo-python/commit/de2f292558539189501885901ce1f38c18a363d0 fixes your issue, so I can cut a release including the solution sketched in my review, and https://github.com/solokeys/solo-python/pull/7 -- thanks for the pull request though!