@@ -20,11 +20,12 @@ def fetch_versions_from_pypi(package_name: str) -> List[str]:
2020 with urllib .request .urlopen (url , timeout = 10 ) as response :
2121 data = json .loads (response .read ())
2222 versions = list (data ["releases" ].keys ())
23- # Filter out pre-release versions and sort
23+ # Filter out pre-release versions using proper regex patterns
24+ pre_release_pattern = re .compile (r".*(alpha|beta|rc|dev|a\d+|b\d+).*" , re .IGNORECASE )
2425 stable_versions = [
2526 v
2627 for v in versions
27- if not any ( char in v for char in [ "a" , "b" , "rc" , "dev" ] )
28+ if not pre_release_pattern . match ( v )
2829 ]
2930 return sorted (stable_versions , key = lambda x : tuple (map (int , x .split ("." ))))
3031 except Exception as e :
@@ -51,7 +52,7 @@ def update_versions_file():
5152 "[\n " + "\n " .join (f' "{ v } ",' for v in clang_format_versions ) + "\n ]"
5253 )
5354 content = re .sub (
54- r"(CLANG_FORMAT_VERSIONS = )\[.*? \]" ,
55+ r"(CLANG_FORMAT_VERSIONS = )\[[^\]]* \]" ,
5556 rf"\1{ clang_format_list } " ,
5657 content ,
5758 flags = re .DOTALL ,
@@ -62,7 +63,7 @@ def update_versions_file():
6263 "[\n " + "\n " .join (f' "{ v } ",' for v in clang_tidy_versions ) + "\n ]"
6364 )
6465 content = re .sub (
65- r"(CLANG_TIDY_VERSIONS = )\[.*? \]" ,
66+ r"(CLANG_TIDY_VERSIONS = )\[[^\]]* \]" ,
6667 rf"\1{ clang_tidy_list } " ,
6768 content ,
6869 flags = re .DOTALL ,
0 commit comments