⚡️ Speed up function extract_packages_from_pip_install_suggestion by 36%
#592
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.
📄 36% (0.36x) speedup for
extract_packages_from_pip_install_suggestioninmarimo/_runtime/packages/import_error_extractors.py⏱️ Runtime :
817 microseconds→602 microseconds(best of161runs)📝 Explanation and details
The optimization achieves a 35% speedup by precompiling all regular expressions at module load time instead of compiling them on every function call.
Key changes:
quoted_patterns,individual_quoted_pattern, andunquoted_patternare now compiled once as module-level constants (_quoted_patterns,_individual_quoted_pattern,_unquoted_pattern) withre.IGNORECASEflags baked in.re.search(pattern, message, re.IGNORECASE), the code now callspattern.search(message)on precompiled pattern objects.Why this is faster:
In Python,
re.search()with a string pattern must compile the regex every time it's called. The line profiler shows the original code spent significant time in regex compilation (25.6% + 6.2% + 16.3% = 48.1% of total time on the threere.search()calls). Precompiled patterns eliminate this overhead entirely, as regex compilation happens only once at import time.Performance impact:
The optimization is most effective for:
test_no_pip_install_presentat 168% faster)The optimization preserves all functionality while providing consistent performance gains across all test scenarios, making it particularly valuable if this function is called frequently during import error handling.
✅ Correctness verification report:
⚙️ Existing Unit Tests and Runtime
_runtime/packages/test_import_error_extractors.py::test_extract_packages_from_pip_install_suggestion🌀 Generated Regression Tests and Runtime
import random # used for generating large test cases
function to test
(copied from above)
import re
import string # used for generating large test cases
imports
import pytest # used for our unit tests
from marimo._runtime.packages.import_error_extractors import
extract_packages_from_pip_install_suggestion
unit tests
1. Basic Test Cases
def test_backtick_quoted_command_single_package():
# Should extract single package from backticked pip install
msg = "Try running
pip install footo install the missing package."codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 4.95μs -> 3.54μs (40.1% faster)
def test_backtick_quoted_command_multiple_packages():
# Should extract multiple packages from backticked pip install
msg = "Try running
pip install foo barto install the missing packages."codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 5.40μs -> 4.02μs (34.3% faster)
def test_double_quoted_command_single_package():
# Should extract single package from double-quoted pip install
msg = 'Try running "pip install foo" to install the missing package.'
codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 5.74μs -> 3.62μs (58.4% faster)
def test_double_quoted_command_multiple_packages_with_flags():
# Should extract multiple packages and skip flags
msg = 'Try running "pip install --upgrade foo bar" to install the missing packages.'
codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 6.54μs -> 4.45μs (47.1% faster)
def test_single_quoted_command_multiple_packages_with_flags_and_duplicates():
# Should extract multiple packages, skip flags, and ignore duplicates
msg = "Try running 'pip install foo bar --upgrade foo' to install the missing packages."
codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 7.33μs -> 4.84μs (51.6% faster)
def test_quoted_command_with_extras():
# Should extract package with extras
msg = "Try running
pip install foo[extra1,extra2]to install the missing package."codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 5.00μs -> 3.46μs (44.7% faster)
def test_quoted_command_with_quoted_package():
# Should strip quotes from package name
msg = 'Try running "pip install 'foo'" to install the missing package.'
codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 6.03μs -> 4.07μs (48.3% faster)
def test_quoted_command_with_mixed_quotes():
# Should handle package names quoted inside the command
msg = "
pip install \"foo\" 'bar'"codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 5.56μs -> 4.36μs (27.6% faster)
def test_individual_quoted_package():
# Should extract package from pip install "foo" (not command quoted)
msg = 'To fix, run: pip install "foo"'
codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 5.94μs -> 2.95μs (101% faster)
def test_unquoted_command_single_package():
# Should extract package from unquoted pip install
msg = "To fix, run: pip install foo"
codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 6.84μs -> 3.78μs (81.0% faster)
def test_unquoted_command_with_extras():
# Should extract package with extras from unquoted pip install
msg = "Try pip install foo[extra1,extra2]"
codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 7.11μs -> 3.75μs (89.8% faster)
def test_unquoted_command_multiple_packages_only_first():
# Should only extract the first package from unquoted pip install
msg = "Try pip install foo bar"
codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 6.55μs -> 3.29μs (99.1% faster)
def test_case_insensitivity():
# Should match pip install regardless of case
msg = "Try running 'PIP INSTALL foo'"
codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 6.41μs -> 4.15μs (54.3% faster)
2. Edge Test Cases
def test_no_pip_install_present():
# Should return None if no pip install is present
msg = "No suggestion here."
codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 4.97μs -> 1.85μs (168% faster)
def test_pip_install_with_only_flags():
# Should return None if only flags are present
msg = "Try
pip install --upgrade"codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 9.20μs -> 5.91μs (55.7% faster)
def test_pip_install_with_flag_before_package():
# Should skip flags before package
msg = "Try
pip install --upgrade foo"codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 5.50μs -> 4.09μs (34.6% faster)
def test_pip_install_with_flag_after_package():
# Should skip flags after package
msg = "Try
pip install foo --upgrade"codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 5.22μs -> 3.90μs (33.9% faster)
def test_pip_install_with_flag_between_packages():
# Should skip flags between packages
msg = "Try
pip install foo --upgrade bar"codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 5.74μs -> 4.22μs (36.0% faster)
def test_pip_install_with_duplicate_packages():
# Should only return each package once
msg = "Try
pip install foo foo bar bar"codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 6.02μs -> 4.54μs (32.5% faster)
def test_pip_install_with_package_with_dash_and_dot():
# Should handle packages with dashes and dots
msg = "Try
pip install foo-bar foo.bar"codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 5.30μs -> 3.85μs (37.8% faster)
def test_pip_install_with_package_with_underscore():
# Should handle packages with underscores
msg = "Try
pip install foo_bar"codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 4.70μs -> 3.36μs (40.0% faster)
def test_pip_install_with_version_specifier():
# Should treat version specifier as part of package name (since not handled)
msg = "Try
pip install foo==1.2.3"codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 4.92μs -> 3.35μs (46.8% faster)
def test_pip_install_with_extra_spaces():
# Should handle extra spaces between words
msg = "Try
pip install foo bar"codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 5.27μs -> 3.98μs (32.3% faster)
def test_pip_install_with_leading_and_trailing_spaces():
# Should handle leading/trailing spaces in the quoted command
msg = "Try
pip install foo bar"codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 5.32μs -> 3.91μs (36.0% faster)
def test_pip_install_with_newline_in_command():
# Should not match if pip install is split by newline in quoted command
msg = "Try
pip install\nfoo"codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 4.90μs -> 3.45μs (42.1% faster)
def test_pip_install_with_non_ascii_package():
# Should handle non-ascii package names (allowed by regex)
msg = "Try
pip install café"codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 5.30μs -> 3.94μs (34.7% faster)
def test_pip_install_with_brackets_in_package():
# Should handle brackets in package name (extras)
msg = "Try
pip install foo[extra]"codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 4.83μs -> 3.49μs (38.3% faster)
def test_pip_install_with_no_package_after_command():
# Should return None if no package is present after pip install
msg = "Try running
pip install"codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 6.13μs -> 2.68μs (129% faster)
def test_multiple_pip_install_commands_only_first_matches():
# Should only extract from the first matching quoted pattern
msg = "Try
pip install fooor 'pip install bar'"codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 5.01μs -> 3.54μs (41.7% faster)
def test_pip_install_with_comments_inside_command():
# Should treat comment as part of package name (since not handled)
msg = "Try
pip install foo # comment"codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 5.92μs -> 4.43μs (33.6% faster)
def test_pip_install_with_mixed_case_flags():
# Should skip flags regardless of case
msg = "Try
pip install --UPGRADE foo"codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 5.28μs -> 3.98μs (32.7% faster)
def test_pip_install_with_package_name_starting_with_dash():
# Should not treat as package (should skip)
msg = "Try
pip install -foo bar"codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 5.21μs -> 3.79μs (37.7% faster)
def test_pip_install_with_package_name_that_is_flag():
# Should not treat flags as packages
msg = "Try
pip install --foo --bar"codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 9.78μs -> 6.19μs (58.1% faster)
def test_pip_install_with_package_name_containing_space():
# Should treat as two packages (since split on space)
msg = "Try
pip install foo bar baz"codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 5.48μs -> 4.24μs (29.2% faster)
def test_pip_install_with_package_name_containing_quote():
# Should strip quotes from package name
msg = "Try
pip install 'foo' \"bar\""codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 5.65μs -> 4.25μs (32.9% faster)
def test_pip_install_with_package_name_containing_unicode():
# Should handle unicode package names
msg = "Try
pip install ünicode"codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 5.34μs -> 3.82μs (39.7% faster)
def test_pip_install_with_multiple_quoted_commands():
# Should extract from the first matching quoted pattern
msg = "Try
pip install fooand "pip install bar""codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 4.92μs -> 3.48μs (41.5% faster)
def test_pip_install_with_no_space_after_install():
# Should not match if no space after 'install'
msg = "Try
pip installfoo"codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 5.76μs -> 2.81μs (105% faster)
3. Large Scale Test Cases
def test_large_number_of_packages_in_quoted_command():
# Should handle large number of packages in a quoted command
pkgs = [f"pkg{i}" for i in range(100)]
msg = f"Try running
pip install {' '.join(pkgs)}"codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 31.6μs -> 30.4μs (3.88% faster)
def test_large_number_of_packages_with_flags_and_duplicates():
# Should skip flags and remove duplicates in large list
pkgs = [f"pkg{i}" for i in range(50)] * 2 # duplicates
flags = ["--upgrade", "-q", "--no-cache-dir"]
# Interleave flags randomly
args = []
for i, pkg in enumerate(pkgs):
args.append(pkg)
if i % 10 == 0:
args.append(random.choice(flags))
msg = f"Try running
pip install {' '.join(args)}"# Only unique pkgs, in order of first appearance
expected = []
seen = set()
for arg in args:
if not arg.startswith("-") and arg not in seen:
expected.append(arg)
seen.add(arg)
codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 27.0μs -> 25.3μs (6.74% faster)
def test_large_unquoted_command_only_first_package():
# Should only extract the first package from a large unquoted command
pkgs = [f"pkg{i}" for i in range(100)]
msg = f"Try pip install {' '.join(pkgs)}"
codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 11.7μs -> 8.21μs (42.8% faster)
def test_large_message_with_many_irrelevant_lines():
# Should still extract the correct package from a noisy message
pkgs = [f"pkg{i}" for i in range(10)]
noise = "\n".join(
f"This is a random line {i} with some text."
for i in range(200)
)
msg = f"{noise}\nTry running
pip install {' '.join(pkgs)}\n{noise}"codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 10.1μs -> 8.73μs (15.2% faster)
def test_large_message_with_multiple_pip_install_commands():
# Should extract from the first matching quoted pattern in a large message
pkgs1 = [f"pkgA{i}" for i in range(10)]
pkgs2 = [f"pkgB{i}" for i in range(10)]
msg = (
f"First:
pip install {' '.join(pkgs1)}\n"f"Second: 'pip install {' '.join(pkgs2)}'"
)
codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 7.54μs -> 6.04μs (24.7% faster)
def test_large_package_names():
# Should handle very long package names
long_pkg = "pkg_" + "".join(random.choices(string.ascii_letters + string.digits, k=200))
msg = f"Try running
pip install {long_pkg}"codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 5.24μs -> 3.66μs (43.3% faster)
def test_large_number_of_flags_and_packages():
# Should skip all flags and only extract packages
pkgs = [f"pkg{i}" for i in range(50)]
flags = ["--flagA", "--flagB", "-q"]
args = []
for i in range(50):
args.append(random.choice(flags))
args.append(pkgs[i])
msg = f"Try running
pip install {' '.join(args)}"codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 25.3μs -> 23.9μs (5.90% faster)
def test_large_number_of_packages_with_extras():
# Should extract all packages with extras
pkgs = [f"pkg{i}[extra1,extra2]" for i in range(50)]
msg = f"Try running
pip install {' '.join(pkgs)}"codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 17.9μs -> 16.9μs (5.92% faster)
codeflash_output is used to check that the output of the original code is the same as that of the optimized code.
#------------------------------------------------
from future import annotations
import re
imports
import pytest # used for our unit tests
from marimo._runtime.packages.import_error_extractors import
extract_packages_from_pip_install_suggestion
unit tests
----------- BASIC TEST CASES ------------
def test_basic_backtick_command_single_package():
# Single package in backtick command
msg = "Try running
pip install requeststo install the missing package."codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 4.80μs -> 3.48μs (38.0% faster)
def test_basic_double_quote_command_multiple_packages():
# Multiple packages in double-quoted command
msg = 'You can fix this by running "pip install numpy pandas scipy"'
codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 6.48μs -> 4.45μs (45.5% faster)
def test_basic_single_quote_command_with_flags():
# Command with flags, ensure flags are ignored
msg = "Please run 'pip install --upgrade pip setuptools wheel' to update."
codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 7.45μs -> 5.02μs (48.4% faster)
def test_basic_individual_quoted_package():
# pip install with quoted individual package
msg = 'Try pip install "matplotlib"'
codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 5.48μs -> 2.65μs (106% faster)
def test_basic_unquoted_package():
# pip install with unquoted package
msg = "Module not found. Please run: pip install flask"
codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 7.30μs -> 4.12μs (77.0% faster)
def test_basic_unquoted_package_with_extras():
# pip install with extras
msg = "Try pip install requests[security,socks]"
codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 7.06μs -> 3.83μs (84.2% faster)
def test_basic_case_insensitivity():
# pip install in different case
msg = "Try running
PIP INSTALL Pillow"codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 5.13μs -> 3.74μs (37.2% faster)
----------- EDGE TEST CASES ------------
def test_edge_no_pip_install_present():
# No pip install command in message
msg = "No suggestion here."
codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 4.87μs -> 1.80μs (170% faster)
def test_edge_pip_install_but_no_package():
# pip install but no package specified
msg = "Try running pip install"
codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 4.84μs -> 1.84μs (162% faster)
def test_edge_command_with_only_flags():
# pip install with only flags, no packages
msg = "Run
pip install --upgrade"codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 8.96μs -> 5.87μs (52.6% faster)
def test_edge_duplicate_packages():
# Duplicate package names should only be returned once
msg = 'Try "pip install pandas pandas numpy pandas"'
codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 6.89μs -> 4.96μs (38.9% faster)
def test_edge_package_with_hyphen_and_dot():
# Package names with hyphens and dots
msg = 'Try running "pip install my-package another.pkg"'
codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 6.08μs -> 4.21μs (44.5% faster)
def test_edge_package_with_extras_and_version():
# Package with extras and version specifier
msg = 'Try running
pip install "foo[extra1,extra2]==1.2.3"'codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 5.38μs -> 3.76μs (43.0% faster)
def test_edge_command_with_mixed_quotes():
# Command with mixed quotes (should not match)
msg = "Try running 'pip install "foo"'"
codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 6.76μs -> 4.25μs (59.2% faster)
def test_edge_multiple_pip_install_commands():
# Multiple pip install commands, should only extract from the first match
msg = (
"First, run
pip install alpha beta. Then, runpip install gamma.")
codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 5.50μs -> 4.08μs (34.9% faster)
def test_edge_pip_install_in_middle_of_text():
# pip install appears mid-sentence
msg = (
"If you get errors, pip install seaborn should help."
)
codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 7.29μs -> 4.05μs (80.2% faster)
def test_edge_pip_install_with_trailing_punctuation():
# pip install followed by punctuation
msg = "Missing? Try pip install pytest!"
codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 6.67μs -> 3.58μs (86.3% faster)
def test_edge_pip_install_with_quoted_flagged_package():
# pip install with quoted flag and package
msg = 'Try pip install "--upgrade" "pytest"'
codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 5.47μs -> 2.68μs (104% faster)
def test_edge_pip_install_with_non_ascii_package():
# Non-ASCII package name (should match valid ASCII subset)
msg = "Try pip install café"
codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 6.58μs -> 3.40μs (93.4% faster)
def test_edge_pip_install_with_tabs_and_newlines():
# pip install with tabs and newlines
msg = "Please run
pip install\tfoo\nbar"codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 5.61μs -> 4.20μs (33.4% faster)
def test_edge_pip_install_with_leading_and_trailing_spaces():
# pip install with extra spaces
msg = "Try running
pip install foo bar"codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 5.43μs -> 3.89μs (39.7% faster)
def test_edge_pip_install_with_colon():
# pip install after a colon
msg = "To install: pip install pytest"
codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 7.10μs -> 3.81μs (86.3% faster)
def test_edge_pip_install_with_comment_like_text():
# pip install inside a comment
msg = "# pip install requests"
codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 6.58μs -> 3.42μs (92.5% faster)
def test_edge_pip_install_with_interpolated_variable():
# pip install with variable (should extract as is)
msg = "Try
pip install ${PACKAGE}"codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 5.06μs -> 3.62μs (39.9% faster)
def test_edge_pip_install_with_multiple_spaces_and_flags():
# pip install with multiple spaces and flags
msg = "Try 'pip install --no-cache-dir torch torchvision'"
codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 7.22μs -> 4.71μs (53.2% faster)
def test_edge_pip_install_with_brackets_in_package():
# pip install with brackets in package name (extras)
msg = "Try pip install pandas[excel]"
codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 7.12μs -> 3.93μs (81.3% faster)
def test_edge_pip_install_with_dash_and_underscore():
# pip install with dash and underscore in package name
msg = "Try pip install my_pkg-name"
codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 6.69μs -> 3.33μs (101% faster)
def test_edge_pip_install_with_dot_in_package():
# pip install with dot in package name
msg = "Try pip install foo.bar"
codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 6.38μs -> 3.31μs (92.5% faster)
----------- LARGE SCALE TEST CASES ------------
def test_large_scale_many_packages_in_backtick():
# Large number of packages in backtick command
pkgs = [f"pkg{i}" for i in range(100)]
msg = f"Try
pip install {' '.join(pkgs)}"codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 31.3μs -> 30.1μs (3.93% faster)
def test_large_scale_many_packages_with_flags_and_duplicates():
# Large number of packages, with flags and duplicates
pkgs = [f"pkg{i}" for i in range(50)]
msg = f"Try 'pip install --no-cache-dir {' '.join(pkgs)} {' '.join(pkgs)} --upgrade'"
# Should deduplicate and skip flags
codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 27.9μs -> 25.0μs (11.3% faster)
def test_large_scale_long_message_with_one_pip_install():
# Very long message, only one pip install command
pkgs = [f"lib{i}" for i in range(30)]
filler = "blah " * 200
msg = f"{filler}Please run
pip install {' '.join(pkgs)}to continue. {filler}"codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 12.7μs -> 10.9μs (16.5% faster)
def test_large_scale_multiple_pip_installs_only_first_used():
# Multiple pip install commands, only first should be extracted
pkgs1 = [f"a{i}" for i in range(10)]
pkgs2 = [f"b{i}" for i in range(10)]
msg = (
f"First: 'pip install {' '.join(pkgs1)}'. "
f"Second: 'pip install {' '.join(pkgs2)}'."
)
codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 8.86μs -> 6.36μs (39.4% faster)
def test_large_scale_unquoted_pip_install():
# Large scale unquoted pip install
msg = "pip install reallybigpackage123"
codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 7.03μs -> 3.84μs (83.1% faster)
def test_large_scale_individual_quoted_package():
# Large scale quoted package
msg = 'pip install "superhugepackage"'
codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 5.27μs -> 2.52μs (109% faster)
def test_large_scale_package_with_long_extras():
# Package with very long extras list
extras = ",".join(f"extra{i}" for i in range(50))
msg = f"Try pip install foo[{extras}]"
codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 12.7μs -> 9.55μs (33.4% faster)
def test_large_scale_message_with_no_pip_install():
# Very long message with no pip install
msg = "lorem ipsum " * 500
codeflash_output = extract_packages_from_pip_install_suggestion(msg) # 79.7μs -> 77.2μs (3.28% faster)
codeflash_output is used to check that the output of the original code is the same as that of the optimized code.
#------------------------------------------------
from marimo._runtime.packages.import_error_extractors import extract_packages_from_pip_install_suggestion
def test_extract_packages_from_pip_install_suggestion():
extract_packages_from_pip_install_suggestion('')
🔎 Concolic Coverage Tests and Runtime
codeflash_concolic_bps3n5s8/tmpnhys_n75/test_concolic_coverage.py::test_extract_packages_from_pip_install_suggestionTo edit these changes
git checkout codeflash/optimize-extract_packages_from_pip_install_suggestion-mhv452rrand push.