Metadata-Version: 2.3 Name: rokuecp Version: 0.19.5 Summary: Asynchronous Python client for Roku (ECP) License: MIT Keywords: roku,ecp,api,async,client Author: Chris Talkington Author-email: chris@talkingtontech.com Maintainer: Chris Talkington Maintainer-email: chris@talkingtontech.com Requires-Python: >=3.9,<4.0 Classifier: Development Status :: 4 - Beta Classifier: Framework :: AsyncIO Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: MIT License Classifier: Natural Language :: English Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.10 Classifier: Programming Language :: Python :: 3.11 Classifier: Programming Language :: Python :: 3.12 Classifier: Programming Language :: Python :: 3.13 Classifier: Topic :: Software Development :: Libraries :: Python Modules Requires-Dist: aiohttp (>=3.0.0) Requires-Dist: async-timeout (==5.0.1) ; python_version < "3.11" Requires-Dist: awesomeversion (>=21.10.1) Requires-Dist: backoff (>=2.2.0) Requires-Dist: xmltodict (>=0.13.0) Requires-Dist: yarl (>=1.6.0) Project-URL: Bug Tracker, https://github.com/ctalkington/python-rokuecp/issues Project-URL: Changelog, https://github.com/ctalkington/python-rokuecp/releases Project-URL: Documentation, https://github.com/ctalkington/python-rokuecp Project-URL: Homepage, https://github.com/ctalkington/python-rokuecp Project-URL: Repository, https://github.com/ctalkington/python-rokuecp Description-Content-Type: text/markdown # Python: Roku (ECP) Client Asynchronous Python client for Roku devices using the [External Control Protocol](https://developer.roku.com/docs/developer-program/debugging/external-control-api.md). ## About This package allows you to monitor and control Roku devices. ## Installation ```bash pip install rokuecp ``` ## Usage ```python import asyncio from rokuecp import Roku async def main(): """Show example of connecting to your Roku device.""" async with Roku("192.168.1.100") as roku: print(roku) if __name__ == "__main__": loop = asyncio.get_event_loop() loop.run_until_complete(main()) ``` ## Setting up development environment This Python project is fully managed using the [Poetry](https://python-poetry.org) dependency manager. But also relies on the use of NodeJS for certain checks during development. You need at least: - Python 3.9+ - [Poetry](https://python-poetry.org/docs/#installation) - NodeJS 20+ (including NPM) To install all packages, including all development requirements: ```bash npm install poetry install ``` As this repository uses the [pre-commit](https://pre-commit.com/) framework, all changes are linted and tested with each commit. You can run all checks and tests manually, using the following command: ```bash poetry run pre-commit run --all-files ``` To run just the Python tests: ```bash poetry run pytest ```