import re
import sys
def fix_from_list(content):
pattern1 = r'Pattern\.from_list\(([^,]+),\s*(\[[^\]]*\])\)'
content = re.sub(pattern1, r'Pattern.pattern(\1, Pattern.from_values(\2))', content)
pattern2 = r'Pattern\.from_list\(([^,]+),\s*([a-zA-Z_][a-zA-Z0-9_]*)\)'
content = re.sub(pattern2, r'Pattern.pattern(\1, Pattern.from_values(\2))', content)
pattern3 = r'Pattern\.from_list\(([^,]+),\s*((?:list|range)\([^)]*\))\)'
content = re.sub(pattern3, r'Pattern.pattern(\1, Pattern.from_values(\2))', content)
pattern4 = r'Pattern\.from_list\(([a-zA-Z_][a-zA-Z0-9_]*)\)'
content = re.sub(pattern4, r'Pattern.pattern("root", Pattern.from_values(\1))', content)
return content
if __name__ == "__main__":
if len(sys.argv) < 2:
print("Usage: python fix_from_list.py <file>")
sys.exit(1)
filename = sys.argv[1]
with open(filename, 'r') as f:
content = f.read()
fixed = fix_from_list(content)
with open(filename, 'w') as f:
f.write(fixed)
print(f"Fixed {filename}")