Skip to content

Packaging update & gpiodevice interrupt handling - #40

Open
Gadgetoid wants to merge 11 commits into
mainfrom
feature/gpiodevice-edge
Open

Packaging update & gpiodevice interrupt handling#40
Gadgetoid wants to merge 11 commits into
mainfrom
feature/gpiodevice-edge

Conversation

@Gadgetoid

Copy link
Copy Markdown
Member

Requires a new build of gpiodevice, which needs pimoroni/gpiodevice-python#8

Gadgetoid added 11 commits July 6, 2026 08:59
- hatchling dynamic optional-dependencies via hatch-requirements-txt
- [dependency-groups] dev; ruff import sorting (drop isort/black)
- pre-commit + editorconfig; uv-based CI and tox qa
- requires-python >= 3.9, classifiers 3.9-3.13
- remove check.sh, requirements-dev.txt, .stickler.yml
Replaces the hand-rolled _t_poll_ioexpander (select.poll loop + manual thread +
_polling flag + __del__ join) with the canonical gpiodevice.watch_pin watcher.
Declare the previously-undeclared gpiodevice dependency.
Replaces the hand-rolled select.poll loops.

weather.py queues events and drains them in update() rather than acting
on them from the watch thread. Changing view there would race the render:
get_current_view reads _current_view then _current_subview, so a
concurrent next_subview can index out of range.
Broken since the port to gpiod. It imported RPi.GPIO, which does not work
on Pi 5, and called GPIO.handlers, which was never an RPi.GPIO API. It was
undocumented, referenced by nothing, and shipped in the sdist.
Badge tracked master, default branch is main. pyproject requires 3.9, not
the 3.7 inherited from boilerplate.
Also adds the Changelog heading used by the current boilerplate.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant