forked from OHF-Voice/linux-voice-assistant
-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathpyproject.toml
More file actions
111 lines (100 loc) · 2.9 KB
/
Copy pathpyproject.toml
File metadata and controls
111 lines (100 loc) · 2.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
[build-system]
requires = ["setuptools>=62.3"]
build-backend = "setuptools.build_meta"
[project]
name = "linux-voice-assistant"
version = "1.0.0"
license = {text = "Apache-2.0"}
description = "Linux voice assistant for Home Assistant using the ESPHome protocol"
readme = "README.md"
authors = [
{name = "The Home Assistant Authors", email = "hello@home-assistant.io"}
]
keywords = ["home", "assistant", "voice", "esphome", "linux"]
classifiers = [
"Development Status :: 3 - Alpha",
"Intended Audience :: Developers",
"Topic :: Text Processing :: Linguistic",
"License :: OSI Approved :: Apache Software License",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
]
requires-python = ">=3.9.0"
dependencies = [
"aioesphomeapi==43.9.1",
"soundcard<1",
"numpy>=2,<3",
"pymicro-wakeword>=2,<3",
"pyopen-wakeword>=1,<2",
"python-mpv>=1,<2",
"zeroconf<1",
"paho-mqtt",
"adafruit-circuitpython-dotstar",
"adafruit-circuitpython-neopixel",
"adafruit-circuitpython-neopixel-spi",
"RPi.GPIO",
"gpiozero",
"spidev",
"pyusb",
]
[project.optional-dependencies]
dev = [
"black",
"flake8",
"mypy",
"pylint",
"pytest",
"pytest-asyncio",
"pytest-cov",
"pytest-mock",
"pytest-benchmark",
]
# Optional GUI/tray dependencies. Only needed on desktop installs that use lva_tray_client.
tray = [
"PyQt5>=5.15",
]
# Optional Sendspin client support (extras: sendspin)
# - websockets: required for WS client connections
# - aiosendspin: reference protocol implementation + time sync utilities (future phases)
sendspin = [
"websockets>=12,<15",
"aiosendspin>=3,<4",
"opuslib",
]
[project.scripts]
lva-tray = "linux_voice_assistant.tray_client.client:main"
[project.urls]
"Source Code" = "https://github.com/imonlinux/linux-voice-assistant"
[tool.setuptools]
platforms = ["any"]
zip-safe = true
include-package-data = true
[tool.setuptools.packages.find]
include = ["linux_voice_assistant"]
exclude = ["tests", "tests.*"]
[tool.ruff]
target-version = "py39"
[tool.ruff.lint]
select = ["E9", "F4", "F8"]
ignore = [
# EventBus handlers intentionally assigned to unnamed locals for side-effect
# registration (LedController, MicMuteHandler, etc.) — not dead code
"F841",
]
[tool.pytest.ini_options]
testpaths = ["tests"]
python_files = ["test_*.py"]
python_classes = ["Test*"]
python_functions = ["test_*"]
addopts = "-v --tb=short --strict-markers"
markers = [
"hardware: marks tests as requiring hardware",
"slow: marks tests as slow running",
"integration: marks tests as integration tests",
"benchmark: marks tests as performance benchmarks",
]
asyncio_mode = "auto"