idftool 0.3.0__tar.gz → 0.5.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {idftool-0.3.0 → idftool-0.5.0}/CHANGELOG.md +24 -0
- idftool-0.5.0/Makefile +62 -0
- {idftool-0.3.0 → idftool-0.5.0}/PKG-INFO +5 -1
- idftool-0.5.0/idftool/__main__.py +1328 -0
- {idftool-0.3.0 → idftool-0.5.0}/idftool.egg-info/PKG-INFO +5 -1
- idftool-0.5.0/idftool.egg-info/SOURCES.txt +48 -0
- {idftool-0.3.0 → idftool-0.5.0}/idftool.egg-info/requires.txt +5 -0
- idftool-0.5.0/idftool.egg-info/scm_file_list.json +44 -0
- idftool-0.5.0/idftool.egg-info/scm_version.json +8 -0
- {idftool-0.3.0 → idftool-0.5.0}/pyproject.toml +12 -0
- idftool-0.5.0/test/README.md +43 -0
- idftool-0.5.0/test/conftest.py +103 -0
- idftool-0.5.0/test/fixtures/README.md +12 -0
- idftool-0.5.0/test/fixtures/esp32s3/app-v1.bin +0 -0
- idftool-0.5.0/test/fixtures/esp32s3/app-v2.bin +0 -0
- idftool-0.5.0/test/fixtures/esp32s3/bootloader.bin +0 -0
- idftool-0.5.0/test/fixtures/esp32s3/flash-image.bin +0 -0
- idftool-0.5.0/test/fixtures/esp32s3/nvs.csv +6 -0
- idftool-0.5.0/test/fixtures/esp32s3/partition-table.bin +0 -0
- idftool-0.5.0/test/fixtures/esp32s3/partitions.csv +11 -0
- idftool-0.5.0/test/project/.gitignore +5 -0
- idftool-0.5.0/test/project/CMakeLists.txt +12 -0
- idftool-0.5.0/test/project/README.md +35 -0
- idftool-0.5.0/test/project/build_fixtures.sh +50 -0
- idftool-0.5.0/test/project/main/CMakeLists.txt +1 -0
- idftool-0.5.0/test/project/main/idf_component.yml +5 -0
- idftool-0.5.0/test/project/main/main.c +13 -0
- idftool-0.5.0/test/project/nvs.csv +6 -0
- idftool-0.5.0/test/project/partitions.csv +11 -0
- idftool-0.5.0/test/project/sdkconfig.defaults +4 -0
- idftool-0.5.0/test/samples/bootloader-template.csv +7 -0
- idftool-0.5.0/test/samples/nvs.csv +5 -0
- idftool-0.5.0/test/samples/partitions.csv +9 -0
- idftool-0.5.0/test/test_device.py +143 -0
- idftool-0.5.0/test/test_offline.py +100 -0
- idftool-0.3.0/Makefile +0 -39
- idftool-0.3.0/idftool/__main__.py +0 -1394
- idftool-0.3.0/idftool.egg-info/SOURCES.txt +0 -23
- idftool-0.3.0/idftool.egg-info/scm_file_list.json +0 -19
- idftool-0.3.0/idftool.egg-info/scm_version.json +0 -8
- {idftool-0.3.0 → idftool-0.5.0}/.github/workflows/build.yml +0 -0
- {idftool-0.3.0 → idftool-0.5.0}/.github/workflows/publish.yml +0 -0
- {idftool-0.3.0 → idftool-0.5.0}/.gitignore +0 -0
- {idftool-0.3.0 → idftool-0.5.0}/CONTRIBUTING.md +0 -0
- {idftool-0.3.0 → idftool-0.5.0}/LICENSE.md +0 -0
- {idftool-0.3.0 → idftool-0.5.0}/README.md +0 -0
- {idftool-0.3.0 → idftool-0.5.0}/idftool/__init__.py +0 -0
- {idftool-0.3.0 → idftool-0.5.0}/idftool/traceback.py +0 -0
- {idftool-0.3.0 → idftool-0.5.0}/idftool-onedir.spec +0 -0
- {idftool-0.3.0 → idftool-0.5.0}/idftool.egg-info/dependency_links.txt +0 -0
- {idftool-0.3.0 → idftool-0.5.0}/idftool.egg-info/entry_points.txt +0 -0
- {idftool-0.3.0 → idftool-0.5.0}/idftool.egg-info/top_level.txt +0 -0
- {idftool-0.3.0 → idftool-0.5.0}/idftool.py +0 -0
- {idftool-0.3.0 → idftool-0.5.0}/idftool.spec +0 -0
- {idftool-0.3.0 → idftool-0.5.0}/setup.cfg +0 -0
|
@@ -4,6 +4,29 @@ All notable changes to this project are documented here. The format is
|
|
|
4
4
|
based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and
|
|
5
5
|
this project adheres to [Semantic Versioning](https://semver.org/).
|
|
6
6
|
|
|
7
|
+
## [v0.5.0] — 2026-07-17
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
- The CLI is rebuilt on [click](https://click.palletsprojects.com/) and
|
|
11
|
+
[rich-click](https://github.com/ewels/rich-click) (like esptool): `--help`,
|
|
12
|
+
usage, and errors now render in boxed panels, and commands are grouped into
|
|
13
|
+
labelled sections. Command names, arguments, options, aliases (`reflash`,
|
|
14
|
+
`list`), and behaviour are unchanged — only the help/usage and error
|
|
15
|
+
formatting differ.
|
|
16
|
+
|
|
17
|
+
### Added
|
|
18
|
+
- `create-table` as an alias for `convert-table`.
|
|
19
|
+
- `create-nvs` and `write-nvs` now accept a pre-built NVS binary image as
|
|
20
|
+
input (auto-detected), not only a CSV — it is validated against the
|
|
21
|
+
partition size and padded to it, instead of failing when parsed as CSV.
|
|
22
|
+
- A test suite: an offline suite (no hardware) plus a real-device suite that
|
|
23
|
+
cycles every command against a connected ESP, with fixtures built from a
|
|
24
|
+
small ESP-IDF app (`make test-offline` / `make test-device`).
|
|
25
|
+
|
|
26
|
+
### Fixed
|
|
27
|
+
- `write-bundle` now reports a clear error when a bundle entry is larger than
|
|
28
|
+
its target partition, instead of crashing with an `AttributeError`.
|
|
29
|
+
|
|
7
30
|
## [v0.3.0] — 2026-07-15
|
|
8
31
|
|
|
9
32
|
### Added
|
|
@@ -87,6 +110,7 @@ this project adheres to [Semantic Versioning](https://semver.org/).
|
|
|
87
110
|
### Added
|
|
88
111
|
- Initial release.
|
|
89
112
|
|
|
113
|
+
[v0.5.0]: https://github.com/nebkat/idftool/releases/tag/v0.5.0
|
|
90
114
|
[v0.3.0]: https://github.com/nebkat/idftool/releases/tag/v0.3.0
|
|
91
115
|
[v0.2.2]: https://github.com/nebkat/idftool/releases/tag/v0.2.2
|
|
92
116
|
[v0.2.1]: https://github.com/nebkat/idftool/releases/tag/v0.2.1
|
idftool-0.5.0/Makefile
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
.PHONY: build build-onefile test test-offline test-device test-device-full install install-onefile uninstall clean
|
|
2
|
+
|
|
3
|
+
VENV := .venv
|
|
4
|
+
PYINSTALLER := $(VENV)/bin/pyinstaller
|
|
5
|
+
PREFIX := $(HOME)/.local
|
|
6
|
+
BINDIR := $(PREFIX)/bin
|
|
7
|
+
SHAREDIR := $(PREFIX)/share/idftool
|
|
8
|
+
|
|
9
|
+
# Device test config: `make test-device PORT=/dev/cu.usbmodem101 CHIP=esp32s3`
|
|
10
|
+
PORT :=
|
|
11
|
+
CHIP := esp32s3
|
|
12
|
+
|
|
13
|
+
build: $(VENV)
|
|
14
|
+
$(PYINSTALLER) --noconfirm --distpath ./dist-onedir --workpath ./build-onedir idftool-onedir.spec
|
|
15
|
+
|
|
16
|
+
build-onefile: $(VENV)
|
|
17
|
+
$(PYINSTALLER) --noconfirm --distpath ./dist --workpath ./build idftool.spec
|
|
18
|
+
|
|
19
|
+
test: build
|
|
20
|
+
./dist-onedir/idftool/idftool --help >/dev/null
|
|
21
|
+
|
|
22
|
+
# Offline test suite (no hardware).
|
|
23
|
+
test-offline: $(VENV)
|
|
24
|
+
$(VENV)/bin/pip install -q -e ".[test]"
|
|
25
|
+
$(VENV)/bin/pytest test/test_offline.py
|
|
26
|
+
|
|
27
|
+
# Real-device test suite (fast core: the quick per-command tests). Requires a connected board and
|
|
28
|
+
# built fixtures (test/project/build_fixtures.sh). WILL ERASE THE DEVICE'S FLASH.
|
|
29
|
+
test-device: $(VENV)
|
|
30
|
+
@test -n "$(PORT)" || { echo "Usage: make test-device PORT=/dev/... [CHIP=$(CHIP)]"; exit 2; }
|
|
31
|
+
$(VENV)/bin/pip install -q -e ".[test]"
|
|
32
|
+
$(VENV)/bin/pytest test/test_device.py --port $(PORT) --chip $(CHIP) -m "not slow"
|
|
33
|
+
|
|
34
|
+
# Full device suite, including the slow full-flash dump-image / bundle round-trips. These move
|
|
35
|
+
# megabytes and take many minutes (a full 16 MB dump-image is ~25 min on USB-Serial-JTAG boards).
|
|
36
|
+
test-device-full: $(VENV)
|
|
37
|
+
@test -n "$(PORT)" || { echo "Usage: make test-device-full PORT=/dev/... [CHIP=$(CHIP)]"; exit 2; }
|
|
38
|
+
$(VENV)/bin/pip install -q -e ".[test]"
|
|
39
|
+
$(VENV)/bin/pytest test/test_device.py --port $(PORT) --chip $(CHIP)
|
|
40
|
+
|
|
41
|
+
install: build
|
|
42
|
+
mkdir -p $(BINDIR)
|
|
43
|
+
rm -rf $(SHAREDIR)
|
|
44
|
+
mkdir -p $(dir $(SHAREDIR))
|
|
45
|
+
cp -R dist-onedir/idftool $(SHAREDIR)
|
|
46
|
+
ln -sf $(SHAREDIR)/idftool $(BINDIR)/idftool
|
|
47
|
+
|
|
48
|
+
install-onefile: build-onefile
|
|
49
|
+
mkdir -p $(BINDIR)
|
|
50
|
+
cp dist/idftool $(BINDIR)/idftool
|
|
51
|
+
|
|
52
|
+
uninstall:
|
|
53
|
+
rm -f $(BINDIR)/idftool
|
|
54
|
+
rm -rf $(SHAREDIR)
|
|
55
|
+
|
|
56
|
+
clean:
|
|
57
|
+
rm -rf build build-onedir dist dist-onedir $(VENV)
|
|
58
|
+
|
|
59
|
+
$(VENV):
|
|
60
|
+
python3 -m venv $(VENV)
|
|
61
|
+
$(VENV)/bin/pip install --upgrade pip
|
|
62
|
+
$(VENV)/bin/pip install -e . pyinstaller
|
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: idftool
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.5.0
|
|
4
4
|
Summary: Utility for flashing, provisioning, and interacting with Espressif SOCs running ESP-IDF
|
|
5
5
|
License-Expression: Apache-2.0
|
|
6
6
|
Project-URL: Source, https://github.com/nebkat/idftool
|
|
7
7
|
Requires-Python: >=3.10
|
|
8
8
|
Description-Content-Type: text/markdown
|
|
9
9
|
License-File: LICENSE.md
|
|
10
|
+
Requires-Dist: click>=8.1
|
|
11
|
+
Requires-Dist: rich-click>=1.8
|
|
10
12
|
Requires-Dist: esptool~=5.2.0
|
|
11
13
|
Requires-Dist: esp-idf-defs~=0.1.3
|
|
12
14
|
Requires-Dist: esp-idf-nvs-partition-gen~=0.2.0
|
|
15
|
+
Provides-Extra: test
|
|
16
|
+
Requires-Dist: pytest>=8; extra == "test"
|
|
13
17
|
Dynamic: license-file
|
|
14
18
|
|
|
15
19
|
# idftool
|