I wanted to share a project I’ve been working on for the past ~1.5 years, and I thought some of you might be interested.
toon provides a framework for polling input devices on a separate Python process. It uses the built-in multiprocessing package to handle spawning and communicating with the device process, and numpy to provide a user-friendly interface to the device’s data, which is transferred via shared memory.
toon is tested on Python 2 and 3, and should work across Windows/MacOS/Linux.
The input module is (hopefully) fairly stable at this point, though I would appreciate any tips/feedback about making the API easier to use or missing functionality (via the Github issue tracker). See the README for usage notes, the toon/input/ folder for example devices (a mix of common, e.g. mouse/keyboard, and uncommon, e.g. Ascension Flock of Birds, Immersion CyberGlove, …) and the demos/ folder for examples (e.g. integration with psychopy, making real-time plots, etc.).
Additional context: https://github.com/psychopy/psychopy/issues/1541