Metadata-Version: 2.4
Name: rokuecp
Version: 0.0.0
Summary: Asynchronous Python client for Roku (ECP)
License: MIT
License-File: LICENSE
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: Programming Language :: Python :: 3.14
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
```

