from .database import * def _to_client_point(coord: str) -> dict[str, float]: xy = coord.removeprefix('(').removesuffix(')').split(',') return { 'x': float(xy[0]), 'y': float(xy[1]) } def get_node_coord(name: str, id: str) -> dict[str, float]: row = read(name, f"select * from coordinates where node = '{id}'") return _to_client_point(row['coord']) #-------------------------------------------------------------- # [EPA2][EPA3][IN][OUT] # id x y #-------------------------------------------------------------- # exception ! need merge to node change set ! def inp_in_coord(section: list[str]) -> dict[str, dict[str, float]]: coords = {} for s in section: # skip comment if s.startswith(';'): continue tokens = s.split() coords[tokens[0]] = { 'x': tokens[1], 'y': tokens[2] } return coords def inp_out_coord(name: str) -> list[str]: lines = [] objs = read_all(name, 'select * from coordinates') for obj in objs: node = obj['node'] coord = _to_client_point(obj['coord']) x = coord['x'] y = coord['y'] lines.append(f'{node} {x} {y}') return lines