pyfoldingathomecontrol

Python library to get stats from your Folding@Home Clients


Keywords
Folding@Home, asyncio, hacktoberfest, python, python3
License
MIT
Install
pip install pyfoldingathomecontrol==3.0.0

Documentation

PyFoldingAtHomeControl

Python library to get stats from your Folding@Home Clients

GitHub Actions PyPi PyPi codecov Downloads

Installation

pip install PyFoldingAtHomeControl

Usage

import asyncio
from FoldingAtHomeControl import FoldingAtHomeController
from FoldingAtHomeControl import PyOnMessageTypes


def callback(message_type, data):
    print(f"callback for: {message_type}: ", data)


async def cancel_task(task_to_cancel):
    task_to_cancel.cancel()
    await task_to_cancel


if __name__ == "__main__":
    Controller = FoldingAtHomeController("localhost")
    Controller.register_callback(callback)
    loop = asyncio.get_event_loop()
    task = loop.create_task(Controller.start())
    try:
        loop.run_until_complete(task)
    except KeyboardInterrupt:
        pass
    finally:
        print("Cancelling task")
        try:
            loop.run_until_complete(cancel_task(task))
        except asyncio.CancelledError:
            print("Closing Loop")
            loop.close()