duckypad-twitch/pyproject.toml
2025-04-02 10:48:36 +01:00

128 lines
3.4 KiB
TOML

[build-system]
build-backend = "hatchling.build"
requires = [ "hatchling" ]
[project]
name = "duckypad-twitch"
description = "DuckyPad macros for streaming software"
readme = "README.md"
keywords = [ ]
license = "MIT"
authors.email = "code@onyxandiris.online"
authors.name = "onyx-and-iris"
requires-python = ">=3.12,<4.0"
classifiers = [
"Development Status :: 4 - Beta",
"Programming Language :: Python",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python :: Implementation :: PyPy",
]
dynamic = [ "version" ]
dependencies = [
"keyboard",
"obsws-python>=1.7",
"slobs-websocket @ git+https://git@github.com/onyx-and-iris/slobs_websocket@v0.1.4#egg=slobs_websocket",
"tomli>=2.0.1; python_version<'3.11'",
"vban-cmd>=2.5.2",
"voicemeeter-api>=2.6.1",
"websocket-client",
"xair-api>=2.4.1",
]
urls.Documentation = "https://github.com/unknown/duckypad-twitch#readme"
urls.Issues = "https://github.com/unknown/duckypad-twitch/issues"
urls.Source = "https://github.com/unknown/duckypad-twitch"
scripts.duckypad-macros = "duckypad_twitch.macros:run"
[tool.hatch.metadata]
allow-direct-references = true
[tool.hatch.version]
path = "duckypad_twitch/__about__.py"
[tool.hatch.envs.default]
dependencies = [ "coverage[toml]>=6.5", "pytest" ]
[tool.hatch.envs.default.scripts]
test = "pytest {args:tests}"
test-cov = "coverage run -m pytest {args:tests}"
cov-report = [ "- coverage combine", "coverage report" ]
cov = [ "test-cov", "cov-report" ]
[[tool.hatch.envs.all.matrix]]
python = [ "3.12", "3.13" ]
[tool.hatch.envs.lint]
detached = true
dependencies = [ "black>=23.1.0", "mypy>=1.0.0", "ruff>=0.0.243" ]
[tool.hatch.envs.lint.scripts]
typing = "mypy --install-types --non-interactive {args:duckypad_twitch tests}"
style = [ "ruff {args:.}", "black --check --diff {args:.}" ]
fmt = [ "black {args:.}", "ruff --fix {args:.}", "style" ]
all = [ "style", "typing" ]
[tool.ruff]
target-version = "py312"
line-length = 120
indent-width = 4
exclude = [
".bzr",
".direnv",
".eggs",
".git",
".git-rewrite",
".hg",
".mypy_cache",
".nox",
".pants.d",
".pytype",
".ruff_cache",
".svn",
".tox",
".venv",
"__pypackages__",
"_build",
"buck-out",
"build",
"dist",
"node_modules",
"venv",
]
format.indent-style = "space"
format.quote-style = "single"
format.line-ending = "auto"
format.skip-magic-trailing-comma = false
format.docstring-code-line-length = "dynamic"
format.docstring-code-format = false
lint.select = [ "E4", "E7", "E9", "F" ]
lint.ignore = [ ]
lint.per-file-ignores."__init__.py" = [ "E402", "F401" ]
lint.per-file-ignores."tests/**/*" = [ "PLR2004", "S101", "TID252" ]
lint.fixable = [ "ALL" ]
lint.unfixable = [ ]
lint.dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
lint.mccabe.max-complexity = 10
isort.known-first-party = [ "duckypad_twitch" ]
flake8-tidy-imports.ban-relative-imports = "all"
[tool.coverage.run]
source_pkgs = [ "duckypad_twitch", "tests" ]
branch = true
parallel = true
omit = [ "duckypad_twitch/__about__.py" ]
[tool.coverage.paths]
duckypad_twitch = [ "duckypad_twitch", "*/duckypad-twitch/duckypad_twitch" ]
tests = [ "tests", "*/duckypad-twitch/tests" ]
[tool.coverage.report]
exclude_lines = [ "no cov", "if __name__ == .__main__.:", "if TYPE_CHECKING:" ]