# 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 18+ (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
```
Raw data
{
"_id": null,
"home_page": "https://github.com/ctalkington/python-rokuecp",
"name": "rokuecp",
"maintainer": "Chris Talkington",
"docs_url": null,
"requires_python": "<4.0,>=3.9",
"maintainer_email": "chris@talkingtontech.com",
"keywords": "roku, ecp, api, async, client",
"author": "Chris Talkington",
"author_email": "chris@talkingtontech.com",
"download_url": "https://files.pythonhosted.org/packages/ad/6b/a152c41174baa085d3f0949c4dc3eaa6ad3c48c2f9c807fa9c2b647e663f/rokuecp-0.19.3.tar.gz",
"platform": null,
"description": "# Python: Roku (ECP) Client\n\nAsynchronous Python client for Roku devices using the [External Control Protocol](https://developer.roku.com/docs/developer-program/debugging/external-control-api.md).\n\n## About\n\nThis package allows you to monitor and control Roku devices.\n\n## Installation\n\n```bash\npip install rokuecp\n```\n\n## Usage\n\n```python\nimport asyncio\n\nfrom rokuecp import Roku\n\n\nasync def main():\n \"\"\"Show example of connecting to your Roku device.\"\"\"\n async with Roku(\"192.168.1.100\") as roku:\n print(roku)\n\n\nif __name__ == \"__main__\":\n loop = asyncio.get_event_loop()\n loop.run_until_complete(main())\n```\n\n## Setting up development environment\n\nThis Python project is fully managed using the [Poetry](https://python-poetry.org) dependency\nmanager. But also relies on the use of NodeJS for certain checks during\ndevelopment.\n\nYou need at least:\n\n- Python 3.9+\n- [Poetry](https://python-poetry.org/docs/#installation)\n- NodeJS 18+ (including NPM)\n\nTo install all packages, including all development requirements:\n\n```bash\nnpm install\npoetry install\n```\n\nAs this repository uses the [pre-commit](https://pre-commit.com/) framework, all changes\nare linted and tested with each commit. You can run all checks and tests\nmanually, using the following command:\n\n```bash\npoetry run pre-commit run --all-files\n```\n\nTo run just the Python tests:\n\n```bash\npoetry run pytest\n```\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Asynchronous Python client for Roku (ECP)",
"version": "0.19.3",
"project_urls": {
"Bug Tracker": "https://github.com/ctalkington/python-rokuecp/issues",
"Changelog": "https://github.com/ctalkington/python-rokuecp/releases",
"Documentation": "https://github.com/ctalkington/python-rokuecp",
"Homepage": "https://github.com/ctalkington/python-rokuecp",
"Repository": "https://github.com/ctalkington/python-rokuecp"
},
"split_keywords": [
"roku",
" ecp",
" api",
" async",
" client"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "b8ef5cfc2c10063fbefccea390ff1d228e14b47a970c8057dd7f169b5b080304",
"md5": "97ab7d56bfbf11225bf835207544e2bf",
"sha256": "b4b95a098d9de18cdbda6d724876345ca13647188ce1bbe9e400a888cfb8c3fe"
},
"downloads": -1,
"filename": "rokuecp-0.19.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "97ab7d56bfbf11225bf835207544e2bf",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.9",
"size": 12987,
"upload_time": "2024-05-08T06:20:01",
"upload_time_iso_8601": "2024-05-08T06:20:01.743882Z",
"url": "https://files.pythonhosted.org/packages/b8/ef/5cfc2c10063fbefccea390ff1d228e14b47a970c8057dd7f169b5b080304/rokuecp-0.19.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ad6ba152c41174baa085d3f0949c4dc3eaa6ad3c48c2f9c807fa9c2b647e663f",
"md5": "08b66cd4ff6415cb69eaee296e1964ec",
"sha256": "b7db82f0baccf5ddc93b266a21f5bb2619a8bd47dcd28995d08b60057288311f"
},
"downloads": -1,
"filename": "rokuecp-0.19.3.tar.gz",
"has_sig": false,
"md5_digest": "08b66cd4ff6415cb69eaee296e1964ec",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.9",
"size": 12668,
"upload_time": "2024-05-08T06:20:05",
"upload_time_iso_8601": "2024-05-08T06:20:05.500713Z",
"url": "https://files.pythonhosted.org/packages/ad/6b/a152c41174baa085d3f0949c4dc3eaa6ad3c48c2f9c807fa9c2b647e663f/rokuecp-0.19.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-05-08 06:20:05",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ctalkington",
"github_project": "python-rokuecp",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "rokuecp"
}