| 123456789101112131415161718192021222324 |
- # -*- 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)
|