[project]
name = "pepperplus-cb"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.13"
dependencies = [
    "fastapi[all]>=0.115.6",
    "mlx-whisper>=0.4.3 ; sys_platform == 'darwin'",
    "numpy>=2.3.3",
    "openai-whisper>=20250625",
    "pyaudio>=0.2.14",
    "pydantic>=2.12.0",
    "pydantic-settings>=2.11.0",
    "pytest>=8.4.2",
    "pytest-asyncio>=1.2.0",
    "pytest-cov>=7.0.0",
    "pytest-mock>=3.15.1",
    "pyzmq>=27.1.0",
    "silero-vad>=6.0.0",
    "spade>=4.1.0",
    "spade-bdi>=0.3.2",
    "torch>=2.8.0",
    "uvicorn>=0.37.0",
]

[dependency-groups]
dev = [
    "pre-commit>=4.3.0",
    "ruff>=0.14.2",
    "ruff-format>=0.3.0",
]
integration-test = [
    "soundfile>=0.13.1",
]
test = [
    "numpy>=2.3.3",
    "pytest>=8.4.2",
    "pytest-asyncio>=1.2.0",
    "pytest-cov>=7.0.0",
    "pytest-mock>=3.15.1",
]

[tool.pytest.ini_options]
pythonpath = ["src"]

[tool.ruff]
line-length = 100

[tool.ruff.lint]
extend-select = [
    "E",   # pycodestyle
    "F",   # pyflakes
    "I",   # isort (import sorting)
    "UP",  # pyupgrade (modernize code)
    "B",   # flake8-bugbear (common bugs)
    "C4",  # flake8-comprehensions (unnecessary comprehensions)
]

ignore = [
    "E226",  # spaces around operators
    "E701",  # multiple statements on a single line
]
