From b52515b26f104b729f97ddfaaca069bd6067ade0 Mon Sep 17 00:00:00 2001 From: wqy Date: Sat, 17 Sep 2022 18:31:00 +0800 Subject: [PATCH] Return empty change set --- api/s0_base.py | 8 ++++---- api/s24_coordinates.py | 7 ++++--- api/s2_junctions.py | 8 ++++---- api/s3_reservoirs.py | 8 ++++---- api/s4_tanks.py | 14 +++++++------- api/s5_pipes.py | 16 ++++++++-------- api/s6_pumps.py | 16 ++++++++-------- api/s7_valves.py | 20 ++++++++------------ 8 files changed, 47 insertions(+), 50 deletions(-) diff --git a/api/s0_base.py b/api/s0_base.py index e4a5032..e984143 100644 --- a/api/s0_base.py +++ b/api/s0_base.py @@ -96,7 +96,7 @@ def get_patterns(name: str) -> list[str]: def add_node(name: str, node_type: str, id: str, x: float, y: float, table_sql: str, table_undo_sql: str) -> ChangeSet: if is_node(name, id): - return + return ChangeSet() with conn[name].cursor() as cur: sql = f"insert into _node (id, type) values ('{id}', '{node_type}'); " @@ -117,7 +117,7 @@ def add_node(name: str, node_type: str, id: str, x: float, y: float, table_sql: def delete_node(name: str, node_type: str, id: str, table_sql: str, table_undo_sql: str) -> ChangeSet: if not is_node(name, id): - return + return ChangeSet() with conn[name].cursor(row_factory=dict_row) as cur: cur.execute(f"select * from coordinates where node = '{id}'") @@ -145,7 +145,7 @@ def delete_node(name: str, node_type: str, id: str, table_sql: str, table_undo_s def add_link(name: str, link_type: str, id: str, table_sql: str, table_undo_sql: str) -> ChangeSet: if is_link(name, id): - return + return ChangeSet() with conn[name].cursor() as cur: sql = f"insert into _link (id, type) values ('{id}', '{link_type}'); " @@ -164,7 +164,7 @@ def add_link(name: str, link_type: str, id: str, table_sql: str, table_undo_sql: def delete_link(name: str, link_type: str, id: str, table_sql: str, table_undo_sql: str) -> ChangeSet: if not is_node(name, id): - return + return ChangeSet() with conn[name].cursor(row_factory=dict_row) as cur: sql = table_sql diff --git a/api/s24_coordinates.py b/api/s24_coordinates.py index fae0c0d..268574a 100644 --- a/api/s24_coordinates.py +++ b/api/s24_coordinates.py @@ -25,11 +25,12 @@ def get_node_coord(name: str, id: str) -> dict[str, float] | None: def set_node_coord(name: str, id: str, x: float, y: float) -> ChangeSet: if not is_junction(name, id): - return + return ChangeSet() old = get_node_coord(name, id) if old == None: - return + return ChangeSet() + old_x, old_y = old['x'], old['y'] with conn[name].cursor() as cur: @@ -42,4 +43,4 @@ def set_node_coord(name: str, id: str, x: float, y: float) -> ChangeSet: change = ChangeSet() change.update('junction', id, 'coord', 'point', str({'x': x, 'y': y})) - return change \ No newline at end of file + return change diff --git a/api/s2_junctions.py b/api/s2_junctions.py index b2b5ad2..b5e788d 100644 --- a/api/s2_junctions.py +++ b/api/s2_junctions.py @@ -17,11 +17,11 @@ def _get_junction(name: str, id: str) -> Row | None: def delete_junction(name: str, id: str) -> ChangeSet: if not is_junction(name, id): - return + return ChangeSet() row = _get_junction(name, id) if row == None: - return + return ChangeSet() elevation = row['elevation'] demand = utility.decorate(row['demand'], 'float', True) @@ -60,11 +60,11 @@ def get_junction_coord(name: str, id: str) -> dict[str, float] | None: def _set_junction(name: str, id: str, key: str, key_type: str, value: str, optional: bool = False) -> ChangeSet: if not is_junction(name, id): - return + return ChangeSet() row = _get_junction(name, id) if row == None: - return + return ChangeSet() return utility.update(name, JUNCTION, 'junctions', 'id', id, key, key_type, row[key], value, optional) diff --git a/api/s3_reservoirs.py b/api/s3_reservoirs.py index b47cf2b..3b48bff 100644 --- a/api/s3_reservoirs.py +++ b/api/s3_reservoirs.py @@ -17,11 +17,11 @@ def _get_reservoir(name: str, id: str) -> Row | None: def delete_reservoir(name: str, id: str) -> ChangeSet: if not is_reservoir(name, id): - return + return ChangeSet() row = _get_reservoir(name, id) if row == None: - return + return ChangeSet() head = row['head'] pattern = utility.decorate(row['pattern'], 'str', True) @@ -51,11 +51,11 @@ def get_reservoir_coord(name: str, id: str) -> dict[str, float] | None: def _set_reservoir(name: str, id: str, key: str, key_type: str, value: str, optional: bool = False) -> ChangeSet: if not is_reservoir(name, id): - return + return ChangeSet() row = _get_reservoir(name, id) if row == None: - return + return ChangeSet() return utility.update(name, RESERVOIR, 'reservoirs', 'id', id, key, key_type, row[key], value, optional) diff --git a/api/s4_tanks.py b/api/s4_tanks.py index f4e3f77..2a76002 100644 --- a/api/s4_tanks.py +++ b/api/s4_tanks.py @@ -21,11 +21,11 @@ def _get_tank(name: str, id: str) -> Row | None: def delete_tank(name: str, id: str) -> ChangeSet: if not is_tank(name, id): - return + return ChangeSet() row = _get_tank(name, id) if row == None: - return + return ChangeSet() elevation = row['elevation'] init_level = row['init_level'] @@ -36,10 +36,10 @@ def delete_tank(name: str, id: str) -> ChangeSet: vol_curve = utility.decorate(row['vol_curve'], 'str', True) overflow = utility.decorate(row['overflow'], 'str', True) - sql += f"delete from tanks where id = '{id}';" + sql = f"delete from tanks where id = '{id}';" undo_sql = 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});' - return add_node(name, TANK, id, x, y, sql, undo_sql) + return delete_node(name, TANK, id, sql, undo_sql) def get_tank_elevation(name: str, id: str) -> float | None: @@ -94,11 +94,11 @@ def get_tank_coord(name: str, id: str) -> dict[str, float] | None: def _set_tank(name: str, id: str, key: str, key_type: str, value: str, optional: bool = False) -> ChangeSet: if not is_tank(name, id): - return + return ChangeSet() row = _get_tank(name, id) if row == None: - return + return ChangeSet() return utility.update(name, TANK, 'tanks', 'id', id, key, key_type, row[key], value, optional) @@ -129,7 +129,7 @@ def set_tank_min_vol(name: str, id: str, min_vol: float) -> ChangeSet: def set_tank_vol_curve(name: str, id: str, vol_curve: str) -> ChangeSet: if not is_curve(name, vol_curve): - return ChangeSet + return ChangeSet() return _set_tank(name, id, 'vol_curve', 'str', vol_curve, True) diff --git a/api/s5_pipes.py b/api/s5_pipes.py index 2875a33..0c50527 100644 --- a/api/s5_pipes.py +++ b/api/s5_pipes.py @@ -11,9 +11,9 @@ PIPE_STATUS_CV = 'cv' def add_pipe(name: str, id: str, node1: str, node2: str, length: float = 0, diameter: float = 0, roughness: float = 0, minor_loss: float = 0, status: str = PIPE_STATUS_OPEN) -> ChangeSet: if not is_node(name, node1): - return + return ChangeSet() if not is_node(name, node2): - return + return ChangeSet() sql = f"insert into pipes (id, node1, node2, length, diameter, roughness, minor_loss, status) values ('{id}', '{node1}', '{node2}', {length}, {diameter}, {roughness}, {minor_loss}, '{status}');" undo_sql = f'delete from pipes where id = "{id}";' @@ -26,11 +26,11 @@ def _get_pipe(name: str, id: str) -> Row | None: def delete_pipe(name: str, id: str) -> ChangeSet: if not is_pipe(name, id): - return + return ChangeSet() row = _get_pipe(name, id) if row == None: - return + return ChangeSet() node1, node2, length, diameter, roughness, minor_loss, status = row['node1'], row['node2'], row['length'], row['diameter'], row['roughness'], row['minor_loss'], row['status'] @@ -77,25 +77,25 @@ def get_pipe_status(name: str, id: str) -> str | None: def _set_pipe(name: str, id: str, key: str, key_type: str, value: str, optional: bool = False) -> ChangeSet: if not is_pipe(name, id): - return + return ChangeSet() row = _get_pipe(name, id) if row == None: - return + return ChangeSet() return utility.update(name, PIPE, 'pipes', 'id', id, key, key_type, row[key], value, optional) def set_pipe_node1(name: str, id: str, node1: str) -> ChangeSet: if not is_node(name, node1): - return + return ChangeSet() return _set_pipe(name, id, 'node1', 'str', str(node1)) def set_pipe_node2(name: str, id: str, node2: str) -> ChangeSet: if not is_node(name, node2): - return + return ChangeSet() return _set_pipe(name, id, 'node2', 'str', str(node2)) diff --git a/api/s6_pumps.py b/api/s6_pumps.py index 9935678..8e997ab 100644 --- a/api/s6_pumps.py +++ b/api/s6_pumps.py @@ -6,9 +6,9 @@ import utility def add_pump(name: str, id: str, node1: str, node2: str) -> ChangeSet: if not is_node(name, node1): - return + return ChangeSet() if not is_node(name, node2): - return + return ChangeSet() sql = f"insert into pumps (id, node1, node2) values ('{id}', '{node1}', '{node2}'');" undo_sql = f'delete from pumps where id = "{id}";' @@ -21,11 +21,11 @@ def _get_pump(name: str, id: str) -> Row | None: def delete_pump(name: str, id: str) -> ChangeSet: if not is_pump(name, id): - return + return ChangeSet() row = _get_pump(name, id) if row == None: - return + return ChangeSet() node1, node2 = row['node1'], row['node2'] @@ -53,25 +53,25 @@ def get_pump_pattern(name: str, id: str) -> str | None: pass def _set_pump(name: str, id: str, key: str, key_type: str, value: str, optional: bool = False) -> ChangeSet: if not is_pump(name, id): - return + return ChangeSet() row = _get_pump(name, id) if row == None: - return + return ChangeSet() return utility.update(name, PUMP, 'pumps', 'id', id, key, key_type, row[key], value, optional) def set_pump_node1(name: str, id: str, node1: str) -> ChangeSet: if not is_node(name, node1): - return + return ChangeSet() return _set_pump(name, id, 'node1', 'str', str(node1)) def set_pump_node2(name: str, id: str, node2: str) -> ChangeSet: if not is_node(name, node2): - return + return ChangeSet() return _set_pump(name, id, 'node2', 'str', str(node2)) diff --git a/api/s7_valves.py b/api/s7_valves.py index 0bdf8c5..139606b 100644 --- a/api/s7_valves.py +++ b/api/s7_valves.py @@ -14,9 +14,9 @@ VALVES_TYPE_GPV = 'gpv' def add_valve(name: str, id: str, node1: str, node2: str, diameter: float = 0, type: str = VALVES_TYPE_PRV, setting: float = 0, minor_loss: float = 0) -> ChangeSet: if not is_node(name, node1): - return + return ChangeSet() if not is_node(name, node2): - return + return ChangeSet() sql = f"insert into valves (id, node1, node2, diameter, type, setting, minor_loss) values ('{id}', '{node1}', '{node2}', {diameter}, '{type}', {setting}, {minor_loss});" undo_sql = f'delete from valves where id = "{id}";' @@ -29,11 +29,11 @@ def _get_valve(name: str, id: str) -> Row | None: def delete_valve(name: str, id: str) -> ChangeSet: if not is_valve(name, id): - return + return ChangeSet() row = _get_valve(name, id) if row == None: - return + return ChangeSet() node1, node2, diameter, type, setting, minor_loss = row['node1'], row['node2'], row['diameter'], row['type'], row['setting'], row['minor_loss'] @@ -86,31 +86,27 @@ def _set_valve(name: str, id: str, key: str, key_type: str, value: str, optional def set_valve_node1(name: str, id: str, node1: str) -> ChangeSet: if not is_node(name, node1): - return + return ChangeSet() return _set_valve(name, id, 'node1', 'str', str(node1)) def set_valve_node2(name: str, id: str, node2: str) -> ChangeSet: if not is_node(name, node2): - return + return ChangeSet() return _set_valve(name, id, 'node2', 'str', str(node2)) -def set_valve_length(name: str, id: str, length: float) -> ChangeSet: - return _set_valve(name, id, 'length', 'float', str(length)) - - def set_valve_diameter(name: str, id: str, diameter: float) -> ChangeSet: return _set_valve(name, id, 'diameter', 'float', str(diameter)) -def set_valve_type(name: str, id: str, type: float) -> ChangeSet: +def set_valve_type(name: str, id: str, type: str) -> ChangeSet: if type != VALVES_TYPE_PRV and type != VALVES_TYPE_PSV and type != VALVES_TYPE_PBV and type != VALVES_TYPE_FCV and type != VALVES_TYPE_TCV and type != VALVES_TYPE_GPV: return ChangeSet() - return _set_valve(name, id, 'type', 'str', str(type)) + return _set_valve(name, id, 'type', 'str', type) def set_valve_setting(name: str, id: str, setting: float) -> ChangeSet: