- This project uses
uv,pyproject.tomland venv to manage dependencies - Never use pip directly, use
uv addto add dependencies anduv sync --dev --all-packagesto install the dependency - Do not change code generated python code,
./generate.shis the script responsible of rebuilding all API endpoints and API models - WebRTC Dependencies: All dependencies related to WebRTC, audio, video processing (like
aiortc,numpy,torch,torchaudio,soundfile,scipy,deepgram-sdk,elevenlabs, etc.) are organized under thewebrtcoptional dependencies group. Plugins that work with audio, video, or WebRTC functionality should depend ongetstream[webrtc]instead of justgetstream.
- pytest is used for testing
- use
uv run pytestto run tests - pytest preferences are stored in pytest.ini
- fixtures are used to inject objects in tests
- test using the Stream API client can use the fixture
- .env is used to load credentials, the client fixture will load credentials from there
- keep tests well organized and use test classes for similar tests
- tests that rely on file assets should always rely on files inside the
tests/assets/folder, new files should be added there and existing ones used if possible. Do not use files larger than 256 kilobytes. - do not use mocks or mock things in general unless you are asked to do that directly
- always run tests using
uv run pytestfrom the root of the project, dont cd into folders to run tests