obsws-python/pyproject.toml
2026-03-27 16:29:16 +00:00

83 lines
2.1 KiB
TOML

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[project]
name = "obsws-python"
dynamic = ["version"]
description = "A Python SDK for OBS Studio WebSocket v5.0"
readme = "README.md"
license = { text = "GPL-3.0-only" }
requires-python = ">=3.9"
authors = [{ name = "Adem Atikturk", email = "aatikturk@gmail.com" }]
dependencies = ["tomli >= 2.0.1;python_version < '3.11'", "websocket-client"]
[project.urls]
Homepage = "https://github.com/aatikturk/obsws-python"
[tool.hatch.version]
path = "obsws_python/version.py"
[tool.hatch.build.targets.sdist]
include = ["/obsws_python"]
[tool.hatch.env]
requires = ["hatch-dotenv"]
[tool.hatch.env.collectors.dotenv.e]
env-files = [".env"]
fail-on-missing = true
[tool.hatch.env.collectors.dotenv.hatch-test]
env-files = [".env"]
fail-on-missing = true
[tool.hatch.envs.default]
dependencies = ["pre-commit"]
[tool.hatch.envs.e]
dependencies = ["keyboard"]
env-include = ["OBSWS_*"]
[tool.hatch.envs.e.scripts]
events = "python -m examples.events"
hotkeys = "python -m examples.hotkeys"
levels = "python -m examples.levels"
scene-rotate = "python -m examples.scene_rotate"
[tool.hatch.envs.hatch-test]
randomize = true
env-include = ["OBSWS_*"]
[tool.hatch.envs.hatch-test.scripts]
run = "pytest{env:HATCH_TEST_ARGS:} {args}"
[[tool.hatch.envs.hatch-test.matrix]]
python = ["313", "312", "311", "310", "39"]
[tool.hatch.envs.style]
detached = true
dependencies = ["black", "isort"]
[tool.hatch.envs.style.scripts]
check = ["black --check --diff .", "isort --check-only --diff ."]
fmt = ["isort .", "black ."]
[tool.black]
line-length = 88
include = '\.pyi?$'
# 'extend-exclude' excludes files or directories in addition to the defaults
extend-exclude = '''
(
^/\.git/ # exclude all files in the .git directory
^/\.hatch/ # exclude all files in the .hatch directory
^/\.pytest_cache/ # exclude all files in the .pytest_cache directory
| .*_pb2.py # exclude autogenerated Protocol Buffer files anywhere in the project
)
'''
[tool.isort]
profile = "black"
skip = [".gitignore", ".dockerignore"]
skip_glob = [".git/*", ".hatch/*", ".pytest_cache/*"]