This page aims to explain Song Match’s dependencies and why we need them.

All project dependencies are listed in requirements.txt in the repo.


Transitive dependencies (dependencies of dependencies) are also listed in this file.

This document will go over only primary dependencies.


The first dependency is the Cozmo SDK.

You can find more information on their documentation.

Package names:

  • cozmo


PyGame is used for playing audio.

We initialize PyGame’s mixer module in init_mixer() by calling pygame.mixer.init().

Two classes use the pygame.mixer.Sound object.

  1. Note
  2. Effect

Package names:

  • pygame

Unit Tests and Coverage Reports

For running unit tests and generating coverage reports we use pytest, pytest-cov, coverage and coveralls.

Package names:

  • pytest
  • pytest-cov
  • coverage
  • coveralls


We use Sphinx to generate our documentation along with a number of other packages.

Package names:

We also use Graphviz to generate inheritance diagrams. You can download Graphviz here.

The rest of the packages found in requirements.txt are transitive dependencies.