Handle BLE connect TimeoutError and bump to 0.1.11
This commit is contained in:
@@ -4,6 +4,11 @@ All notable changes to this project are documented in this file.
|
||||
|
||||
The format is based on Keep a Changelog and this project uses Semantic Versioning.
|
||||
|
||||
## [0.1.11] - 2026-03-07
|
||||
|
||||
### Fixed
|
||||
- Handled `asyncio.TimeoutError` from BLE connect path so connection timeouts now return mapped API errors (502) instead of unhandled 500 exceptions.
|
||||
|
||||
## [0.1.10] - 2026-03-07
|
||||
|
||||
### Changed
|
||||
|
||||
@@ -419,6 +419,12 @@ async def connect(
|
||||
await pc.start()
|
||||
yield pc
|
||||
return
|
||||
except asyncio.TimeoutError as exc:
|
||||
last_exc = exc
|
||||
if attempt < BLE_CONNECT_RETRIES:
|
||||
await asyncio.sleep(BLE_CONNECT_BACKOFF * attempt)
|
||||
continue
|
||||
raise PrinterError(f"BLE connection timed out: {exc}") from exc
|
||||
except BleakDBusError as exc:
|
||||
msg = str(exc).lower()
|
||||
if "br-connection-not-supported" in msg:
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
# Changelog
|
||||
|
||||
## 0.1.11
|
||||
|
||||
- Fixed unhandled BLE connect timeout (`asyncio.TimeoutError`) that previously caused HTTP 500 responses.
|
||||
|
||||
## 0.1.10
|
||||
|
||||
- Added automatic BLE reconnect retry with backoff for transient timeout errors (`br-connection-timeout`).
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
name: "Fichero Printer"
|
||||
version: "0.1.10"
|
||||
version: "0.1.11"
|
||||
slug: "fichero_printer"
|
||||
description: "REST API for the Fichero D11s (AiYin) thermal label printer over Bluetooth"
|
||||
url: "https://git.leuschner.dev/Tobias/Fichero"
|
||||
|
||||
@@ -419,6 +419,12 @@ async def connect(
|
||||
await pc.start()
|
||||
yield pc
|
||||
return
|
||||
except asyncio.TimeoutError as exc:
|
||||
last_exc = exc
|
||||
if attempt < BLE_CONNECT_RETRIES:
|
||||
await asyncio.sleep(BLE_CONNECT_BACKOFF * attempt)
|
||||
continue
|
||||
raise PrinterError(f"BLE connection timed out: {exc}") from exc
|
||||
except BleakDBusError as exc:
|
||||
msg = str(exc).lower()
|
||||
if "br-connection-not-supported" in msg:
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[project]
|
||||
name = "fichero-printer"
|
||||
version = "0.1.10"
|
||||
version = "0.1.11"
|
||||
description = "Fichero D11s thermal label printer - BLE CLI tool"
|
||||
requires-python = ">=3.10"
|
||||
dependencies = [
|
||||
|
||||
Reference in New Issue
Block a user