Support inp in link new
This commit is contained in:
@@ -5,6 +5,9 @@ from .s1_title import inp_in_title_new
|
||||
from .s2_junctions import inp_in_junction_new
|
||||
from .s3_reservoirs import inp_in_reservoir_new
|
||||
from .s4_tanks import inp_in_tank_new
|
||||
from .s5_pipes import inp_in_pipe_new
|
||||
from .s6_pumps import inp_in_pump_new
|
||||
from .s7_valves import inp_in_valve_new
|
||||
from .s11_patterns import inp_in_pattern_new
|
||||
from .s12_curves import inp_in_curve_new
|
||||
from .s13_controls import inp_in_control_new
|
||||
@@ -22,9 +25,9 @@ _handler = {
|
||||
JUNCTIONS : (_L, inp_in_junction_new),
|
||||
RESERVOIRS : (_L, inp_in_reservoir_new),
|
||||
TANKS : (_L, inp_in_tank_new),
|
||||
PIPES : (_L, None),
|
||||
PUMPS : (_L, None),
|
||||
VALVES : (_L, None),
|
||||
PIPES : (_L, inp_in_pipe_new),
|
||||
PUMPS : (_L, inp_in_pump_new),
|
||||
VALVES : (_L, inp_in_valve_new),
|
||||
TAGS : (_L, None),
|
||||
DEMANDS : (_L, None),
|
||||
STATUS : (_L, None),
|
||||
|
||||
@@ -159,7 +159,7 @@ def inp_in_reservoir_new(name: str, line: str) -> None:
|
||||
desc = str(tokens[-1]) if has_desc else None
|
||||
|
||||
write(name, f"insert into _node (id, type) values ('{id}', 'reservoir');")
|
||||
write(name, f"\ninsert into reservoirs (id, head, pattern) values ('{id}', {head}, {pattern});")
|
||||
write(name, f"insert into reservoirs (id, head, pattern) values ('{id}', {head}, {pattern});")
|
||||
|
||||
|
||||
def inp_out_reservoir(name: str) -> list[str]:
|
||||
|
||||
@@ -210,6 +210,7 @@ def inp_in_tank_new(name: str, line: str) -> None:
|
||||
write(name, f"insert into _node (id, type) values ('{id}', 'tank');")
|
||||
write(name, f"insert into tanks (id, elevation, init_level, min_level, max_level, diameter, min_vol, vol_curve, overflow) values ('{id}', {elevation}, {init_level}, {min_level}, {max_level}, {diameter}, {min_vol}, {vol_curve}, {overflow});")
|
||||
|
||||
|
||||
def inp_out_tank(name: str) -> list[str]:
|
||||
lines = []
|
||||
objs = read_all(name, 'select * from tanks')
|
||||
|
||||
@@ -161,6 +161,28 @@ def inp_in_pipe(section: list[str]) -> ChangeSet:
|
||||
return cs
|
||||
|
||||
|
||||
def inp_in_pipe_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])
|
||||
length = float(tokens[3])
|
||||
diameter = float(tokens[4])
|
||||
roughness = float(tokens[5])
|
||||
minor_loss = float(tokens[6])
|
||||
# status is must-have, here fix input
|
||||
status = str(tokens[7].upper()) if num_without_desc >= 8 else PIPE_STATUS_OPEN
|
||||
desc = str(tokens[-1]) if has_desc else None
|
||||
|
||||
write(name, f"insert into _link (id, type) values ('{id}', 'pipe');")
|
||||
write(name, f"insert into pipes (id, node1, node2, length, diameter, roughness, minor_loss, status) values ('{id}', '{node1}', '{node2}', {length}, {diameter}, {roughness}, {minor_loss}, '{status}');")
|
||||
|
||||
|
||||
def inp_out_pipe(name: str) -> list[str]:
|
||||
lines = []
|
||||
objs = read_all(name, 'select * from pipes')
|
||||
|
||||
@@ -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')
|
||||
|
||||
@@ -157,6 +157,26 @@ def inp_in_valve(section: list[str]) -> ChangeSet:
|
||||
return cs
|
||||
|
||||
|
||||
def inp_in_valve_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])
|
||||
diameter = float(tokens[3])
|
||||
v_type = str(tokens[4].upper())
|
||||
setting = str(tokens[5])
|
||||
minor_loss = float(tokens[6])
|
||||
desc = str(tokens[-1]) if has_desc else None
|
||||
|
||||
write(name, f"insert into _link (id, type) values ('{id}', 'valve');")
|
||||
write(name, f"insert into valves (id, node1, node2, diameter, type, setting, minor_loss) values ('{id}', '{node1}', '{node2}', {diameter}, '{v_type}', '{setting}', {minor_loss});")
|
||||
|
||||
|
||||
def inp_out_valve(name: str) -> list[str]:
|
||||
lines = []
|
||||
objs = read_all(name, 'select * from valves')
|
||||
|
||||
Reference in New Issue
Block a user