Submission: Python, asyncio, libgpiod, and Pointless Blinking

Biography

  • Born in Graz, and bound to die in Graz

  • Been around as an employee in and around Graz for many years

  • Self employed as trainer and consultant for even more years

  • https://www.faschingbauer.me

Abstract

Python’s lovely asyncio library allows me to write event-driven programs in a style that looks much like multithreaded code but isn’t. Combining asyncio with the equally lovely Linux GPIO subsystem is just another logical step. In this talk I show what asyncio is, how libgpiod works, and how both are used to do pointless projects.

Description

Continuing the story of pointlessly blinking lights from my last year’s talk, I show

  • How GPIO interrupts are configured to get notified of hardware button presses, and how this can look like in Python (hint: generators, and iteration).

  • How button-events can be used in an async programming style (hint: asyncronous generators, and async for)

  • How this fits into the pointless project of blinking lights.

Additionally, I give an overview of async libraries that are more to the point, like

  • Textual, a terminal UI framework

  • python-sdbus, the Python binding for the systemd D-Bus client implementation