OpenShock-AutoFlasher 0.2.0__tar.gz → 0.2.1__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.
- {openshock_autoflasher-0.2.0 → openshock_autoflasher-0.2.1/OpenShock_AutoFlasher.egg-info}/PKG-INFO +1 -1
- {openshock_autoflasher-0.2.0/OpenShock_AutoFlasher.egg-info → openshock_autoflasher-0.2.1}/PKG-INFO +1 -1
- {openshock_autoflasher-0.2.0 → openshock_autoflasher-0.2.1}/openshock_autoflasher/flasher.py +20 -5
- {openshock_autoflasher-0.2.0 → openshock_autoflasher-0.2.1}/pyproject.toml +1 -1
- {openshock_autoflasher-0.2.0 → openshock_autoflasher-0.2.1}/LICENSE +0 -0
- {openshock_autoflasher-0.2.0 → openshock_autoflasher-0.2.1}/MANIFEST.in +0 -0
- {openshock_autoflasher-0.2.0 → openshock_autoflasher-0.2.1}/OpenShock_AutoFlasher.egg-info/SOURCES.txt +0 -0
- {openshock_autoflasher-0.2.0 → openshock_autoflasher-0.2.1}/OpenShock_AutoFlasher.egg-info/dependency_links.txt +0 -0
- {openshock_autoflasher-0.2.0 → openshock_autoflasher-0.2.1}/OpenShock_AutoFlasher.egg-info/entry_points.txt +0 -0
- {openshock_autoflasher-0.2.0 → openshock_autoflasher-0.2.1}/OpenShock_AutoFlasher.egg-info/requires.txt +0 -0
- {openshock_autoflasher-0.2.0 → openshock_autoflasher-0.2.1}/OpenShock_AutoFlasher.egg-info/top_level.txt +0 -0
- {openshock_autoflasher-0.2.0 → openshock_autoflasher-0.2.1}/README.md +0 -0
- {openshock_autoflasher-0.2.0 → openshock_autoflasher-0.2.1}/openshock_autoflasher/__init__.py +0 -0
- {openshock_autoflasher-0.2.0 → openshock_autoflasher-0.2.1}/openshock_autoflasher/__main__.py +0 -0
- {openshock_autoflasher-0.2.0 → openshock_autoflasher-0.2.1}/openshock_autoflasher/cli.py +0 -0
- {openshock_autoflasher-0.2.0 → openshock_autoflasher-0.2.1}/openshock_autoflasher/constants.py +0 -0
- {openshock_autoflasher-0.2.0 → openshock_autoflasher-0.2.1}/openshock_autoflasher/py.typed +0 -0
- {openshock_autoflasher-0.2.0 → openshock_autoflasher-0.2.1}/openshock_autoflasher/styles.py +0 -0
- {openshock_autoflasher-0.2.0 → openshock_autoflasher-0.2.1}/requirements-dev.txt +0 -0
- {openshock_autoflasher-0.2.0 → openshock_autoflasher-0.2.1}/requirements.txt +0 -0
- {openshock_autoflasher-0.2.0 → openshock_autoflasher-0.2.1}/setup.cfg +0 -0
- {openshock_autoflasher-0.2.0 → openshock_autoflasher-0.2.1}/tests/__init__.py +0 -0
- {openshock_autoflasher-0.2.0 → openshock_autoflasher-0.2.1}/tests/test_cli.py +0 -0
- {openshock_autoflasher-0.2.0 → openshock_autoflasher-0.2.1}/tests/test_constants.py +0 -0
- {openshock_autoflasher-0.2.0 → openshock_autoflasher-0.2.1}/tests/test_flasher.py +0 -0
- {openshock_autoflasher-0.2.0 → openshock_autoflasher-0.2.1}/tests/test_styles.py +0 -0
{openshock_autoflasher-0.2.0 → openshock_autoflasher-0.2.1}/openshock_autoflasher/flasher.py
RENAMED
|
@@ -236,16 +236,31 @@ class AutoFlasher:
|
|
|
236
236
|
break
|
|
237
237
|
raw.extend(byte)
|
|
238
238
|
|
|
239
|
-
|
|
240
|
-
|
|
239
|
+
decoded = raw.decode("utf-8", errors="ignore")
|
|
240
|
+
# Normalize \r\n and bare \r to \n so splitlines doesn't
|
|
241
|
+
# duplicate content on carriage-return-only line endings.
|
|
242
|
+
decoded = decoded.replace("\r\n", "\n").replace("\r", "\n")
|
|
243
|
+
seen: Set[str] = set()
|
|
244
|
+
for line in decoded.splitlines():
|
|
245
|
+
# Strip all non-printable characters (including null bytes that
|
|
246
|
+
# .strip() won't remove), then trim whitespace.
|
|
247
|
+
line = "".join(c for c in line if c.isprintable()).strip()
|
|
241
248
|
if not line or line == cmd:
|
|
242
249
|
continue
|
|
250
|
+
# Filter lines that are entirely one repeated character (e.g. "xxxxx...")
|
|
251
|
+
if len(set(line)) == 1:
|
|
252
|
+
continue
|
|
243
253
|
if line.startswith(">"):
|
|
244
254
|
line = line[1:].strip()
|
|
245
255
|
if line.startswith(cmd):
|
|
246
256
|
line = line[len(cmd) :].strip()
|
|
247
|
-
if line:
|
|
248
|
-
|
|
257
|
+
if not line:
|
|
258
|
+
continue
|
|
259
|
+
# Deduplicate identical lines (device can echo same line many times)
|
|
260
|
+
if line in seen:
|
|
261
|
+
continue
|
|
262
|
+
seen.add(line)
|
|
263
|
+
response_lines.append(line)
|
|
249
264
|
|
|
250
265
|
if response_lines:
|
|
251
266
|
self.log(f"Response: {' '.join(response_lines)}")
|
|
@@ -412,7 +427,7 @@ class AutoFlasher:
|
|
|
412
427
|
|
|
413
428
|
# Print header with background
|
|
414
429
|
_pkg_version = importlib.metadata.version("OpenShock-AutoFlasher")
|
|
415
|
-
self.log(f"OpenShock Auto-Flasher
|
|
430
|
+
self.log(f"OpenShock Auto-Flasher {_pkg_version}")
|
|
416
431
|
self.log("=" * 60)
|
|
417
432
|
self.log(f"Channel: {self.channel}")
|
|
418
433
|
self.log(f"Erase flash: {self.erase_flash}")
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openshock_autoflasher-0.2.0 → openshock_autoflasher-0.2.1}/openshock_autoflasher/__init__.py
RENAMED
|
File without changes
|
{openshock_autoflasher-0.2.0 → openshock_autoflasher-0.2.1}/openshock_autoflasher/__main__.py
RENAMED
|
File without changes
|
|
File without changes
|
{openshock_autoflasher-0.2.0 → openshock_autoflasher-0.2.1}/openshock_autoflasher/constants.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|