feat(826-2): M01 기계 = 한 대 한 파일 · M01 저장 길 줄이기
- 기계.json 한 파일 → 폴더 기계/(EQ 키마다 파일 + _머리.json · 차례 = 키 차례) · 옮긴 빌더 build_기계폴더_826_2 (655 대 머리 · 줄 · 차례 대조 뒤 옛 파일 지움) - 읽기 도우미 master_machine_files — cm.load · Store_Cache · Store.read 가 옛 「기계.json」 한 표 꼴로 지어 줌(API · 화면 · 색인 그대로) · 쓰기 = 바뀐 대 파일만 - 기계.json 직접 열던 곳 도우미로: M02_San_Basis_Index · M02_Logic_Standard 지문 · build_용도 · master_keys.adopt · _틀 · _갱신절차 - 저장 몸 M01_MasterData_Store_Save — 전 = 기억 · 후 = 고친 파일만 얕은 사본 · 틀은 고친 줄만 · 조합 · 일위대가 문서는 로직 줄이 빠질 때만 · 재료 찾기 기억 이어받음 · 저장 뒤 쓴 파일만 기억에 갈아 끼움 - 마스터 사본 시험 22 개 = 기계 폴더도 복사 · 821_2 · 815_2 글 대조 = 대 파일 하나 대조(옛 한 파일 글 대조 낡음) - 새 시험 test_826_2 — 폴더 = 한 표 · 한 대 한 파일 · 새 · 지움 · 409 · 옛 길과 같은 오류 스무 견본 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -227,10 +227,10 @@ def edition(files: dict) -> str:
|
||||
def _stamp() -> str:
|
||||
"""마스터 파일 내용 지문 — 워크트리마다 시각이 달라도 같은 내용이면 같은 열쇠."""
|
||||
sha = hashlib.sha1()
|
||||
for path in sorted(m01.FOLDER.glob("*.json")):
|
||||
if not path.name.startswith("_"):
|
||||
sha.update(path.name.encode())
|
||||
sha.update(hashlib.sha1(path.read_bytes()).digest())
|
||||
for name in m01.cm.mmf.names(m01.FOLDER): # 기계 = 폴더(826-2) — 대마다 이은 내용
|
||||
if not name.startswith("_"):
|
||||
sha.update(name.encode())
|
||||
sha.update(hashlib.sha1(m01.cm.mmf.raw(m01.FOLDER, name)).digest())
|
||||
return sha.hexdigest()
|
||||
|
||||
|
||||
|
||||
@@ -147,6 +147,8 @@ def stamp() -> str:
|
||||
for p in sorted(folder().glob("*.json"))
|
||||
if not p.name.startswith("_")
|
||||
}
|
||||
if m01.cm.mmf.here(folder()): # 기계 = 폴더(826-2)
|
||||
files[m01.cm.mmf.NAME] = m01.version_of(m01.cm.mmf.raw(folder(), m01.cm.mmf.NAME))
|
||||
return derived.derived_key("san-basis-index", files, derived.file_digest(CORPUS))
|
||||
|
||||
|
||||
@@ -158,7 +160,7 @@ def load(root: Path) -> tuple[dict, dict, dict, dict]:
|
||||
for f in glob.glob(str(root / "로직_*.json")):
|
||||
for it in json.loads(Path(f).read_text(encoding="utf-8"))["줄"]:
|
||||
logic[it["키"]] = it
|
||||
for r in json.loads((root / "기계.json").read_text(encoding="utf-8"))["줄"]:
|
||||
for r in m01.cm.mmf.table(root)[0]["줄"]: # 기계 = 폴더(826-2)
|
||||
eq[r["키"]] = r
|
||||
by_no: dict = {}
|
||||
for k, t in tables.items():
|
||||
|
||||
Reference in New Issue
Block a user