Asyncio and The Pensieve Gui - GaryHendrick/Pensieve GitHub Wiki
Pensieve is built with asyncio, requiring a minimum python version of 3.4. Though Pensieve is designed for use on any workstation, the application of asyncio is in part motivated by a desire to build this code and the Pensieve generated code in a unified manner. It is hoped that the Pensieve generated code will run effectively on single core devices, such as the Raspberry Pi Zero.
The Event Loop
The asyncio event loop used in the Pensieve application will be built at the application entry point, and
then fired up immediately afterward. It will have to build coroutines which keep the system running throughout
its session, and only return upon the receipt of an appropriate .stop()
invocation.
Subgenerators
Within the looping architecture of the loop manager, it will be necessary to have a subsystem prepared to spawn
subgenerators to handle various Tasks
such as those required to scan a video file, iterating it's frames. Those
subgenerators must eventually return control to a central component which maintains the system lifecycle until
such a time as a system exit is desirable.