⚡️ Speed up function parse_req_python_version
by 8% in src/black/files.py
#48
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.
📄
parse_req_python_version
insrc/black/files.py
✨ Performance Summary:
8%
(0.08x
faster)253 microseconds
down to235 microseconds
(best of108
runs)📝 Explanation and details
Here's a potential optimized version of your Python program. I've made a few adjustments to the original code to improve its performance.
Enum
class members by using a more concise range definition.pretty
method to leverage string manipulation better.parse_req_python_version
function to avoid unnecessary exceptions.Key changes.
pretty
method now checks the length of thename
once, rather than slicing it twice.parse_req_python_version
function now directly checks whether themajor
version is 3 and whether there are at least two elements inrelease
to preventIndexError
. It also uses simpler logic for version range checks.The logic remains unchanged, ensuring the same output while potentially improving performance.
✅ Correctness verification
The new optimized code was tested for correctness. The results are listed below:
🌀 Generated Regression Tests Details
Click to view details
📣 **Feedback**
If you have any feedback or need assistance, feel free to join our Discord community: