[project]
name = "pepperplus-cb"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.13"
dependencies = [
  "agentspeak>=0.2.2",
  "colorlog>=6.10.1",
  "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",
  "python-json-logger>=4.0.0",
  "pyyaml>=6.0.3",
  "pyzmq>=27.1.0",
  "silero-vad>=6.0.0",
  "sphinx>=7.3.7",
  "sphinx-rtd-theme>=3.0.2",
  "torch>=2.8.0",
  "uvicorn>=0.37.0",
]

[dependency-groups]
dev = [
  "pre-commit>=4.3.0",
  "pytest>=8.4.2",
  "pytest-asyncio>=1.2.0",
  "pytest-cov>=7.0.0",
  "pytest-mock>=3.15.1",
  "soundfile>=0.13.1",
  "ruff>=0.14.2",
  "ruff-format>=0.3.0",
]
test = [
  "agentspeak>=0.2.2",
  "fastapi>=0.115.6",
  "httpx>=0.28.1",
  "mlx-whisper>=0.4.3 ; sys_platform == 'darwin'",
  "openai-whisper>=20250625",
  "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",
  "pyyaml>=6.0.3",
  "pyzmq>=27.1.0",
  "soundfile>=0.13.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
]
