Repository navigation
Fix #20: single-provider install recipe + repair command for rtmlib's dual cv2 requirement - #21
Merged
Merged
Conversation
rtmlib declares both opencv-python and opencv-contrib-python, unpinned, with no marker paces can override — measured (see PR body) as a hard requirement in rtmlib's own metadata, so it cannot be fixed with a pyproject constraint without forking rtmlib. rtmlib only calls plain cv2 APIs, so [media]'s opencv-contrib-python already covers it: document the two-step install that keeps the closure single-provider, and have check_pose_requirements() name the repair command (not just the collision) when both providers are already present. Closes #20 Claude-Session: https://claude.ai/code/session_016W3RcNo6snhKTw44jP6QWb
…-version FFmpeg claim - README recipe now pins rtmlib>=0.0.16,<0.1 (matching paces' own floor/ceiling) and doesn't claim numpy among rtmlib's "other real deps" listed there. - check_pose_requirements()'s repair note now says the fix isn't sticky and points at the README recipe, matching the module docstring. - The GPL-on-macOS FFmpeg claim is scoped to the versions actually measured (4.12.0.88 / 4.13.0.92); the 5.0.0.93 macOS x86_64 wheel ships no FFmpeg. Claude-Session: https://claude.ai/code/session_016W3RcNo6snhKTw44jP6QWb
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
opencv-pythonandopencv-contrib-pythonunconditionally (no marker), and its only cv2 usage is plain-API (VideoCapture,dnn.readNetFromONNX, drawing helpers — nothing contrib-only), confirmed by extracting the wheel and grepping its source.paces[media,pose]'s closure single-provider: pip/uv have no per-transitive-dependency exclusion for a requirement a third-party package declares unconditionally.--no-depsonrtmlibitself works (it only needsonnxruntime/tqdmbeyond cv2, both easy to add back), but there's no way to express "exclude justopencv-python" as apyproject.tomlconstraint without forking rtmlib.check_pose_requirements()now names the repair command (not just the collision) when both providers are already present, with a test that forces that branch deterministically viamonkeypatch(doesn't depend on the local environment's actual installed set).Measurement (read-only, commands used)
Confirmed: both
opencv-pythonandopencv-contrib-pythonlistcv2/__init__.pyin their RECORD, so whichever installs last wins and uninstalling either can leave the survivor'scv2with missing files — exactly the failurecheck_pose_requirements()now names a repair for.Test plan
pytest tests/test_pose.py -q— 32 passed, 1 skippedpytest -q(full suite) — 218 passed, 1 skippedruff check paces/pose.py tests/test_pose.py— cleanmonkeypatchonimportlib.metadata.version, independent of what's actually installed locallyCloses #20
https://claude.ai/code/session_016W3RcNo6snhKTw44jP6QWb