From 4b452c5f0af6543c868116500da0cb3ba79d5a4f Mon Sep 17 00:00:00 2001 From: "WQY\\qiong" Date: Sat, 29 Apr 2023 15:42:01 +0800 Subject: [PATCH] Clean code --- api/__init__.py | 26 +++--- api/{del_cmd.py => api_batch.py} | 13 ++- api/{del_cmd_raw.py => api_cs.py} | 133 ++++++++++++++++++++++++------ api/batch_cmd.py | 62 -------------- api/batch_cmds.py | 12 +-- api/s23_options.py | 9 -- api/s23_options_util.py | 14 ++-- api/s23_options_v3.py | 9 -- api/s29_scada_device.py | 10 --- api/s30_scada_device_data.py | 10 --- api/s31_scada_element.py | 10 --- tjnetwork.py | 4 +- 12 files changed, 141 insertions(+), 171 deletions(-) rename api/{del_cmd.py => api_batch.py} (89%) rename api/{del_cmd_raw.py => api_cs.py} (53%) delete mode 100644 api/batch_cmd.py diff --git a/api/__init__.py b/api/__init__.py index e7f81b0..16e2e5f 100644 --- a/api/__init__.py +++ b/api/__init__.py @@ -32,25 +32,25 @@ from .s0_base import get_node_links from .s1_title import get_title_schema, get_title, set_title from .s2_junctions import get_junction_schema, add_junction, get_junction, set_junction -from .del_cmd import delete_junction_cascade +from .api_batch import delete_junction_cascade from .s3_reservoirs import get_reservoir_schema, add_reservoir, get_reservoir, set_reservoir -from .del_cmd import delete_reservoir_cascade +from .api_batch import delete_reservoir_cascade from .s4_tanks import OVERFLOW_YES, OVERFLOW_NO from .s4_tanks import get_tank_schema, add_tank, get_tank, set_tank -from .del_cmd import delete_tank_cascade +from .api_batch import delete_tank_cascade from .s5_pipes import PIPE_STATUS_OPEN, PIPE_STATUS_CLOSED, PIPE_STATUS_CV from .s5_pipes import get_pipe_schema, add_pipe, get_pipe, set_pipe -from .del_cmd import delete_pipe_cascade +from .api_batch import delete_pipe_cascade from .s6_pumps import get_pump_schema, add_pump, get_pump, set_pump -from .del_cmd import delete_pump_cascade +from .api_batch import delete_pump_cascade from .s7_valves import VALVES_TYPE_PRV, VALVES_TYPE_PSV, VALVES_TYPE_PBV, VALVES_TYPE_FCV, VALVES_TYPE_TCV, VALVES_TYPE_GPV from .s7_valves import get_valve_schema, add_valve, get_valve, set_valve -from .del_cmd import delete_valve_cascade +from .api_batch import delete_valve_cascade from .s8_tags import TAG_TYPE_NODE, TAG_TYPE_LINK from .s8_tags import get_tag_schema, get_tags, get_tag, set_tag @@ -61,11 +61,11 @@ from .s10_status import LINK_STATUS_OPEN, LINK_STATUS_CLOSED, LINK_STATUS_ACTIVE from .s10_status import get_status_schema, get_status, set_status from .s11_patterns import get_pattern_schema, get_pattern, set_pattern, add_pattern -from .del_cmd import delete_pattern_cascade +from .api_batch import delete_pattern_cascade from .s12_curves import CURVE_TYPE_PUMP, CURVE_TYPE_EFFICIENCY, CURVE_TYPE_VOLUME, CURVE_TYPE_HEADLOSS from .s12_curves import get_curve_schema, get_curve, set_curve, add_curve -from .del_cmd import delete_curve_cascade +from .api_batch import delete_curve_cascade from .s13_controls import get_control_schema, get_control, set_control @@ -98,7 +98,7 @@ from .s23_options_util import OPTION_UNBALANCED_STOP, OPTION_UNBALANCED_CONTINUE from .s23_options_util import OPTION_DEMAND_MODEL_DDA, OPTION_DEMAND_MODEL_PDA from .s23_options_util import OPTION_QUALITY_NONE, OPTION_QUALITY_CHEMICAL, OPTION_QUALITY_AGE, OPTION_QUALITY_TRACE from .s23_options_util import get_option_schema, get_option -from .s23_options import set_option +from .api_batch import set_option_ex from .s23_options_util import OPTION_V3_FLOW_UNITS_CFS, OPTION_V3_FLOW_UNITS_GPM, OPTION_V3_FLOW_UNITS_MGD, OPTION_V3_FLOW_UNITS_IMGD, OPTION_V3_FLOW_UNITS_AFD, OPTION_V3_FLOW_UNITS_LPS, OPTION_V3_FLOW_UNITS_LPM, OPTION_V3_FLOW_UNITS_MLD, OPTION_V3_FLOW_UNITS_CMH, OPTION_V3_FLOW_UNITS_CMD from .s23_options_util import OPTION_V3_PRESSURE_UNITS_PSI, OPTION_V3_PRESSURE_UNITS_KPA, OPTION_V3_PRESSURE_UNITS_M @@ -110,7 +110,7 @@ from .s23_options_util import OPTION_V3_LEAKAGE_MODEL_NONE, OPTION_V3_LEAKAGE_MO from .s23_options_util import OPTION_V3_QUALITY_MODEL_NONE, OPTION_V3_QUALITY_MODEL_CHEMICAL, OPTION_V3_QUALITY_MODEL_AGE, OPTION_V3_QUALITY_MODEL_TRACE from .s23_options_util import OPTION_V3_QUALITY_UNITS_HRS, OPTION_V3_QUALITY_UNITS_PCNT, OPTION_V3_QUALITY_UNITS_MGL, OPTION_V3_QUALITY_UNITS_UGL from .s23_options_util import get_option_v3_schema, get_option_v3 -from .s23_options_v3 import set_option_v3 +from .api_batch import set_option_v3_ex from .s24_coordinates import get_node_coord @@ -122,14 +122,14 @@ from .s27_backdrop import get_backdrop_schema, get_backdrop, set_backdrop from .s29_scada_device import SCADA_DEVICE_TYPE_PRESSURE, SCADA_DEVICE_TYPE_DEMAND, SCADA_DEVICE_TYPE_QUALITY, SCADA_DEVICE_TYPE_LEVEL, SCADA_DEVICE_TYPE_FLOW from .s29_scada_device import get_scada_device_schema, get_scada_devices, get_scada_device, set_scada_device, add_scada_device, delete_scada_device -from .del_cmd import clean_scada_device +from .api_batch import clean_scada_device from .s30_scada_device_data import get_scada_device_data_schema, get_scada_device_data, set_scada_device_data, add_scada_device_data, delete_scada_device_data -from .del_cmd import clean_scada_device_data +from .api_batch import clean_scada_device_data from .s31_scada_element import SCADA_MODEL_TYPE_JUNCTION, SCADA_MODEL_TYPE_RESERVOIR, SCADA_MODEL_TYPE_TANK, SCADA_MODEL_TYPE_PIPE, SCADA_MODEL_TYPE_PUMP, SCADA_MODEL_TYPE_VALVE from .s31_scada_element import SCADA_ELEMENT_STATUS_OFFLINE, SCADA_ELEMENT_STATUS_ONLINE from .s31_scada_element import get_scada_element_schema, get_scada_elements, get_scada_element, set_scada_element, add_scada_element, delete_scada_element -from .del_cmd import clean_scada_element +from .api_batch import clean_scada_element from .s37_virtual_district import calculate_virtual_district \ No newline at end of file diff --git a/api/del_cmd.py b/api/api_batch.py similarity index 89% rename from api/del_cmd.py rename to api/api_batch.py index 354c819..091d2d4 100644 --- a/api/del_cmd.py +++ b/api/api_batch.py @@ -1,8 +1,5 @@ -from .del_cmd_raw import * from .batch_cmds import execute_batch_command -from .s29_scada_device import clean_scada_device_cs -from .s30_scada_device_data import clean_scada_device_data_cs -from .s31_scada_element import clean_scada_element_cs +from .api_cs import * def delete_junction_cascade(name: str, cs: ChangeSet) -> ChangeSet: @@ -53,6 +50,14 @@ def delete_curve_cascade(name: str, cs: ChangeSet) -> ChangeSet: return execute_batch_command(name, cs) +def set_option_ex(name: str, cs: ChangeSet) -> ChangeSet: + return execute_batch_command(name, set_option_cs(cs)) + + +def set_option_v3_ex(name: str, cs: ChangeSet) -> ChangeSet: + return execute_batch_command(name, set_option_v3_cs(cs)) + + def clean_scada_device(name: str) -> ChangeSet: return execute_batch_command(name, clean_scada_device_cs(name)) diff --git a/api/del_cmd_raw.py b/api/api_cs.py similarity index 53% rename from api/del_cmd_raw.py rename to api/api_cs.py index 1953fda..33705f4 100644 --- a/api/del_cmd_raw.py +++ b/api/api_cs.py @@ -18,8 +18,10 @@ from .s20_mixing import delete_mixing_by_tank from .s25_vertices import delete_vertex_by_link from .s26_labels import unset_label_by_node +from .s23_options_util import generate_v2, generate_v3 -def delete_junction_cascade_batch_cmd(name: str, cs: ChangeSet) -> ChangeSet: + +def delete_junction_cascade_batch_cs(name: str, cs: ChangeSet) -> ChangeSet: result = ChangeSet() id = cs.operations[0]['id'] @@ -31,11 +33,11 @@ def delete_junction_cascade_batch_cmd(name: str, cs: ChangeSet) -> ChangeSet: for link in links: if is_pipe(name, link): - result.merge(delete_pipe_cascade_batch_cmd(name, ChangeSet(g_delete_prefix | {'type': 'pipe', 'id': link}))) + result.merge(delete_pipe_cascade_batch_cs(name, ChangeSet(g_delete_prefix | {'type': 'pipe', 'id': link}))) if is_pump(name, link): - result.merge(delete_pump_cascade_batch_cmd(name, ChangeSet(g_delete_prefix | {'type': 'pump', 'id': link}))) + result.merge(delete_pump_cascade_batch_cs(name, ChangeSet(g_delete_prefix | {'type': 'pump', 'id': link}))) if is_valve(name, link): - result.merge(delete_valve_cascade_batch_cmd(name, ChangeSet(g_delete_prefix | {'type': 'valve', 'id': link}))) + result.merge(delete_valve_cascade_batch_cs(name, ChangeSet(g_delete_prefix | {'type': 'valve', 'id': link}))) result.merge(delete_tag_by_node(name, id)) result.merge(delete_demand_by_junction(name, id)) @@ -48,7 +50,7 @@ def delete_junction_cascade_batch_cmd(name: str, cs: ChangeSet) -> ChangeSet: return result -def delete_reservoir_cascade_batch_cmd(name: str, cs: ChangeSet) -> ChangeSet: +def delete_reservoir_cascade_batch_cs(name: str, cs: ChangeSet) -> ChangeSet: result = ChangeSet() id = cs.operations[0]['id'] @@ -60,11 +62,11 @@ def delete_reservoir_cascade_batch_cmd(name: str, cs: ChangeSet) -> ChangeSet: for link in links: if is_pipe(name, link): - result.merge(delete_pipe_cascade_batch_cmd(name, ChangeSet(g_delete_prefix | {'type': 'pipe', 'id': link}))) + result.merge(delete_pipe_cascade_batch_cs(name, ChangeSet(g_delete_prefix | {'type': 'pipe', 'id': link}))) if is_pump(name, link): - result.merge(delete_pump_cascade_batch_cmd(name, ChangeSet(g_delete_prefix | {'type': 'pump', 'id': link}))) + result.merge(delete_pump_cascade_batch_cs(name, ChangeSet(g_delete_prefix | {'type': 'pump', 'id': link}))) if is_valve(name, link): - result.merge(delete_valve_cascade_batch_cmd(name, ChangeSet(g_delete_prefix | {'type': 'valve', 'id': link}))) + result.merge(delete_valve_cascade_batch_cs(name, ChangeSet(g_delete_prefix | {'type': 'valve', 'id': link}))) result.merge(delete_tag_by_node(name, id)) result.merge(delete_quality_by_node(name, id)) @@ -75,7 +77,7 @@ def delete_reservoir_cascade_batch_cmd(name: str, cs: ChangeSet) -> ChangeSet: return result -def delete_tank_cascade_batch_cmd(name: str, cs: ChangeSet) -> ChangeSet: +def delete_tank_cascade_batch_cs(name: str, cs: ChangeSet) -> ChangeSet: result = ChangeSet() id = cs.operations[0]['id'] @@ -87,11 +89,11 @@ def delete_tank_cascade_batch_cmd(name: str, cs: ChangeSet) -> ChangeSet: for link in links: if is_pipe(name, link): - result.merge(delete_pipe_cascade_batch_cmd(name, ChangeSet(g_delete_prefix | {'type': 'pipe', 'id': link}))) + result.merge(delete_pipe_cascade_batch_cs(name, ChangeSet(g_delete_prefix | {'type': 'pipe', 'id': link}))) if is_pump(name, link): - result.merge(delete_pump_cascade_batch_cmd(name, ChangeSet(g_delete_prefix | {'type': 'pump', 'id': link}))) + result.merge(delete_pump_cascade_batch_cs(name, ChangeSet(g_delete_prefix | {'type': 'pump', 'id': link}))) if is_valve(name, link): - result.merge(delete_valve_cascade_batch_cmd(name, ChangeSet(g_delete_prefix | {'type': 'valve', 'id': link}))) + result.merge(delete_valve_cascade_batch_cs(name, ChangeSet(g_delete_prefix | {'type': 'valve', 'id': link}))) result.merge(delete_tag_by_node(name, id)) result.merge(delete_quality_by_node(name, id)) @@ -104,7 +106,7 @@ def delete_tank_cascade_batch_cmd(name: str, cs: ChangeSet) -> ChangeSet: return result -def delete_pipe_cascade_batch_cmd(name: str, cs: ChangeSet) -> ChangeSet: +def delete_pipe_cascade_batch_cs(name: str, cs: ChangeSet) -> ChangeSet: result = ChangeSet() id = cs.operations[0]['id'] @@ -121,7 +123,7 @@ def delete_pipe_cascade_batch_cmd(name: str, cs: ChangeSet) -> ChangeSet: return result -def delete_pump_cascade_batch_cmd(name: str, cs: ChangeSet) -> ChangeSet: +def delete_pump_cascade_batch_cs(name: str, cs: ChangeSet) -> ChangeSet: result = ChangeSet() id = cs.operations[0]['id'] @@ -138,7 +140,7 @@ def delete_pump_cascade_batch_cmd(name: str, cs: ChangeSet) -> ChangeSet: return result -def delete_valve_cascade_batch_cmd(name: str, cs: ChangeSet) -> ChangeSet: +def delete_valve_cascade_batch_cs(name: str, cs: ChangeSet) -> ChangeSet: result = ChangeSet() id = cs.operations[0]['id'] @@ -155,7 +157,7 @@ def delete_valve_cascade_batch_cmd(name: str, cs: ChangeSet) -> ChangeSet: return result -def delete_pattern_cascade_batch_cmd(name: str, cs: ChangeSet) -> ChangeSet: +def delete_pattern_cascade_batch_cs(name: str, cs: ChangeSet) -> ChangeSet: result = ChangeSet() id = cs.operations[0]['id'] @@ -173,7 +175,7 @@ def delete_pattern_cascade_batch_cmd(name: str, cs: ChangeSet) -> ChangeSet: return result -def delete_curve_cascade_batch_cmd(name: str, cs: ChangeSet) -> ChangeSet: +def delete_curve_cascade_batch_cs(name: str, cs: ChangeSet) -> ChangeSet: result = ChangeSet() id = cs.operations[0]['id'] @@ -189,24 +191,103 @@ def delete_curve_cascade_batch_cmd(name: str, cs: ChangeSet) -> ChangeSet: return result -def del_cascade_cmd(name: str, cs: ChangeSet) -> ChangeSet: +def del_cascade_cs(name: str, cs: ChangeSet) -> ChangeSet: type = cs.operations[0]['type'] if type == s2_junction: - return delete_junction_cascade_batch_cmd(name, cs) + return delete_junction_cascade_batch_cs(name, cs) elif type == s3_reservoir: - return delete_reservoir_cascade_batch_cmd(name, cs) + return delete_reservoir_cascade_batch_cs(name, cs) elif type == s4_tank: - return delete_tank_cascade_batch_cmd(name, cs) + return delete_tank_cascade_batch_cs(name, cs) elif type == s5_pipe: - return delete_pipe_cascade_batch_cmd(name, cs) + return delete_pipe_cascade_batch_cs(name, cs) elif type == s6_pump: - return delete_pump_cascade_batch_cmd(name, cs) + return delete_pump_cascade_batch_cs(name, cs) elif type == s7_valve: - return delete_valve_cascade_batch_cmd(name, cs) + return delete_valve_cascade_batch_cs(name, cs) elif type == s11_pattern: - return delete_pattern_cascade_batch_cmd(name, cs) + return delete_pattern_cascade_batch_cs(name, cs) elif type == s12_curve: - return delete_curve_cascade_batch_cmd(name, cs) + return delete_curve_cascade_batch_cs(name, cs) + + return cs + + +def set_option_cs(cs: ChangeSet) -> ChangeSet: + cs.operations[0]['operation'] = API_UPDATE + cs.operations[0]['type'] = 'option' + new_cs = cs + new_cs.merge(generate_v3(cs)) + return new_cs + + +def set_option_v3_cs(cs: ChangeSet) -> ChangeSet: + cs.operations[0]['operation'] = API_UPDATE + cs.operations[0]['type'] = 'option_v3' + new_cs = cs + new_cs.merge(generate_v2(cs)) + return new_cs + + +def clean_scada_device_cs(name: str) -> ChangeSet: + cs = ChangeSet() + + rows = read_all(name, 'select id from scada_device acs') + for row in rows: + cs.delete({ 'type': 'scada_device', 'id': row['id'] }) + + return cs + + +def clean_scada_device_data_cs(name: str) -> ChangeSet: + cs = ChangeSet() + + rows = read_all(name, 'select distinct device_id from scada_device_data acs') + for row in rows: + cs.update({ 'type': 'scada_device_data', 'device_id': row['device_id'], 'data': [] }) + + return cs + + +def clean_scada_element_cs(name: str) -> ChangeSet: + cs = ChangeSet() + + rows = read_all(name, 'select id from scada_element acs') + for row in rows: + cs.delete({ 'type': 'scada_element', 'id': row['id'] }) + + return cs + + +def extend(name: str, cs: ChangeSet) -> ChangeSet: + op = cs.operations[0] + api = op['operation'] + type = op['type'] + + if api == API_DELETE: + if type == s2_junction: + return delete_junction_cascade_batch_cs(name, cs) + elif type == s3_reservoir: + return delete_reservoir_cascade_batch_cs(name, cs) + elif type == s4_tank: + return delete_tank_cascade_batch_cs(name, cs) + elif type == s5_pipe: + return delete_pipe_cascade_batch_cs(name, cs) + elif type == s6_pump: + return delete_pump_cascade_batch_cs(name, cs) + elif type == s7_valve: + return delete_valve_cascade_batch_cs(name, cs) + elif type == s11_pattern: + return delete_pattern_cascade_batch_cs(name, cs) + elif type == s12_curve: + return delete_curve_cascade_batch_cs(name, cs) + elif api == API_UPDATE: + if type == s23_option: + return set_option_cs(cs) + elif type == s23_option_v3: + return set_option_v3_cs(cs) + + # TODO: support clean return cs diff --git a/api/batch_cmd.py b/api/batch_cmd.py deleted file mode 100644 index 0237171..0000000 --- a/api/batch_cmd.py +++ /dev/null @@ -1,62 +0,0 @@ -from .sections import * -from .database import API_ADD, API_UPDATE, API_DELETE, ChangeSet, DbChangeSet, execute_command -from .s23_options_util import set_option_cmd, set_option_v3_cmd -from .del_cmd_raw import del_cascade_cmd - - -def add_cmd(name: str, cs: ChangeSet) -> DbChangeSet | None: - return None - - -def set_cmd(name: str, cs: ChangeSet) -> DbChangeSet | None: - type = cs.operations[0]['type'] - - if type == s23_option: - return set_option_cmd(name, cs) - elif type == s23_option_v3: - return set_option_v3_cmd(name, cs) - - return None - - -def del_cmd(name: str, cs: ChangeSet) -> DbChangeSet | None: - return None - - -def execute_batch_command(name: str, cs: ChangeSet) -> ChangeSet: - css: list[DbChangeSet] = [] - - # for delete, generate cascade command - new_cs = ChangeSet() - for op in cs.operations: - if op['operation'] == API_DELETE: - new_cs.merge(del_cascade_cmd(name, ChangeSet(op))) - else: - new_cs.merge(ChangeSet(op)) - - try: - for op in new_cs.operations: - operation = op['operation'] - - r = None - - if operation == API_ADD: - r = add_cmd(name, ChangeSet(op)) - elif operation == API_UPDATE: - r = set_cmd(name, ChangeSet(op)) - elif operation == API_DELETE: - r = del_cmd(name, ChangeSet(op)) - - if r == None: - print(f'ERROR: Build [{op}] returns None') - return ChangeSet() - - css.append(r) - - except: - return ChangeSet() - - try: - return execute_command(name, DbChangeSet.from_list(css)) - except: - return ChangeSet() diff --git a/api/batch_cmds.py b/api/batch_cmds.py index 479d92b..f0cd93a 100644 --- a/api/batch_cmds.py +++ b/api/batch_cmds.py @@ -22,18 +22,14 @@ from .s18_sources import set_source, add_source, delete_source from .s19_reactions import set_reaction, set_pipe_reaction, set_tank_reaction from .s20_mixing import set_mixing, add_mixing, delete_mixing from .s21_times import set_time -#from .s22_report import * -from .s23_options import set_option -from .s23_options_v3 import set_option_v3 -#from .s24_coordinates import * +from .s23_options_util import set_option, set_option_v3 from .s25_vertices import set_vertex, add_vertex, delete_vertex from .s26_labels import set_label, add_label, delete_label from .s27_backdrop import set_backdrop -# from .s28_end import * from .s29_scada_device import set_scada_device, add_scada_device, delete_scada_device from .s30_scada_device_data import set_scada_device_data, add_scada_device_data, delete_scada_device_data from .s31_scada_element import set_scada_element, add_scada_element, delete_scada_element -from .del_cmd_raw import del_cascade_cmd +from .api_cs import extend def execute_add_command(name: str, cs: ChangeSet) -> ChangeSet: @@ -272,7 +268,7 @@ def execute_batch_commands(name: str, cs: ChangeSet) -> ChangeSet: new_cs = ChangeSet() for op in cs.operations: if op['operation'] == API_DELETE: - new_cs.merge(del_cascade_cmd(name, ChangeSet(op))) + new_cs.merge(extend(name, ChangeSet(op))) else: new_cs.merge(ChangeSet(op)) @@ -304,7 +300,7 @@ def execute_batch_command(name: str, cs: ChangeSet) -> ChangeSet: new_cs = ChangeSet() for op in cs.operations: if op['operation'] == API_DELETE: - new_cs.merge(del_cascade_cmd(name, ChangeSet(op))) + new_cs.merge(extend(name, ChangeSet(op))) else: new_cs.merge(ChangeSet(op)) diff --git a/api/s23_options.py b/api/s23_options.py index 6748f76..08d674c 100644 --- a/api/s23_options.py +++ b/api/s23_options.py @@ -1,14 +1,5 @@ from .database import * from .s23_options_util import get_option_schema, generate_v3 -from .batch_cmd import execute_batch_command - - -def set_option(name: str, cs: ChangeSet) -> ChangeSet: - cs.operations[0]['operation'] = API_UPDATE - cs.operations[0]['type'] = 'option' - new_cs = cs - new_cs.merge(generate_v3(cs)) - return execute_batch_command(name, new_cs) def _inp_in_option(section: list[str]) -> ChangeSet: diff --git a/api/s23_options_util.py b/api/s23_options_util.py index 5a7a4be..8995c3b 100644 --- a/api/s23_options_util.py +++ b/api/s23_options_util.py @@ -106,7 +106,7 @@ def get_option(name: str) -> dict[str, Any]: return d -def set_option_cmd(name: str, cs: ChangeSet) -> DbChangeSet: +def _set_option(name: str, cs: ChangeSet) -> DbChangeSet: raw_old = get_option(name) old = {} @@ -140,9 +140,8 @@ def set_option_cmd(name: str, cs: ChangeSet) -> DbChangeSet: return DbChangeSet(redo_sql, undo_sql, [redo_cs], [undo_cs]) -def set_option_only(name: str, cs: ChangeSet) -> ChangeSet: - v2_cmd = set_option_cmd(name, cs) - return execute_command(name, v2_cmd) +def set_option(name: str, cs: ChangeSet) -> ChangeSet: + return execute_command(name, _set_option(name, cs)) OPTION_V3_FLOW_UNITS_CFS = OPTION_UNITS_CFS @@ -231,7 +230,7 @@ def get_option_v3(name: str) -> dict[str, Any]: return d -def set_option_v3_cmd(name: str, cs: ChangeSet) -> DbChangeSet: +def _set_option_v3(name: str, cs: ChangeSet) -> DbChangeSet: raw_old = get_option_v3(name) old = {} @@ -265,9 +264,8 @@ def set_option_v3_cmd(name: str, cs: ChangeSet) -> DbChangeSet: return DbChangeSet(redo_sql, undo_sql, [redo_cs], [undo_cs]) -def set_option_v3_only(name: str, cs: ChangeSet) -> ChangeSet: - v3_cmd = set_option_v3_cmd(name, cs) - return execute_command(name, v3_cmd) +def set_option_v3(name: str, cs: ChangeSet) -> ChangeSet: + return execute_command(name, _set_option_v3(name, cs)) _key_map_23 = { diff --git a/api/s23_options_v3.py b/api/s23_options_v3.py index 4e62c88..0a7738b 100644 --- a/api/s23_options_v3.py +++ b/api/s23_options_v3.py @@ -1,14 +1,5 @@ from .database import * from .s23_options_util import get_option_schema, get_option_v3_schema, generate_v2, generate_v3 -from .batch_cmd import execute_batch_command - - -def set_option_v3(name: str, cs: ChangeSet) -> ChangeSet: - cs.operations[0]['operation'] = API_UPDATE - cs.operations[0]['type'] = 'option_v3' - new_cs = cs - new_cs.merge(generate_v2(cs)) - return execute_batch_command(name, new_cs) def _parse_v2(v2_lines: list[str]) -> dict[str, str]: diff --git a/api/s29_scada_device.py b/api/s29_scada_device.py index c4fe561..337277c 100644 --- a/api/s29_scada_device.py +++ b/api/s29_scada_device.py @@ -116,13 +116,3 @@ def delete_scada_device(name: str, cs: ChangeSet) -> ChangeSet: if get_scada_device(name, cs.operations[0]['id']) == {}: return ChangeSet() return execute_command(name, _delete_scada_device(name, cs)) - - -def clean_scada_device_cs(name: str) -> ChangeSet: - cs = ChangeSet() - - rows = read_all(name, 'select id from scada_device acs') - for row in rows: - cs.delete({ 'type': 'scada_device', 'id': row['id'] }) - - return cs diff --git a/api/s30_scada_device_data.py b/api/s30_scada_device_data.py index 34ac4e1..5f23800 100644 --- a/api/s30_scada_device_data.py +++ b/api/s30_scada_device_data.py @@ -88,13 +88,3 @@ def delete_scada_device_data(name: str, cs: ChangeSet) -> ChangeSet: if row == None: return ChangeSet() return execute_command(name, _delete_scada_device_data(name, cs)) - - -def clean_scada_device_data_cs(name: str) -> ChangeSet: - cs = ChangeSet() - - rows = read_all(name, 'select distinct device_id from scada_device_data acs') - for row in rows: - cs.update({ 'type': 'scada_device_data', 'device_id': row['device_id'], 'data': [] }) - - return cs diff --git a/api/s31_scada_element.py b/api/s31_scada_element.py index 798b013..f4739ab 100644 --- a/api/s31_scada_element.py +++ b/api/s31_scada_element.py @@ -178,13 +178,3 @@ def delete_scada_element(name: str, cs: ChangeSet) -> ChangeSet: if get_scada_element(name, cs.operations[0]['id']) == {}: return ChangeSet() return execute_command(name, _delete_scada_element(name, cs)) - - -def clean_scada_element_cs(name: str) -> ChangeSet: - cs = ChangeSet() - - rows = read_all(name, 'select id from scada_element acs') - for row in rows: - cs.delete({ 'type': 'scada_element', 'id': row['id'] }) - - return cs diff --git a/tjnetwork.py b/tjnetwork.py index b84f50d..ab98e66 100644 --- a/tjnetwork.py +++ b/tjnetwork.py @@ -772,7 +772,7 @@ def get_option(name: str) -> dict[str, Any]: return api.get_option(name) def set_option(name: str, cs: ChangeSet) -> ChangeSet: - return api.set_option(name, cs) + return api.set_option_ex(name, cs) ############################################################ @@ -786,7 +786,7 @@ def get_option_v3(name: str) -> dict[str, Any]: return api.get_option_v3(name) def set_option_v3(name: str, cs: ChangeSet) -> ChangeSet: - return api.set_option_v3(name, cs) + return api.set_option_v3_ex(name, cs) ############################################################