Skip to content

Commit 6d4cabf

Browse files
committed
cli/flash: fix crash due to passing wrong arg to ZipFile
The refactoring done in 0dd7836 contained a mistake and passes the wrong argument to ZipFile() which leads to the following crash: Traceback (most recent call last): File "/home/laurens/git-pybricks/pybricks-micropython/.venv/bin/pybricksdev", line 8, in <module> sys.exit(main()) File "/home/laurens/git-pybricks/pybricks-micropython/.venv/lib/python3.8/site-packages/pybricksdev/cli/__init__.py", line 374, in main asyncio.run(subparsers.choices[args.tool].tool.run(args)) File "/home/laurens/.pyenv/versions/3.8.2/lib/python3.8/asyncio/runners.py", line 43, in run return loop.run_until_complete(main) File "/home/laurens/.pyenv/versions/3.8.2/lib/python3.8/asyncio/base_events.py", line 616, in run_until_complete return future.result() File "/home/laurens/git-pybricks/pybricks-micropython/.venv/lib/python3.8/site-packages/pybricksdev/cli/flash.py", line 309, in flash_firmware archive = zipfile.ZipFile(firmware) File "/home/laurens/.pyenv/versions/3.8.2/lib/python3.8/zipfile.py", line 1269, in __init__ self._RealGetContents() File "/home/laurens/.pyenv/versions/3.8.2/lib/python3.8/zipfile.py", line 1332, in _RealGetContents endrec = _EndRecData(fp) File "/home/laurens/.pyenv/versions/3.8.2/lib/python3.8/zipfile.py", line 264, in _EndRecData fpin.seek(0, 2) AttributeError: 'bytearray' object has no attribute 'seek' Fixes: pybricks/support#617
1 parent b944902 commit 6d4cabf

File tree

2 files changed

+6
-1
lines changed

2 files changed

+6
-1
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
66

77
## [Unreleased]
88

9+
### Fixed
10+
- Fixed regression causing crash when attempting to flash SPIKE firmware ([support#617]).
11+
12+
[support#617]: https://github.com/pybricks/support/issues/617
13+
914
## [1.0.0-alpha.23] - 2022-01-17
1015

1116
### Fixed

pybricksdev/cli/flash.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -295,7 +295,7 @@ async def flash_firmware(firmware_zip: BinaryIO, new_name: Optional[str]) -> Non
295295
await hub.reset_hub()
296296

297297
# Upload installation script.
298-
archive = zipfile.ZipFile(firmware)
298+
archive = zipfile.ZipFile(firmware_zip)
299299
await hub.exec_line("import uos; uos.mkdir('_firmware')")
300300
await hub.upload_file(
301301
"_firmware/install_pybricks.py",

0 commit comments

Comments
 (0)