soundscape_features takes a video, which is what this toolbox is for #318
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| env: | |
| FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true | |
| on: | |
| push: | |
| branches: | |
| - master | |
| pull_request: | |
| branches: | |
| - master | |
| jobs: | |
| test: | |
| name: "Python ${{ matrix.python-version }} on ${{ matrix.os }}" | |
| runs-on: ${{ matrix.os }} | |
| permissions: | |
| contents: read | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, macos-latest, windows-latest] | |
| python-version: ["3.10", "3.11", "3.12"] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install system dependencies on macOS | |
| if: runner.os == 'macOS' | |
| run: brew install ffmpeg | |
| - name: Install system dependencies on Ubuntu | |
| if: runner.os == 'Linux' | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y ffmpeg | |
| - name: Install system dependencies on Windows | |
| if: runner.os == 'Windows' | |
| run: choco install ffmpeg -y | |
| - name: Upgrade pip | |
| run: python -m pip install --upgrade pip | |
| - name: Install package and dependencies | |
| run: pip install -e ".[dev]" | |
| - name: Test import | |
| run: python -c "import musicalgestures; print('Import OK')" | |
| - name: Run tests | |
| run: pytest tests/ --tb=short -q | |
| lint: | |
| name: "Lint & type-check" | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: "3.12" | |
| - name: Install lint dependencies | |
| # Pinned. The error count mypy reports is strongly version-dependent: on the same code and | |
| # the same config, 1.20.1 reports 169 errors where 2.3.1 reports 90. An unpinned install | |
| # therefore lets a mypy release change this job's result with no change to the code, which | |
| # is intolerable once the step blocks merges. | |
| run: pip install "ruff==0.15.10" "mypy==2.3.1" | |
| - name: Ruff lint | |
| run: ruff check musicalgestures/ --ignore E501 --exit-zero | |
| - name: Ruff format check | |
| run: ruff format --check musicalgestures/ || true | |
| - name: Mypy type check | |
| # Blocking since 2026-08-23. The internal backlog that kept this advisory is gone: it ran | |
| # from 248 errors to zero over #350. Settings (follow_imports/exclude) come from | |
| # pyproject.toml, and the version is pinned above, because the count this reports moves | |
| # with the checker as well as with the code. | |
| run: mypy musicalgestures/ |