[build-system] requires = ["setuptools>=62.3", "setuptools-scm>=8"] build-backend = "setuptools.build_meta" [project] name = "linux-voice-assistant" 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.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", ] requires-python = ">=3.11.0" dependencies = [ "aioesphomeapi==45.3.1", "netifaces2==0.0.22", "soundcard<1", "numpy>=2,<3", "pymicro-wakeword>=2,<3", "pyopen-wakeword>=1,<2", "python-mpv>=1,<2", "zeroconf<1", "getmac<1", "types-protobuf", "websockets==12", "webrtc-noise-gain>=1,<2", ] dynamic = ["version"] [project.optional-dependencies] dev = [ "black", "flake8", "mypy", "pylint", "pytest", "isort", "autopep8", "pytest-asyncio", ] [project.scripts] linux-voice-assistant = "linux_voice_assistant.__main__:run" [project.urls] "Source Code" = "http://github.com/OHF-Voice/linux-voice-assistant" [tool.setuptools] platforms = ["any"] zip-safe = true include-package-data = true [tool.setuptools.packages.find] include = ["linux_voice_assistant", "linux_voice_assistant.*"] exclude = ["tests", "tests.*"] [tool.black] line-length = 200 target-version = ['py312', 'py313'] include = '\.pyi?$' exclude = ''' /( \.eggs | \.git | \.hg | \.mypy_cache | \.tox | \.venv | _build | buck-out | build | dist )/ ''' [tool.isort] profile = "black" line_length = 200 multi_line_output = 3 include_trailing_comma = true force_grid_wrap = 0 use_parentheses = true [tool.pylint."MESSAGES CONTROL"] disable = [ "abstract-method", "cyclic-import", "duplicate-code", "global-statement", "import-outside-toplevel", "inconsistent-return-statements", "locally-disabled", "not-context-manager", "too-few-public-methods", "too-many-arguments", "too-many-branches", "too-many-instance-attributes", "too-many-lines", "too-many-locals", "too-many-public-methods", "too-many-return-statements", "too-many-statements", "too-many-boolean-expressions", "unnecessary-pass", "unused-argument", "broad-except", "too-many-nested-blocks", "invalid-name", "unused-import", "fixme", "useless-super-delegation", "missing-module-docstring", "missing-class-docstring", "missing-function-docstring", "import-error", "consider-using-with", "R0917", "C0301", ] [tool.pylint."DESIGN"] max-args = 50 [tool.pylint.format] expected-line-ending-format = "LF" [tool.pytest.ini_options] testpaths = ["tests"] asyncio_mode = "auto"