Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR modernizes
seewavby adding continuous-integration, full type-hints, stricter unit-testing and a clearer, more ergonomic CLI/API.✨ Key Features & Improvements
GitHub Actions CI
pytest-cov; uploads an XML coverage artefact100% Type-annotated Public API
seewav.pynow have explicit PEP-484 annotationstests/test_signatures.py) fails the build if a public function lacks annotationsUnified Size Handling
--size WxHCLI flag (e.g.--size 640x360)-W/--widthand-H/--heightremain with defaults (480 × 300);--sizeoverrides themsize=(w, h)tupleRobust Argument Validation
seewav.parse_size_tokenhelpertests/test_arguments.py) checks:parse_size_token– valid & invalid pathsparse_color– valid & invalid RGB stringsread_audio– fails gracefully on non-audio filesvisualize– detects channel/--stereomismatchesDocumentation Updates
size=(640, 360)🛠️ Implementation Notes
.github/workflows/ci.ymlnumpy,tqdm,pytest,pytest-cov) and optionalffmpegparse_size_token(token: str) -> tuple[int, int]fatal().coveragercexcludes tests/venv;--cov-report=term-missing --cov-report=xmlin CI🔍 How to Review
seewav.pypytest -vvlocally; 27 tests including argument-validation and meta type-checking should passThis PR brings the project up to date with modern Python best-practices, increases test coverage, and lays the groundwork for future features with confidence in correctness.
Co-author: OpenAI o3 model via Codex CLI