File size: 2,809 Bytes
3131859
 
 
 
 
5615597
3131859
 
 
 
d2e69a3
13e3fd7
20be2a5
8383ea5
42bded7
0c3901b
8383ea5
77a9cb2
20be2a5
 
8383ea5
20be2a5
 
 
 
4f57a60
54beb05
 
87212d4
6502183
13e3fd7
3131859
20be2a5
8dd4ae4
a3313a8
 
8dd4ae4
1e8487f
20be2a5
 
 
07cc5a9
 
 
20be2a5
3131859
8383ea5
4f57a60
 
eb81a39
4f57a60
1d51ba6
eb81a39
 
4f57a60
3131859
20be2a5
c51b4e7
20be2a5
bfbe08d
8b59975
bfbe08d
3131859
 
 
 
 
 
 
 
c5fca91
 
 
 
6246408
 
c5fca91
3131859
 
8383ea5
 
 
 
 
 
 
 
 
 
 
3131859
8383ea5
 
51f6aa1
8383ea5
 
 
 
 
 
 
 
5615597
8383ea5
 
 
 
 
 
 
0e5fc3d
4f57a60
 
 
 
 
1d51ba6
62d8867
 
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
112
113
114
115
116
117
118
119
120
[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"

[project]
name = "reachy_mini_conversation_app"
version = "0.1.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>=0.34.4",
    "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.1.3",
    "eclipse-zenoh~=1.7.0",
]

[project.optional-dependencies]
reachy_mini_wireless = [
  "PyGObject>=3.42.2,<=3.46.0", 
  "gst-signalling>=1.1.2",
]
local_vision = ["torch", "transformers", "num2words"]
yolo_vision = ["ultralytics", "supervision"]
mediapipe_vision = ["mediapipe>=0.10.14"]
all_vision = [
  "torch", "transformers", "num2words",
  "ultralytics", "supervision",
  "mediapipe>=0.10.14",
]

[dependency-groups]
dev = [
  "pytest",
  "pytest-asyncio",
  "ruff==0.12.0",
  "mypy==1.18.2",
  "pre-commit",
  "types-requests",
]

[project.scripts]
reachy-mini-conversation-app = "reachy_mini_conversation_app.main:main"

[project.entry-points."reachy_mini_apps"]
reachy_mini_conversation_app = "reachy_mini_conversation_app.main:ReachyMiniConversationApp"

[tool.setuptools]
package-dir = { "" = "src" }
include-package-data = true

[tool.setuptools.packages.find]
where = ["src"]

[tool.setuptools.package-data]
reachy_mini_conversation_app = [
  "images/*",
  "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 = ["reachy_mini_conversation_app"]
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