[project] name = "huesoporro" version = "0.3.0" description = "Misc Twitch bot" readme = "README.md" authors = [ { name = "185504a9", email = "catalin@roboces.dev" } ] requires-python = ">=3.11" dependencies = [ "nltk>=3.9.1", "platformdirs>=4.3.6", "pydantic>=2.9.2", "pydantic-settings>=2.6.0", "loguru>=0.7.2", "gtts>=2.5.4", "litestar[standard]>=2.13.0", "httpx>=0.28.0", "caribou>=0.4.1", "aiosqlite>=0.20.0", "pyjwt>=2.10.1", "twitchio>=2.10.0", "redis>=5.2.1", "pytz>=2024.2", "discord-py>=2.4.0", "tenacity>=9.0.0", ] [project.scripts] huesoporro = "apps.cli.typer.main:app" [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.uv] dev-dependencies = [ "mypy>=1.13.0", "pytest>=8.3.4", "pytest-asyncio>=0.25.0", "ruff>=0.8.3", "pytest-coverage>=0.0", "polyfactory>=2.18.1", "types-pyyaml>=6.0.12.20241230", ] [[tool.mypy.overrides]] module = [ "nltk", "nltk.tokenize", "nltk.tokenize.treebank", "nltk.tokenize.destructive", "TwitchWebsocket", "tokenizer", "caribou.migrate", "twitchio", "twitchio.ext", "gtts", "yt_dlp" ] ignore_missing_imports = true [tool.ruff.lint] extend-select = [ "W", "C90", "I", "N", "UP", "S", "BLE", "B", "A", "COM", "C4", "DTZ", "T10", "EM", "ISC", "T20", "PT", "RSE", "RET", "SIM", "PTH", "ERA", "PGH", "PL", "RUF", "FURB", "PERF" ] extend-ignore = ["S101", "ISC002", "COM812", "ISC001", "EM101", "EM102"] [tool.pytest.ini_options] asyncio_mode = "auto" asyncio_default_fixture_loop_scope = "function" [dependency-groups] cli = [ "typer>=0.15.1", "yt-dlp>=2025.1.26", ]