deps: sync requirements files and add missing termcolor dependency#145
Merged
Conversation
…mcolor - Add termcolor>=3.3.0 to pyproject.toml [project.dependencies] and requirements.txt — it was used in ui.py but undeclared, making it invisible to pip install - Raise aiohttp floor in requirements.txt to >=3.13.4 (matches pyproject.toml) - Sync all version floors in requirements-dev.txt with pyproject.toml (pytest, pytest-asyncio, pytest-mock, black, ruff, mypy, types-PyYAML, bandit, pip-audit, build, wheel, twine were all behind) - Clean up requirements-py313.txt: sync version floors, mark optional deps (fuzzywuzzy, rapidfuzz) with comments, update date stamp Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Contributor
Reviewer's guide (collapsed on small PRs)Reviewer's GuideAligns declared dependencies across pyproject and requirements files and adds the missing runtime dependency on termcolor used by the UI module. Flow diagram for installation and termcolor import resolutionflowchart TD
A["User runs: pip install macversiontracker"] --> B["pip reads pyproject.toml metadata"]
B --> C["Dependency resolver selects runtime dependencies\nincluding termcolor>=3.3.0"]
C --> D["pip installs macversiontracker and termcolor"]
D --> E["User runs versiontracker UI"]
E --> F["versiontracker/ui.py executes"]
F --> G["Import termcolor succeeds because it is installed"]
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
Contributor
There was a problem hiding this comment.
Hey - I've left some high level feedback:
- Since
termcoloris used with a graceful fallback, consider documenting or implementing it as an optional extra (e.g., auiorcolorextra inpyproject.toml) if you want to keep the core dependency set minimal while still supporting the enhanced output. - Now that
requirements*.txtare synced withpyproject.toml, you might want to add a short comment or helper script indicating thatpyproject.tomlis the single source of truth and that the requirements files are generated from it, to reduce the risk of them diverging again.
Prompt for AI Agents
Please address the comments from this code review:
## Overall Comments
- Since `termcolor` is used with a graceful fallback, consider documenting or implementing it as an optional extra (e.g., a `ui` or `color` extra in `pyproject.toml`) if you want to keep the core dependency set minimal while still supporting the enhanced output.
- Now that `requirements*.txt` are synced with `pyproject.toml`, you might want to add a short comment or helper script indicating that `pyproject.toml` is the single source of truth and that the requirements files are generated from it, to reduce the risk of them diverging again.Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
🔒 Security Analysis ReportSecurity Analysis ReportGenerated: Mon May 4 11:22:26 UTC 2026 Bandit Security ScanSafety Check ResultsPip-Audit Results |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
…al types The fallback implementations used `str | None` for color/on_color params, but termcolor's stubs define them as `str | tuple[int, int, int] | None`. Once termcolor is a declared dependency CI resolves its stubs and mypy flags the mismatch. Also convert smart_progress from PEP 695 generic syntax to classic TypeVar: pydocstyle 6.3.0 cannot parse the `[T]` form and reports a spurious D103. Add noqa: UP047 on the def line to silence ruff's conflicting UP047 rule. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
🔒 Security Analysis ReportSecurity Analysis ReportGenerated: Mon May 4 12:20:37 UTC 2026 Bandit Security ScanSafety Check ResultsPip-Audit Results |
2 tasks
docdyhr
added a commit
that referenced
this pull request
May 4, 2026
…#146) - Add [Unreleased] entries for termcolor dep declaration, requirements sync, type signature fixes, and smart_progress generic syntax fix - Update TODO current status: May 2026, v1.0.1, 2338 tests, add PR #145 to recent completions, correct last-updated date Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
docdyhr
added a commit
that referenced
this pull request
May 4, 2026
…, enhanced matching (#147) * docs: update CHANGELOG and TODO for PR #145 and current project state - Add [Unreleased] entries for termcolor dep declaration, requirements sync, type signature fixes, and smart_progress generic syntax fix - Update TODO current status: May 2026, v1.0.1, 2338 tests, add PR #145 to recent completions, correct last-updated date Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * test: coverage push — __init__ lazy imports, config error paths, enhanced matching Adds 47 new tests across three files, lifting overall coverage from ~78% to 86.23% (past the 85% target): - tests/test_module_lazy_imports.py: exercises all __getattr__ branches in versiontracker/__init__.py including get_applications, get_homebrew_casks, Config, get_config, VersionTrackerError, and the AttributeError fallback - tests/test_enhanced_matching_coverage.py: covers Jaccard-boost logic (both subset directions), the SequenceMatcher fallback path when no fuzzy library is available (incl. space-collapse branch), and explain_match fuzz score population (ratio, partial_ratio, token_sort_ratio, token_set_ratio) - tests/test_config_gaps.py: covers ConfigValidator non-numeric percentage and non-dict section validation, load_from_file YAML/OSError/validation error paths, env-var loading edge cases, _handle_validation_errors filtering, Config.set() dot-notation and validation-failure paths, get_blacklist() de-duplication with both keys present, setup_logging(), set_global_config() Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
docdyhr
added a commit
that referenced
this pull request
May 20, 2026
* docs: update CHANGELOG and TODO for PR #145 and current project state - Add [Unreleased] entries for termcolor dep declaration, requirements sync, type signature fixes, and smart_progress generic syntax fix - Update TODO current status: May 2026, v1.0.1, 2338 tests, add PR #145 to recent completions, correct last-updated date Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * chore: ignore .claude/ directory Claude Code stores local plugin/session config in .claude/ which is machine-specific and should not be committed alongside .anthropic/. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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
termcolor>=3.3.0topyproject.tomlandrequirements.txt— it is used inversiontracker/ui.py(with a graceful fallback) but was not declared as a dependency, sopip install macversiontrackerwould not install itrequirements.txt: raiseaiohttpfloor from>=3.9.0to>=3.13.4to matchpyproject.tomlrequirements-dev.txt: all version floors now matchpyproject.toml(pytest,pytest-asyncio,pytest-mock,black,ruff,mypy,types-PyYAML,bandit,pip-audit,build,wheel,twinewere all behind)requirements-py313.txt: sync version floors withpyproject.toml, mark optional deps (fuzzywuzzy,rapidfuzz) with comments, update date stampTest plan
termcolorinstalled andversiontracker/ui.pyimports resolve correctly🤖 Generated with Claude Code
Summary by Sourcery
Declare missing termcolor dependency and align dependency version floors across requirements files with pyproject.toml.
New Features:
Enhancements: