from pathlib import Path import ast folder = Path(__file__).resolve().parent for root in [Path('C:/wechat_rpa'), folder / 'payload']: path = root / 'wechat_gui_qt.py' text = path.read_text(encoding='utf-8') old = ''' manage_knowledge.clicked.connect(open_knowledge_center) lambda: QDesktopServices.openUrl(QUrl.fromLocalFile(str(SCRIPT_DIR))) )''' assert text.count(old) == 1 text = text.replace(old, ' manage_knowledge.clicked.connect(open_knowledge_center)') ast.parse(text) path.write_text(text, encoding='utf-8', newline='\n') path = folder / 'stage.py' text = path.read_text(encoding='utf-8') old = " old=next(line.strip() for line in dst.splitlines() if 'manage_knowledge.clicked.connect' in line)" new = ''' old = """manage_knowledge.clicked.connect( lambda: QDesktopServices.openUrl(QUrl.fromLocalFile(str(SCRIPT_DIR))) )"""''' assert text.count(old) == 1 path.write_text(text.replace(old, new), encoding='utf-8', newline='\n') for path in (folder / 'payload').glob('*.py'): ast.parse(path.read_text(encoding='utf-8-sig')) print('Qt merge fixed; all staged Python syntax checks passed')