Fix proactive caching regex to match both hyphens and underscores
PEP 503 normalizes package names to use hyphens, but wheel filenames may use underscores (e.g., typing_extensions-4.0.0-py3-none-any.whl). Convert the search pattern to match either separator.
This commit is contained in:
@@ -536,13 +536,18 @@ def _cache_dependency_background(
|
||||
|
||||
# Parse the HTML to find wheel files
|
||||
html = response.text
|
||||
|
||||
# Create pattern that matches both normalized (hyphens) and original (underscores) forms
|
||||
# PEP 503 normalizes to hyphens, but wheel filenames may use underscores
|
||||
name_pattern = re.sub(r'[-_]+', '[-_]+', normalized_name)
|
||||
|
||||
# Look for wheel files (.whl) - prefer them over sdist
|
||||
wheel_pattern = rf'href="([^"]*{normalized_name}[^"]*\.whl[^"]*)"'
|
||||
wheel_pattern = rf'href="([^"]*{name_pattern}[^"]*\.whl[^"]*)"'
|
||||
matches = re.findall(wheel_pattern, html, re.IGNORECASE)
|
||||
|
||||
if not matches:
|
||||
# Try sdist
|
||||
sdist_pattern = rf'href="([^"]*{normalized_name}[^"]*\.tar\.gz[^"]*)"'
|
||||
sdist_pattern = rf'href="([^"]*{name_pattern}[^"]*\.tar\.gz[^"]*)"'
|
||||
matches = re.findall(sdist_pattern, html, re.IGNORECASE)
|
||||
|
||||
if not matches:
|
||||
|
||||
Reference in New Issue
Block a user