-
Notifications
You must be signed in to change notification settings - Fork 22
bump setup-uv #208
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
bump setup-uv #208
Conversation
PR Reviewer Guide 🔍Here are some key observations to aid the review process:
|
PR Code Suggestions ✨Explore these optional code suggestions:
|
…127% in PR #208 (`bump-gha-uv-version`) Here's an optimized version of your program with reduced runtime, specifically targeting the bottlenecks. ### **Optimizations performed:** 1. **Constant Folding:** The sys.version_info fetch and string formatting for the Python version is only necessary for the non-UV case and does not need to be constructed unless used. 2. **Precomputed Templates:** The output strings are constants and can be stored as such, to avoid reconstructing them on each call. 3. **Avoid Unnecessary Formatting:** For the setup-python path, the version string is constant across invocations of the same interpreter, so can use lazy-static initialization. 4. **Reduced Function Overhead:** Restructured code to minimize code execution paths and avoid unnecessary work. --- --- **Summary of changes:** - Only creates formatted strings once per interpreter lifetime, so on repeated heavy calls, time and allocations are minimized. - `sys.version_info` is not re-accessed on every call. - Preserved all logical comments; comments were added only where code was optimized. This rewrite should significantly improve per-call performance of `get_dependency_manager_installation_string()`.
⚡️ Codeflash found optimizations for this PR📄 127% (1.27x) speedup for
|
…139% in PR #208 (`bump-gha-uv-version`) Here is an optimized version of your program. The main optimizations are. - Avoid repeated formatting of `python_version_string` by computing it once at module load time; the Python version doesn't change during runtime. - Move the string templates out of the function, so they are created just once. - Remove unnecessary usage of triple-quoted strings for templated outputs since there is no variable interpolation except one case. - Inline the conditional return for a slightly reduced call stack. - Use identity comparison `is` for Enum comparison (assuming `DependencyManager` is an `Enum`), which can be marginally faster. **Optimized Code:** **What changed and why:** - Pre-calculating the version string (and Python setup string) at module load time removes a significant amount of redundant per-call formatting (was hot in profiling!). - This also means `sys.version_info` is only accessed once. - Enum comparison is done with `is` which is the idiomatic and fastest way for Enums. - Templates are immediately ready, so nothing is constructed inside the function anymore; this yields maximum speedup for such a hot function; now it's a simple if/return. This completely eliminates *all* expensive operations from the hot path of `get_dependency_manager_installation_string`.
⚡️ Codeflash found optimizations for this PR📄 139% (1.39x) speedup for
|
PR Type
Enhancement, Documentation
Description
Bump setup-uv action version to v6
Update docs with setup-uv@v6 reference
Refactor list and call formatting
Insert blank lines for readability
Changes walkthrough 📝
cmd_init.py
Upgrade setup-uv to v6 and refactor code formattingcodeflash/cli_cmds/cmd_init.py
astral-sh/setup-uvto v6ignore_subdirslist to multiline formatcodeflash-github-actions.md
Update setup-uv version in docsdocs/docs/getting-started/codeflash-github-actions.md
astral-sh/setup-uv@v6