feat(hover): add track details preview on hover + fix all ruff violations

Implement comprehensive track information display on hover and resolve all
code quality issues to achieve complete ruff compliance.

MAJOR FEATURES:
- Track details preview on hover with rich metadata display
- Async BPM fetching with loading indicator
- Enhanced metadata utilities with fuzzy matching
- TIDAL API extras integration

FILES MODIFIED: 15+ files (core, UI, tests, docs)

RUFF COMPLIANCE: 0 errors (89+ violations resolved)
- Fixed E999 syntax error in metadata_utils.py
- Refactored 10+ complex functions (C901)
- Updated error handling (S110, S112, SIM105)
- Modernized type hints (UP038)
- Fixed naming conflicts (A001, F811)

BUG FIXES:
- Added missing _on_update_cover() method (11 test failures)
- Fixed BPM display and async loading
- Improved thread safety

TESTING: 30 passed, 1 skipped
DOCUMENTATION: Windows PowerShell support, tox troubleshooting
This commit is contained in:
Warry
2025-11-29 12:10:06 +01:00
parent 28a6fe5a7d
commit d2c3e8ab8f
26 changed files with 4890 additions and 1626 deletions
+70 -12
View File
@@ -93,25 +93,51 @@ Now you can make your changes locally.
7. When you're done making changes, check that your changes pass the formatting tests.
```bash
make check
```
**On Linux/macOS:**
Now, validate that all unit tests are passing:
```bash
make check
```
```bash
make test
```
**On Windows PowerShell (equivalent commands):**
```powershell
poetry check --lock
poetry run pre-commit run -a
poetry run deptry .
```
8. Now, validate that all unit tests are passing:
**On Linux/macOS:**
```bash
make test
```
**On Windows PowerShell (equivalent):**
```powershell
poetry run pytest --doctest-modules
```
9. Before raising a pull request you should also run tox.
This will run the tests across different versions of Python:
```bash
tox
```
```bash
tox
```
This requires you to have multiple versions of python installed.
This step is also triggered in the CI/CD pipeline, so you could also choose to skip this step locally.
**Note:** This requires you to have multiple versions of Python installed.
This step is also triggered in the CI/CD pipeline, so you could also choose to skip this step locally.
**Windows users:** If `tox` fails with Git/dulwich errors (like `KeyError: b'HEAD'`), you can skip this step as the CI/CD pipeline will run it automatically when you create a pull request. Make sure you have committed your changes to Git before running tox:
```powershell
git add .
git commit -m "Your changes"
# Then try tox again, or skip it and rely on CI/CD
```
10. Commit your changes and push your branch to GitHub:
@@ -131,3 +157,35 @@ Before you submit a pull request, check that it meets these guidelines:
2. If the pull request adds functionality, the docs should be updated.
Put your new functionality into a function with a docstring, and add the feature to the list in `README.md`.
# Troubleshooting
## Windows-specific Issues
### Tox fails with UnicodeDecodeError or KeyError: b'HEAD'
This is a known issue on Windows when:
- The Git repository doesn't have a valid HEAD (no commits yet)
- There are encoding issues with Git output
**Solutions:**
1. Make sure you have at least one commit in your Git repository:
```powershell
git status # Check if you have uncommitted changes
git add .
git commit -m "Initial commit"
```
2. If the error persists, you can skip `tox` locally and rely on the CI/CD pipeline to run it when you create a pull request.
3. Alternatively, run the tests manually for your Python version:
```powershell
poetry run pytest --doctest-modules
```
### Make commands don't work on Windows
If you're on Windows and `make` is not available, use the PowerShell equivalent commands documented in steps 7 and 8 above, or install `make` for Windows (e.g., via Chocolatey: `choco install make`).