[project] name = "stv" version = "1.3.2" description = "Talk to your TV. Play Netflix, Disney+, and 20+ streaming platforms by name on any smart TV." readme = "README.md" license = "MIT" requires-python = ">=3.11" authors = [{ name = "Yunsu Kim" }] keywords = [ "tv", "smart-tv", "mcp", "cli", "ai-agent", "lg", "samsung", "roku", "android-tv", "fire-tv", "deep-link", "netflix", "youtube", "spotify", "disney-plus", "hbo-max", "prime-video", "hulu", "crunchyroll", "justwatch", "home-assistant", "claude-code", ] classifiers = [ "Development Status :: 5 - Production/Stable", "Intended Audience :: End Users/Desktop", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Topic :: Home Automation", ] dependencies = [ "click>=8.0.0", "rich>=13.7.0", ] [project.optional-dependencies] lg = ["aiowebostv>=0.7.0"] samsung = ["samsungtvws[encrypted]>=3.0.0"] android = ["androidtvremote2>=0.2.0"] roku = ["aiohttp>=3.9.0"] mcp = ["fastmcp>=2.0.0"] all = ["stv[lg,samsung,android,roku,mcp]"] dev = [ "pytest>=8.0.0", "pytest-asyncio>=0.23.0", # Driver / MCP runtime deps so test suites gated on `importorskip` # (e.g. tests/test_lg_driver.py) actually run under `pip install .[dev]` # in CI instead of silently skipping. "aiowebostv>=0.7.0", "samsungtvws[encrypted]>=3.0.0", "androidtvremote2>=0.2.0", "aiohttp>=3.9.0", "fastmcp>=2.0.0", ] [project.urls] Homepage = "https://github.com/Hybirdss/smartest-tv" Repository = "https://github.com/Hybirdss/smartest-tv" [project.scripts] stv = "smartest_tv.cli:main" stv-install-skill = "smartest_tv.install_skill:main" [tool.pytest.ini_options] testpaths = ["tests"] pythonpath = ["src"] asyncio_mode = "auto" [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.ruff] target-version = "py311" line-length = 120 exclude = ["custom_components"] [tool.ruff.lint] select = ["E", "F", "W", "I"] ignore = ["E501"] [tool.ruff.lint.per-file-ignores] "src/smartest_tv/cli.py" = ["F811"] [tool.hatch.build] [tool.hatch.build.targets.wheel] packages = ["src/smartest_tv"] [tool.hatch.build.targets.wheel.force-include] "skills/stv-concierge" = "skills/stv-concierge"