# -*- coding: utf-8 -*- """修复 migrate_camel_java.py 第二轮造成的损坏: put("x", y) 被写成了 put("x"), y。 特征:.put( / .putIfAbsent( / .getOrDefault( 后的 "key") 后紧跟 `, `, 而这些方法必然带第二参数,正常代码不存在 `"key"), ` 形态,可安全还原。 """ import re from pathlib import Path from _root import ROOT SRC = ROOT / "yoshop-java" / "src" / "main" / "java" BAD = re.compile(r'\.(put|putIfAbsent|getOrDefault)\("([A-Za-z0-9]+)"\), ') fixed = [] for f in sorted(SRC.rglob("*.java")): text = f.read_text(encoding="utf-8") new = BAD.sub(r'.\1("\2", ', text) if new != text: f.write_text(new, encoding="utf-8") fixed.append(str(f.relative_to(SRC))) print("修复 %d 个文件" % len(fixed)) for n in fixed: print(" ", n)