Files
Aislo/resources/tester/scratch/fix_ch13_valves_and_fittings.py
T

108 lines
4.0 KiB
Python

import os, sys, re
sys.stdout.reconfigure(encoding='utf-8')
ch13_path = "resources/knowledge/original/원가계산/건설공사_표준품셈/04_기계설비부문/제13장_플랜트설비공사.md"
with open(ch13_path, 'r', encoding='utf-8') as f:
text = f.read()
# 1. L459 (Flange Type Valve)
# Notice: old_l459
lines = text.split('\n')
target_idx = -1
for i, l in enumerate(lines):
if l.startswith("| ø50 65 80 90 100 125 150 200 250 300 350 400 450 500 600 | 0.100 0.133"):
target_idx = i
break
if target_idx != -1:
l_str = lines[target_idx]
cells = [c.strip() for c in l_str.split('|')[1:-1]]
specs = cells[0].split() # 15 specs
# cells 1..10 each have 15 or 10 values (col 11, 12 have 10 values)
cols = [c.split() for c in cells]
rows = []
for r_i in range(len(specs)):
r = [specs[r_i]]
for c_i in range(1, len(cols)):
vals = cols[c_i]
val = vals[r_i] if r_i < len(vals) else "-"
r.append(val)
rows.append("| " + " | ".join(r) + " |")
lines[target_idx] = "\n".join(rows)
print("Fixed Flange Type Valve table (15 rows)")
# 2. Check 13-1-4 Fitting Screwed / Welded (around L492)
for i, l in enumerate(lines):
if l.startswith("| ø50 65 80 90 100 150 200 250 300 350 400 450 500 600 |"):
cells = [c.strip() for c in l.split('|')[1:-1]]
specs = cells[0].split()
cols = [c.split() for c in cells]
rows = []
for r_i in range(len(specs)):
r = [specs[r_i]]
for c_i in range(1, len(cols)):
vals = cols[c_i]
val = vals[r_i] if r_i < len(vals) else "-"
r.append(val)
rows.append("| " + " | ".join(r) + " |")
lines[i] = "\n".join(rows)
print(f"Fixed Fitting table at line {i+1} ({len(specs)} rows)")
# 3. Check phi 50..600 table (around L542)
for i, l in enumerate(lines):
if l.startswith("| φ 50 65 80 90 100 125 150 200 250 300 350 400 450 500 600 |"):
cells = [c.strip() for c in l.split('|')[1:-1]]
specs = cells[0].split()
cols = [c.split() for c in cells]
rows = []
for r_i in range(len(specs)):
r = [specs[r_i]]
for c_i in range(1, len(cols)):
vals = cols[c_i]
val = vals[r_i] if r_i < len(vals) else "-"
r.append(val)
rows.append("| " + " | ".join(r) + " |")
lines[i] = "\n".join(rows)
print(f"Fixed phi table at line {i+1} ({len(specs)} rows)")
# 4. Check phi 15..350 table (around L852)
for i, l in enumerate(lines):
if l.startswith("| φ 15 20 25 40 50 65 80 90 100 125 150 200 250 300 350 |"):
cells = [c.strip() for c in l.split('|')[1:-1]]
specs = cells[0].split()
cols = [c.split() for c in cells]
rows = []
for r_i in range(len(specs)):
r = [specs[r_i]]
for c_i in range(1, len(cols)):
vals = cols[c_i]
val = vals[r_i] if r_i < len(vals) else "-"
r.append(val)
rows.append("| " + " | ".join(r) + " |")
lines[i] = "\n".join(rows)
print(f"Fixed phi 15..350 table at line {i+1} ({len(specs)} rows)")
# 5. Check phi 15..150 table (around L882)
for i, l in enumerate(lines):
if l.startswith("| φ 15 20 25 40 50 65 80 90 100 125 150 |"):
cells = [c.strip() for c in l.split('|')[1:-1]]
specs = cells[0].split()
cols = [c.split() for c in cells]
rows = []
for r_i in range(len(specs)):
r = [specs[r_i]]
for c_i in range(1, len(cols)):
vals = cols[c_i]
val = vals[r_i] if r_i < len(vals) else "-"
r.append(val)
rows.append("| " + " | ".join(r) + " |")
lines[i] = "\n".join(rows)
print(f"Fixed phi 15..150 table at line {i+1} ({len(specs)} rows)")
text = "\n".join(lines)
with open(ch13_path, 'w', encoding='utf-8') as f:
f.write(text)
print("Saved updated 제13장_플랜트설비공사.md successfully.")