Lyon_chatbox / pyproject.toml
Jacid23's picture
Rebrand app as Lyon Chatbox
dfedf76
Raw
History Blame Contribute Delete
4.69 kB
[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"
[project]
name = "lyon-chatbox"
version = "0.3.0"
authors = [{ name = "Pollen Robotics", email = "contact@pollen-robotics.com" }]
description = ""
readme = "README.md"
requires-python = ">=3.10"
dependencies = [
#Media
"aiortc>=1.13.0",
"fastrtc>=0.0.34",
"gradio==5.50.1.dev1",
"huggingface-hub==1.3.0",
"opencv-python>=4.12.0.88",
#Environment variables
"python-dotenv",
#OpenAI
"openai>=2.1",
#Reachy mini
"reachy_mini_dances_library",
"reachy_mini_toolbox",
"reachy-mini>=1.5.0",
"gradio_client>=1.13.3",
"gstreamer-bundle==1.28.1; sys_platform != 'linux'",
"PyGObject>=3.42.2,<=3.46.0; sys_platform == 'linux'",
"mlx-audio>=0.3.1; sys_platform == 'darwin'",
]
[project.optional-dependencies]
local_vision = [
"torch>=2.1",
"transformers>=5.0.0rc2",
"num2words",
]
yolo_vision = [
"ultralytics",
"supervision",
]
mediapipe_vision = [
"mediapipe==0.10.14",
]
all_vision = [
"torch>=2.1",
"transformers>=5.0.0rc2",
"num2words",
"ultralytics",
"supervision",
"mediapipe==0.10.14",
]
cascade = ["sounddevice>=0.4.6", "librosa>=0.10.0", "pyyaml>=6.0"]
cascade_silero_vad = ["torch>=2.0", "torchaudio>=2.0"]
cascade_parakeet = ["parakeet-mlx>=0.4.0", "ffmpeg-python>=0.2.0"]
cascade_parakeet_progressive = ["mlx-audio>=0.3.1"]
cascade_voxtral_mlx = ["mlx-audio>=0.3.1"]
cascade_nemotron = ["nemo_toolkit[asr]>=2.0"]
cascade_kokoro = ["kokoro>=0.9.4"]
cascade_elevenlabs = ["elevenlabs>=1.0.0"]
cascade_gemini = ["google-genai>=0.6.0"]
cascade_deepgram = ["deepgram-sdk>=3.0.0,<4.0.0"]
cascade_gradium = ["gradium>=0.5.4; python_version>='3.12'"]
cascade_gliner = ["gliner>=0.2.0"]
cascade_all = [
"lyon-chatbox[cascade]",
"lyon-chatbox[cascade_silero_vad]",
"lyon-chatbox[cascade_parakeet]",
"lyon-chatbox[cascade_parakeet_progressive]",
"lyon-chatbox[cascade_voxtral_mlx]",
"lyon-chatbox[cascade_nemotron]",
"lyon-chatbox[cascade_kokoro]",
"lyon-chatbox[cascade_elevenlabs]",
"lyon-chatbox[cascade_gemini]",
"lyon-chatbox[cascade_deepgram]"
]
# Note: cascade_gradium excluded from cascade_all because gradium requires Python >=3.12
[dependency-groups]
dev = [
"pytest",
"pytest-asyncio",
"ruff==0.12.0",
"mypy==1.18.2",
"pre-commit",
"types-requests",
"types-PyYAML",
"python-semantic-release>=10.5.3",
]
[project.scripts]
lyon-chatbox = "lyon_chatbox.main:main"
[project.entry-points."reachy_mini_apps"]
lyon_chatbox = "lyon_chatbox.main:LyonChatboxApp"
[tool.uv]
dependency-metadata = [
# Upstream metadata currently marks `gstreamer-msvc-runtime` as unconditional.
# It should only be required on Windows.
{ name = "gstreamer-libs", version = "1.28.1", requires-dist = ["gstreamer-msvc-runtime; sys_platform == 'win32'", "setuptools"] },
]
required-environments = [
"sys_platform == 'darwin'",
"sys_platform == 'linux'",
]
[tool.setuptools]
package-dir = { "" = "src" }
include-package-data = true
[tool.setuptools.packages.find]
where = ["src"]
[tool.setuptools.package-data]
lyon_chatbox = [
"images/*",
"static/*",
".env.example",
"demos/**/*.txt",
"prompts_library/*.txt",
"profiles/**/*.txt",
"prompts/**/*.txt",
]
[tool.ruff]
line-length = 119
exclude = [".venv", "dist", "build", "**/__pycache__", "*.egg-info", ".mypy_cache", ".pytest_cache"]
[tool.ruff.lint]
select = [
"E", # pycodestyle errors
"F", # pyflakes
"W", # pycodestyle warnings
"I", # isort
"C4", # flake8-comprehensions
"D", # pydocstyle
]
ignore = [
"E501", # handled by formatter
"D100", # ignore missing module docstrings
"D203", # blank line before class docstring (conflicts with D211)
"D213", # summary on second line (conflicts with D212)
]
[tool.ruff.lint.isort]
length-sort = true
lines-after-imports = 2
no-lines-before = ["standard-library", "local-folder"]
known-local-folder = ["lyon_chatbox"]
known-first-party = ["reachy_mini", "reachy_mini_dances_library", "reachy_mini_toolbox"]
split-on-trailing-comma = true
[tool.ruff.format]
quote-style = "double"
indent-style = "space"
skip-magic-trailing-comma = false
line-ending = "auto"
[tool.mypy]
python_version = "3.12"
files = ["src/"]
ignore_missing_imports = true
strict = true
show_error_codes = true
warn_unused_ignores = true
[[tool.mypy.overrides]]
module = [
"tests.*",
"tests.audio.*",
"tests.cascade.*",
"tests.tools.*",
"tests.vision.*",
"tests.rmscript_adapters.*",
]
disallow_untyped_defs = false
disallow_incomplete_defs = false
disallow_untyped_calls = false
disallow_any_generics = false
warn_unused_ignores = false