# 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": ">=3.9,<4.0",
"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/2c/10/613620507c0b1b07fd62a179c7263edcc7b2a700032deec3bdd6e2af937a/rokuecp-0.19.2.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.2",
"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": "699d2a1b939eaacb20b1ef0d66ab3c921d01f0639398f56a852b0c3c2465b4f5",
"md5": "69fd9b4768ecfe3085331af1e6d348a1",
"sha256": "e24b13ddb0b443857ed325dbcc9b0e86d1f051a9929f8d46b6358ba34a78f7af"
},
"downloads": -1,
"filename": "rokuecp-0.19.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "69fd9b4768ecfe3085331af1e6d348a1",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9,<4.0",
"size": 12939,
"upload_time": "2024-03-13T03:06:52",
"upload_time_iso_8601": "2024-03-13T03:06:52.728370Z",
"url": "https://files.pythonhosted.org/packages/69/9d/2a1b939eaacb20b1ef0d66ab3c921d01f0639398f56a852b0c3c2465b4f5/rokuecp-0.19.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2c10613620507c0b1b07fd62a179c7263edcc7b2a700032deec3bdd6e2af937a",
"md5": "f43608a6fdd3e0ea5cb6d1a4d6e16ce4",
"sha256": "0bba945acedadf0f6689b93a4d599ebaeacd3ec7731e54fddcbc75453508bcfb"
},
"downloads": -1,
"filename": "rokuecp-0.19.2.tar.gz",
"has_sig": false,
"md5_digest": "f43608a6fdd3e0ea5cb6d1a4d6e16ce4",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9,<4.0",
"size": 12633,
"upload_time": "2024-03-13T03:06:54",
"upload_time_iso_8601": "2024-03-13T03:06:54.061987Z",
"url": "https://files.pythonhosted.org/packages/2c/10/613620507c0b1b07fd62a179c7263edcc7b2a700032deec3bdd6e2af937a/rokuecp-0.19.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-03-13 03:06:54",
"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"
}