diff --git a/api/__init__.py b/api/__init__.py index 556cb6b..6a50dfa 100644 --- a/api/__init__.py +++ b/api/__init__.py @@ -31,4 +31,9 @@ from .s4_tanks import add_tank, delete_tank from .s4_tanks import get_tank_elevation, get_tank_init_level, get_tank_min_level, get_tank_max_level, get_tank_diameter, get_tank_min_vol, get_tank_vol_curve, get_tank_overflow, get_tank_coord from .s4_tanks import set_tank_elevation, set_tank_init_level, set_tank_min_level, set_tank_max_level, set_tank_diameter, set_tank_min_vol, set_tank_vol_curve, set_tank_overflow, set_tank_coord +from .s5_pipes import PIPE_STATUS_OPEN, PIPE_STATUS_CLOSED, PIPE_STATUS_CV +from .s5_pipes import add_pipe, delete_pipe +from .s5_pipes import get_pipe_node1, get_pipe_node2, get_pipe_length, get_pipe_diameter, get_pipe_roughness, get_pipe_minor_loss, get_pipe_status +from .s5_pipes import set_pipe_node1, set_pipe_node2, set_pipe_length, set_pipe_diameter, set_pipe_roughness, set_pipe_minor_loss, set_pipe_status + from .s24_coordinates import get_node_coord, set_node_coord \ No newline at end of file diff --git a/api/s5_pipes.py b/api/s5_pipes.py index 6f6370f..18132b3 100644 --- a/api/s5_pipes.py +++ b/api/s5_pipes.py @@ -40,12 +40,12 @@ def delete_pipe(name: str, id: str) -> ChangeSet: return delete_link(name, PIPE, id, sql, undo_sql) -def get_pipe_ndoe1(name: str, id: str) -> str | None: +def get_pipe_node1(name: str, id: str) -> str | None: row = _get_pipe(name, id) return float(row['node1']) if row != None else None -def get_pipe_ndoe2(name: str, id: str) -> str | None: +def get_pipe_node2(name: str, id: str) -> str | None: row = _get_pipe(name, id) return float(row['node2']) if row != None else None @@ -86,6 +86,20 @@ def _set_pipe(name: str, id: str, key: str, key_type: str, value: str, optional: 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 _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 _set_pipe(name, id, 'node2', 'str', str(node2)) + + def set_pipe_length(name: str, id: str, length: float) -> ChangeSet: return _set_pipe(name, id, 'length', 'float', str(length)) diff --git a/tjnetwork.py b/tjnetwork.py index cd4e92c..a71ecab 100644 --- a/tjnetwork.py +++ b/tjnetwork.py @@ -22,6 +22,10 @@ VALVE = api.VALVE OVERFLOW_YES = api.OVERFLOW_YES OVERFLOW_NO = api.OVERFLOW_NO +PIPE_STATUS_OPEN = api.PIPE_STATUS_OPEN +PIPE_STATUS_CLOSED = api.PIPE_STATUS_CLOSED +PIPE_STATUS_CV = api.PIPE_STATUS_CV + ############################################################ # project @@ -207,8 +211,8 @@ def set_reservoir_coord(name: str, reservoir_id: str, x: float, y: float) -> Cha # tank 4.[TANKS] ############################################################ -def add_tank(name: str, tank_id: str, x: float, y: float, elevation: float) -> ChangeSet: - return api.add_tank(name, tank_id, x, y, elevation) +def add_tank(name: str, tank_id: str, x: float, y: float, elevation: float, init_level: float = 0, min_level: float = 0, max_level: float = 0, diameter: float = 0, min_vol: float = 0) -> ChangeSet: + return api.add_tank(name, tank_id, x, y, elevation, init_level, min_level, max_level, diameter, min_vol) def delete_tank(name: str, tank_id: str) -> ChangeSet: return api.delete_tank(name, tank_id) @@ -268,6 +272,59 @@ def set_tank_coord(name: str, tank_id: str, x: float, y: float) -> ChangeSet: return api.set_tank_coord(name, tank_id, x, y) +############################################################ +# pipe 4.[PIPES] +############################################################ + +def add_pipe(name: str, pipe_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: + return api.add_pipe(name, pipe_id, node1, node2, length, diameter, roughness, minor_loss, status) + +def delete_pipe(name: str, id: str) -> ChangeSet: + return api.delete_pipe(name, id) + +def get_pipe_node1(name: str, id: str) -> str | None: + return api.get_pipe_node1(name, id) + +def get_pipe_node2(name: str, id: str) -> str | None: + return api.get_pipe_node2(name, id) + +def get_pipe_length(name: str, id: str) -> float | None: + return api.get_pipe_length(name, id) + +def get_pipe_diameter(name: str, id: str) -> float | None: + return api.get_pipe_diameter(name, id) + +def get_pipe_roughness(name: str, id: str) -> float | None: + return api.get_pipe_roughness(name, id) + +def get_pipe_minor_loss(name: str, id: str) -> float | None: + return api.get_pipe_minor_loss(name, id) + +def get_pipe_status(name: str, id: str) -> str | None: + return api.get_pipe_status(name, id) + +def set_pipe_node1(name: str, id: str, node1: str) -> ChangeSet: + return api.set_pipe_node1(name, id, node1) + +def set_pipe_node2(name: str, id: str, node2: str) -> ChangeSet: + return api.set_pipe_node2(name, id, node2) + +def set_pipe_length(name: str, id: str, length: float) -> ChangeSet: + return api.set_pipe_length(name, id, length) + +def set_pipe_diameter(name: str, id: str, diameter: float) -> ChangeSet: + return api.set_pipe_diameter(name, id, diameter) + +def set_pipe_roughness(name: str, id: str, roughness: float) -> ChangeSet: + return api.set_pipe_roughness(name, id, roughness) + +def set_pipe_minor_loss(name: str, id: str, minor_loss: float) -> ChangeSet: + return api.set_pipe_minor_loss(name, id, minor_loss) + +def set_pipe_status(name: str, id: str, status: float) -> ChangeSet: + return api.set_pipe_status(name, id, status) + + ############################################################ # coordinates 24.[COORDINATES] ############################################################