- API changes:
- Expose `pause` argument for marquee effect in client and CLI
- Rename `client.poke` and `Poked` to `client.read_lcd_memory` and `LcdMemory` respectively
- Improved control flow and error handling:
- Add `client.closed` future
- Add `client` async contextmanager that awaits `client.closed`
- Handle errors by surfacing them either in the command calls or through `client.closed`
- Refactor CLI command names
- `read-lcd-memory` -> `lcd poke`
- `send-command-to-lcd-controller` -> `lcd send`
- `user-flash-area` -> `flash`
- `store-boot-state` -> `store`
- `clear-screen` -> `clear`
- `set-line-1` -> `line 1`
- `set-line-2` -> `line 2`
- `special-character` -> `character`
- `cursor set-position` -> `cursor position`
- `cursor set-style` -> `cursor style`
- `set-contrast` -> `constrast`
- `set-backlight` -> `backlight`
- `dow read-device-information` -> `dow info`
- `temperature setup-reporting` -> `temperature reporting`
- `temperature setup-live-display` -> `temperature display`
- `keypad configure-reporting` -> `keypad reporting`
- `set-atx-power-switch-functionality` -> `atx`
- `configure-watchdog` -> `watchdog`
- `read-status` -> `status`
- `set-baud-rate` -> `baud`
- CLI improvements:
- Byte CLI arguments are validated as being in range
- Watchdog CLI argument allows "disable" and "disabled" values
- Configure device model, hardware revision and firmware revison in CLI
- Do not show stack trace on connection errors in CLI
- Support arbitrary multi-byte encodings in character ROM
- Build, package and CI housekeeping
- Compile `requirements.txt` and `requirements_dev.txt`
- Add CI pipeline
- Support Python 3.11
- Add PyPI classifiers
- Updated documentation in README.md