Skip to content

Commit 4de68c4

Browse files
authored
Merge pull request #3 from twardoch/feature/modernize-codebase-p1
Refactor scanners, add typed models, improve paths, and setup testing…
2 parents 5c0dd1f + 1c391f7 commit 4de68c4

22 files changed

Lines changed: 3238 additions & 334 deletions

.github/workflows/ci.yml

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,18 @@ jobs:
2222
- name: Install dependencies
2323
run: |
2424
python -m pip install --upgrade pip
25-
pip install fire pytest
26-
- name: Run tests
25+
pip install fire pytest pytest-cov # Added pytest-cov for coverage
26+
- name: Run tests with coverage
2727
run: |
2828
python -m pip install -e .
29+
# Pytest is configured in pyproject.toml to run with --cov
30+
# and output to term-missing. It also creates .coverage file.
31+
pytest
32+
- name: Upload coverage to Codecov
33+
uses: codecov/codecov-action@v3
34+
with:
35+
# token: ${{ secrets.CODECOV_TOKEN }} # Only if needed for private repos or specific cases
36+
fail_ci_if_error: true # Optional: fail CI if coverage upload fails
2937

3038
publish:
3139
needs: build-and-test

.pre-commit-config.yaml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,28 @@ repos:
6060
## You can add flake8 plugins via `additional_dependencies`:
6161
# additional_dependencies: [flake8-bugbear]
6262

63+
- repo: https://github.com/pre-commit/mirrors-mypy
64+
rev: v1.7.0 # Or choose the latest version
65+
hooks:
66+
- id: mypy
67+
# You might need to specify `additional_dependencies` for mypy to find your project's dependencies
68+
# e.g., additional_dependencies: [types-setuptools, types-requests]
69+
# For this project:
70+
additional_dependencies: [
71+
types-setuptools, # For pkg_resources, etc.
72+
# Add stubs for other dependencies if mypy complains and they exist
73+
# types-fire, types-tqdm, types-python-benedict might not exist or be mature.
74+
# For now, we'll rely on inline # type: ignore for problematic libs
75+
# and the mypy config in pyproject.toml for global settings.
76+
"pedalboard", # To make mypy aware of pedalboard, even if it has no stubs
77+
"fire",
78+
"tqdm",
79+
"python-benedict"
80+
]
81+
# It's good practice to also configure mypy via pyproject.toml or mypy.ini
82+
# For example, to specify the Python version, follow imports, etc.
83+
args: [--config-file=pyproject.toml] # Point to pyproject.toml for config
84+
6385
## Check for misspells in documentation files:
6486
# - repo: https://github.com/codespell-project/codespell
6587
# rev: v2.2.5

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Pedalboard Pluginary
22

3+
[![Codecov](https://codecov.io/gh/twardoch/pedalboard-pluginary/branch/main/graph/badge.svg?token=YOUR_CODECOV_TOKEN_HERE)](https://codecov.io/gh/twardoch/pedalboard-pluginary)
4+
<!-- Replace YOUR_CODECOV_TOKEN_HERE with the actual token from Codecov if needed, or remove the token part if your repo is public and Codecov supports tokenless uploads for it.
5+
The URL should also be verified once the repo is active on Codecov. -->
6+
37
_Pedalboard Pluginary_ is an independent Python-based package and command-line tool that scans and lists VST-3 plugins on macOS and Windows, and Audio Unit (AU) plugins on macOS. It’s intended as a companion for the _[Pedalboard](https://github.com/spotify/pedalboard)_ Python library by Spotify, but it’s not affiliated with _Pedalboard_ or Spotify.
48

59
## Features

0 commit comments

Comments
 (0)