Support inp in link new

This commit is contained in:
WQY\qiong
2023-03-15 22:04:39 +08:00
parent 81c4e0308b
commit 617c66d0cd
6 changed files with 77 additions and 4 deletions

View File

@@ -151,6 +151,33 @@ def inp_in_pump(section: list[str]) -> ChangeSet:
return cs
def inp_in_pump_new(name: str, line: str) -> None:
tokens = line.split()
num = len(tokens)
has_desc = tokens[-1].startswith(';')
num_without_desc = (num - 1) if has_desc else num
id = str(tokens[0])
node1 = str(tokens[1])
node2 = str(tokens[2])
props = {}
for i in range(3, num_without_desc, 2):
props |= { tokens[i].lower(): tokens[i + 1] }
power = float(props['power']) if 'power' in props else None
power = power if power != None else 'null'
head = str(props['head']) if 'head' in props else None
head = f"'{head}'" if head != None else 'null'
speed = float(props['speed']) if 'speed' in props else None
speed = speed if speed != None else 'null'
pattern = str(props['pattern']) if 'pattern' in props else None
pattern = f"'{pattern}'" if pattern != None else 'null'
desc = str(tokens[-1]) if has_desc else None
write(name, f"insert into _link (id, type) values ('{id}', 'pump');")
write(name, f"insert into pumps (id, node1, node2, power, head, speed, pattern) values ('{id}', '{node1}', '{node2}', {power}, {head}, {speed}, {pattern});")
def inp_out_pump(name: str) -> list[str]:
lines = []
objs = read_all(name, 'select * from pumps')