feat(finders): add PyPICacheProvider for cache server lookups#1143
Conversation
|
Warning Rate limit exceeded
You’ve run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (4)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Add a dedicated PyPICacheProvider that wraps PyPIProvider with a simplified interface for Fromager's local PyPI-compatible cache server. This makes it explicit that packages are coming from a cache server rather than an upstream index, and eliminates cache-irrelevant options like ignore_platform, override_download_url, cooldown, and supports_upload_time. The provider enforces that include_wheels and include_sdists are mutually exclusive and defaults to wheels only. Use PyPICacheProvider in _download_wheel_from_cache to replace the direct PyPIProvider instantiation. Co-Authored-By: Claude <claude@anthropic.com> Signed-off-by: Christian Heimes <cheimes@redhat.com>
fbc2cf7 to
e2ed294
Compare
Use PyPICacheProvider (introduced in #1143) for local and cache wheel server lookups in the build and download-sequence paths. This separates trusted internal sources (no cooldown, no upload-time checks) from upstream pre-built sources. - Add resolve_cached_wheel() using PyPICacheProvider - Add resolve_existing_wheel() to probe cache servers first, then pre-built servers, preserving the per-package server exclusivity - Restructure _is_wheel_built() to use resolve_existing_wheel() - Route download_sequence local server through resolve_cached_wheel - Remove supports_upload_time workaround from resolve_all_prebuilt_wheels - Add tests for cache/local cooldown bypass and upstream cooldown retention Follows up on #1143 Co-Authored-By: Claude <claude@anthropic.com> Signed-off-by: Shanmukh Pawan <smoparth@redhat.com>
Use PyPICacheProvider (introduced in #1143) for local and cache wheel server lookups in the build and download-sequence paths. This separates trusted internal sources (no cooldown, no upload-time checks) from upstream pre-built sources. - Add resolve_cached_wheel() using PyPICacheProvider - Add resolve_existing_wheel() to probe cache servers first, then pre-built servers, preserving the per-package server exclusivity - Restructure _is_wheel_built() to use resolve_existing_wheel() - Route download_sequence local server through resolve_cached_wheel - Remove supports_upload_time workaround from resolve_all_prebuilt_wheels - Add tests for cache/local cooldown bypass and upstream cooldown retention Follows up on #1143 Co-Authored-By: Claude <claude@anthropic.com> Signed-off-by: Shanmukh Pawan <smoparth@redhat.com>
Use PyPICacheProvider (introduced in #1143) for local and cache wheel server lookups in the build and download-sequence paths. This separates trusted internal sources (no cooldown, no upload-time checks) from upstream pre-built sources. - Add resolve_cached_wheel() using PyPICacheProvider - Add resolve_existing_wheel() to probe cache servers first, then pre-built servers, preserving the per-package server exclusivity - Restructure _is_wheel_built() to use resolve_existing_wheel() - Route download_sequence local server through resolve_cached_wheel - Remove supports_upload_time workaround from resolve_all_prebuilt_wheels - Add tests for cache/local cooldown bypass and upstream cooldown retention Follows up on #1143 Co-Authored-By: Claude <claude@anthropic.com> Signed-off-by: Shanmukh Pawan <smoparth@redhat.com>
Use PyPICacheProvider (introduced in #1143) for local and cache wheel server lookups in the build and download-sequence paths. This separates trusted internal sources (no cooldown, no upload-time checks) from upstream pre-built sources. - Add resolve_cached_wheel() using PyPICacheProvider - Add resolve_existing_wheel() to probe cache servers first, then pre-built servers, preserving the per-package server exclusivity - Restructure _is_wheel_built() to use resolve_existing_wheel() - Route download_sequence local server through resolve_cached_wheel - Remove supports_upload_time workaround from resolve_all_prebuilt_wheels - Add tests for cache/local cooldown bypass and upstream cooldown retention Follows up on #1143 Co-Authored-By: Claude <claude@anthropic.com> Signed-off-by: Shanmukh Pawan <smoparth@redhat.com>
Use PyPICacheProvider (introduced in #1143) for local and cache wheel server lookups in the build and download-sequence paths. This separates trusted internal sources (no cooldown, no upload-time checks) from upstream pre-built sources. - Add resolve_cached_wheel() using PyPICacheProvider - Add resolve_existing_wheel() to probe cache servers first, then pre-built servers, preserving the per-package server exclusivity - Restructure _is_wheel_built() to use resolve_existing_wheel() - Route download_sequence local server through resolve_cached_wheel - Remove supports_upload_time workaround from resolve_all_prebuilt_wheels - Add tests for cache/local cooldown bypass and upstream cooldown retention Follows up on #1143 Co-Authored-By: Claude <claude@anthropic.com> Signed-off-by: Shanmukh Pawan <smoparth@redhat.com>
Use PyPICacheProvider (introduced in #1143) for local and cache wheel server lookups in the build and download-sequence paths. This separates trusted internal sources (no cooldown, no upload-time checks) from upstream pre-built sources. - Add resolve_cached_wheel() using PyPICacheProvider - Simplify _is_wheel_built() to only check cache servers (local + cache_wheel_server) via resolve_cached_wheel - Route download_sequence local server through resolve_cached_wheel - Remove supports_upload_time workaround from resolve_all_prebuilt_wheels - Add tests for cache/local cooldown bypass and upstream cooldown retention Follows up on #1143 and addresses maintainer feedback from #1141. Co-Authored-By: Claude <claude@anthropic.com> Signed-off-by: Shanmukh Pawan <smoparth@redhat.com>
Use PyPICacheProvider (introduced in #1143) for local and cache wheel server lookups in the build and download-sequence paths. This separates trusted internal sources (no cooldown, no upload-time checks) from upstream pre-built sources. - Add resolve_cached_wheel() using PyPICacheProvider - Simplify _is_wheel_built() to only check cache servers (local + cache_wheel_server) via resolve_cached_wheel - Route download_sequence local server through resolve_cached_wheel - Remove supports_upload_time workaround from resolve_all_prebuilt_wheels - Add tests for cache/local cooldown bypass and upstream cooldown retention Follows up on #1143 and closes #1140. Co-Authored-By: Claude <claude@anthropic.com> Signed-off-by: Shanmukh Pawan <smoparth@redhat.com>
Pull Request Description
What
Add a dedicated PyPICacheProvider that wraps PyPIProvider with a simplified interface for Fromager's local PyPI-compatible cache server. This makes it explicit that packages are coming from a cache server rather than an upstream index, and eliminates cache-irrelevant options like ignore_platform, override_download_url, cooldown, and supports_upload_time.
The provider enforces that include_wheels and include_sdists are mutually exclusive and defaults to wheels only.
Use PyPICacheProvider in _download_wheel_from_cache to replace the direct PyPIProvider instantiation.
Why
Avoid confusion between pre-built, upstream PyPI and internal cache indexes.