diff --git a/api/s15_energy.py b/api/s15_energy.py index 56ea563..9302806 100644 --- a/api/s15_energy.py +++ b/api/s15_energy.py @@ -61,20 +61,20 @@ def set_global_energy(name: str, cs: ChangeSet) -> ChangeSet: def get_pump_energy_schema(name: str) -> dict[str, dict[str, Any]]: - return { 'id' : {'type': 'str' , 'optional': False , 'readonly': True }, + return { 'pump' : {'type': 'str' , 'optional': False , 'readonly': True }, 'price' : {'type': 'float' , 'optional': True , 'readonly': False}, 'pattern' : {'type': 'str' , 'optional': True , 'readonly': False}, 'effic' : {'type': 'str' , 'optional': True , 'readonly': False} } -def get_pump_energy(name: str, id: str) -> dict[str, Any]: +def get_pump_energy(name: str, pump: str) -> dict[str, Any]: d = {} - d['id'] = id - pe = try_read(name, f"select * from energy_pump_price where id = '{id}'") + d['pump'] = pump + pe = try_read(name, f"select * from energy_pump_price where pump = '{pump}'") d['price'] = float(pe['price']) if pe != None else None - pe = try_read(name, f"select * from energy_pump_pattern where id = '{id}'") + pe = try_read(name, f"select * from energy_pump_pattern where pump = '{pump}'") d['pattern'] = str(pe['pattern']) if pe != None else None - pe = try_read(name, f"select * from energy_pump_effic where id = '{id}'") + pe = try_read(name, f"select * from energy_pump_effic where pump = '{pump}'") d['effic'] = str(pe['effic']) if pe != None else None return d @@ -82,24 +82,24 @@ def get_pump_energy(name: str, id: str) -> dict[str, Any]: class PumpEnergy(object): def __init__(self, input: dict[str, Any]) -> None: self.type = 'pump_energy' - self.id = str(input['id']) + self.pump = str(input['pump']) self.price = float(input['price']) if 'price' in input and input['price'] != None else None self.pattern = str(input['pattern']) if 'pattern' in input and input['pattern'] != None else None self.effic = str(input['effic']) if 'effic' in input and input['effic'] != None else None - self.f_id = f"'{self.id}'" + self.f_pump = f"'{self.pump}'" self.f_type = f"'{self.type}'" self.f_price = self.price if self.price != None else 'null' self.f_pattern = f"'{self.pattern}'" if self.pattern != None else 'null' self.f_effic = f"'{self.effic}'" if self.effic != None else 'null' def as_dict(self) -> dict[str, Any]: - return { 'type': self.type, 'id': self.id, 'price': self.price, 'pattern': self.pattern, 'effic': self.effic } + return { 'type': self.type, 'pump': self.pump, 'price': self.price, 'pattern': self.pattern, 'effic': self.effic } def set_pump_energy_cache(name: str, cs: ChangeSet) -> SqlChangeSet: - old = PumpEnergy(get_pump_energy(name, cs.operations[0]['id'])) - raw_new = get_pump_energy(name, cs.operations[0]['id']) + old = PumpEnergy(get_pump_energy(name, cs.operations[0]['pump'])) + raw_new = get_pump_energy(name, cs.operations[0]['pump']) new_dict = cs.operations[0] schema = get_pump_energy_schema(name) @@ -108,21 +108,21 @@ def set_pump_energy_cache(name: str, cs: ChangeSet) -> SqlChangeSet: raw_new[key] = new_dict[key] new = PumpEnergy(raw_new) - redo_sql = f"delete from energy_pump_price where id = {new.f_id};\ndelete from energy_pump_pattern where id = {new.f_id};\ndelete from energy_pump_effic where id = {new.f_id};" + redo_sql = f"delete from energy_pump_price where pump = {new.f_pump};\ndelete from energy_pump_pattern where pump = {new.f_pump};\ndelete from energy_pump_effic where pump = {new.f_pump};" if new.price != None: - redo_sql += f"\ninsert into energy_pump_price (id, price) values ({new.f_id}, {new.f_price});" + redo_sql += f"\ninsert into energy_pump_price (pump, price) values ({new.f_pump}, {new.f_price});" if new.pattern != None: - redo_sql += f"\ninsert into energy_pump_pattern (id, pattern) values ({new.f_id}, {new.f_pattern});" + redo_sql += f"\ninsert into energy_pump_pattern (pump, pattern) values ({new.f_pump}, {new.f_pattern});" if new.effic != None: - redo_sql += f"\ninsert into energy_pump_effic (id, effic) values ({new.f_id}, {new.f_effic});" + redo_sql += f"\ninsert into energy_pump_effic (pump, effic) values ({new.f_pump}, {new.f_effic});" - undo_sql = f"delete from energy_pump_price where id = {old.f_id};\ndelete from energy_pump_pattern where id = {old.f_id};\ndelete from energy_pump_effic where id = {old.f_id};" + undo_sql = f"delete from energy_pump_price where pump = {old.f_pump};\ndelete from energy_pump_pattern where pump = {old.f_pump};\ndelete from energy_pump_effic where pump = {old.f_pump};" if old.price != None: - undo_sql += f"\ninsert into energy_pump_price (id, price) values ({old.f_id}, {old.f_price});" + undo_sql += f"\ninsert into energy_pump_price (pump, price) values ({old.f_pump}, {old.f_price});" if old.pattern != None: - undo_sql += f"\ninsert into energy_pump_pattern (id, pattern) values ({old.f_id}, {old.f_pattern});" + undo_sql += f"\ninsert into energy_pump_pattern (pump, pattern) values ({old.f_pump}, {old.f_pattern});" if old.effic != None: - undo_sql += f"\ninsert into energy_pump_effic (id, effic) values ({old.f_id}, {old.f_effic});" + undo_sql += f"\ninsert into energy_pump_effic (pump, effic) values ({old.f_pump}, {old.f_effic});" redo_cs = g_update_prefix | new.as_dict() undo_cs = g_update_prefix | old.as_dict() diff --git a/script/sql/create/15.energy.sql b/script/sql/create/15.energy.sql index a941e1d..93c5481 100644 --- a/script/sql/create/15.energy.sql +++ b/script/sql/create/15.energy.sql @@ -14,18 +14,18 @@ insert into energy_global (_no, price, pattern, effic, demand_charge) create table energy_pump_price ( - id varchar(32) primary key references pumps(id) not null + pump varchar(32) primary key references pumps(id) not null , price numeric not null ); create table energy_pump_pattern ( - id varchar(32) primary key references pumps(id) not null + pump varchar(32) primary key references pumps(id) not null , pattern varchar(32) references _pattern(id) not null ); create table energy_pump_effic ( - id varchar(32) primary key references pumps(id) not null + pump varchar(32) primary key references pumps(id) not null , effic varchar(32) references _curve(id) not null ); diff --git a/test_tjnetwork.py b/test_tjnetwork.py index 2dbf759..70f0b1b 100644 --- a/test_tjnetwork.py +++ b/test_tjnetwork.py @@ -1962,7 +1962,7 @@ class TestApi: self.enter(p) ge = get_pump_energy(p, 'p0') - assert ge['id'] == 'p0' + assert ge['pump'] == 'p0' assert ge['price'] == None assert ge['pattern'] == None assert ge['effic'] == None @@ -1971,32 +1971,32 @@ class TestApi: add_junction(p, ChangeSet({'id': 'j2', 'x': 0.0, 'y': 10.0, 'elevation': 20.0})) add_pump(p, ChangeSet({'id': 'p0', 'node1': 'j1', 'node2': 'j2', 'power': 0.0})) - set_pump_energy(p, ChangeSet({'id' : 'p0'})) + set_pump_energy(p, ChangeSet({'pump' : 'p0'})) ge = get_pump_energy(p, 'p0') - assert ge['id'] == 'p0' + assert ge['pump'] == 'p0' assert ge['price'] == None assert ge['pattern'] == None assert ge['effic'] == None - set_pump_energy(p, ChangeSet({'id' : 'p0', 'price': 0.0})) + set_pump_energy(p, ChangeSet({'pump' : 'p0', 'price': 0.0})) ge = get_pump_energy(p, 'p0') - assert ge['id'] == 'p0' + assert ge['pump'] == 'p0' assert ge['price'] == 0.0 assert ge['pattern'] == None assert ge['effic'] == None add_pattern(p, ChangeSet({'id' : 'pa0', 'factors': [1.0, 2.0, 3.0]})) - set_pump_energy(p, ChangeSet({'id' : 'p0', 'pattern': 'pa0'})) + set_pump_energy(p, ChangeSet({'pump' : 'p0', 'pattern': 'pa0'})) ge = get_pump_energy(p, 'p0') - assert ge['id'] == 'p0' + assert ge['pump'] == 'p0' assert ge['price'] == 0.0 assert ge['pattern'] == 'pa0' assert ge['effic'] == None set_curve(p, ChangeSet({'id' : 'c0', 'coords': [{'x': 1.0, 'y': 2.0}, {'x': 2.0, 'y': 1.0}]})) - set_pump_energy(p, ChangeSet({'id' : 'p0', 'effic': 'c0'})) + set_pump_energy(p, ChangeSet({'pump' : 'p0', 'effic': 'c0'})) ge = get_pump_energy(p, 'p0') - assert ge['id'] == 'p0' + assert ge['pump'] == 'p0' assert ge['price'] == 0.0 assert ge['pattern'] == 'pa0' assert ge['effic'] == 'c0' @@ -2014,10 +2014,10 @@ class TestApi: add_pattern(p, ChangeSet({'id' : 'pa0', 'factors': [1.0, 2.0, 3.0]})) set_curve(p, ChangeSet({'id' : 'c0', 'coords': [{'x': 1.0, 'y': 2.0}, {'x': 2.0, 'y': 1.0}]})) - cs = set_pump_energy(p, ChangeSet({'id' : 'p0'})).operations[0] + cs = set_pump_energy(p, ChangeSet({'pump' : 'p0'})).operations[0] assert cs['operation'] == API_UPDATE assert cs['type'] == 'pump_energy' - assert cs['id'] == 'p0' + assert cs['pump'] == 'p0' assert cs['price'] == None assert cs['pattern'] == None assert cs['effic'] == None @@ -2025,7 +2025,7 @@ class TestApi: cs = execute_undo(p).operations[0] assert cs['operation'] == API_UPDATE assert cs['type'] == 'pump_energy' - assert cs['id'] == 'p0' + assert cs['pump'] == 'p0' assert cs['price'] == None assert cs['pattern'] == None assert cs['effic'] == None @@ -2033,15 +2033,15 @@ class TestApi: cs = execute_redo(p).operations[0] assert cs['operation'] == API_UPDATE assert cs['type'] == 'pump_energy' - assert cs['id'] == 'p0' + assert cs['pump'] == 'p0' assert cs['price'] == None assert cs['pattern'] == None assert cs['effic'] == None - cs = set_pump_energy(p, ChangeSet({'id' : 'p0', 'price': 0.0})).operations[0] + cs = set_pump_energy(p, ChangeSet({'pump' : 'p0', 'price': 0.0})).operations[0] assert cs['operation'] == API_UPDATE assert cs['type'] == 'pump_energy' - assert cs['id'] == 'p0' + assert cs['pump'] == 'p0' assert cs['price'] == 0.0 assert cs['pattern'] == None assert cs['effic'] == None @@ -2049,7 +2049,7 @@ class TestApi: cs = execute_undo(p).operations[0] assert cs['operation'] == API_UPDATE assert cs['type'] == 'pump_energy' - assert cs['id'] == 'p0' + assert cs['pump'] == 'p0' assert cs['price'] == None assert cs['pattern'] == None assert cs['effic'] == None @@ -2057,15 +2057,15 @@ class TestApi: cs = execute_redo(p).operations[0] assert cs['operation'] == API_UPDATE assert cs['type'] == 'pump_energy' - assert cs['id'] == 'p0' + assert cs['pump'] == 'p0' assert cs['price'] == 0.0 assert cs['pattern'] == None assert cs['effic'] == None - cs = set_pump_energy(p, ChangeSet({'id' : 'p0', 'pattern': 'pa0'})).operations[0] + cs = set_pump_energy(p, ChangeSet({'pump' : 'p0', 'pattern': 'pa0'})).operations[0] assert cs['operation'] == API_UPDATE assert cs['type'] == 'pump_energy' - assert cs['id'] == 'p0' + assert cs['pump'] == 'p0' assert cs['price'] == 0.0 assert cs['pattern'] == 'pa0' assert cs['effic'] == None @@ -2073,7 +2073,7 @@ class TestApi: cs = execute_undo(p).operations[0] assert cs['operation'] == API_UPDATE assert cs['type'] == 'pump_energy' - assert cs['id'] == 'p0' + assert cs['pump'] == 'p0' assert cs['price'] == 0.0 assert cs['pattern'] == None assert cs['effic'] == None @@ -2081,15 +2081,15 @@ class TestApi: cs = execute_redo(p).operations[0] assert cs['operation'] == API_UPDATE assert cs['type'] == 'pump_energy' - assert cs['id'] == 'p0' + assert cs['pump'] == 'p0' assert cs['price'] == 0.0 assert cs['pattern'] == 'pa0' assert cs['effic'] == None - cs = set_pump_energy(p, ChangeSet({'id' : 'p0', 'effic': 'c0'})).operations[0] + cs = set_pump_energy(p, ChangeSet({'pump' : 'p0', 'effic': 'c0'})).operations[0] assert cs['operation'] == API_UPDATE assert cs['type'] == 'pump_energy' - assert cs['id'] == 'p0' + assert cs['pump'] == 'p0' assert cs['price'] == 0.0 assert cs['pattern'] == 'pa0' assert cs['effic'] == 'c0' @@ -2097,7 +2097,7 @@ class TestApi: cs = execute_undo(p).operations[0] assert cs['operation'] == API_UPDATE assert cs['type'] == 'pump_energy' - assert cs['id'] == 'p0' + assert cs['pump'] == 'p0' assert cs['price'] == 0.0 assert cs['pattern'] == 'pa0' assert cs['effic'] == None @@ -2105,15 +2105,15 @@ class TestApi: cs = execute_redo(p).operations[0] assert cs['operation'] == API_UPDATE assert cs['type'] == 'pump_energy' - assert cs['id'] == 'p0' + assert cs['pump'] == 'p0' assert cs['price'] == 0.0 assert cs['pattern'] == 'pa0' assert cs['effic'] == 'c0' - cs = set_pump_energy(p, ChangeSet({'id' : 'p0', 'price': None, 'pattern': None, 'effic': None})).operations[0] + cs = set_pump_energy(p, ChangeSet({'pump' : 'p0', 'price': None, 'pattern': None, 'effic': None})).operations[0] assert cs['operation'] == API_UPDATE assert cs['type'] == 'pump_energy' - assert cs['id'] == 'p0' + assert cs['pump'] == 'p0' assert cs['price'] == None assert cs['pattern'] == None assert cs['effic'] == None @@ -2121,7 +2121,7 @@ class TestApi: cs = execute_undo(p).operations[0] assert cs['operation'] == API_UPDATE assert cs['type'] == 'pump_energy' - assert cs['id'] == 'p0' + assert cs['pump'] == 'p0' assert cs['price'] == 0.0 assert cs['pattern'] == 'pa0' assert cs['effic'] == 'c0' @@ -2129,15 +2129,15 @@ class TestApi: cs = execute_redo(p).operations[0] assert cs['operation'] == API_UPDATE assert cs['type'] == 'pump_energy' - assert cs['id'] == 'p0' + assert cs['pump'] == 'p0' assert cs['price'] == None assert cs['pattern'] == None assert cs['effic'] == None - cs = set_pump_energy(p, ChangeSet({'id' : 'p0', 'price': 0.0, 'pattern': 'pa0', 'effic': 'c0'})).operations[0] + cs = set_pump_energy(p, ChangeSet({'pump' : 'p0', 'price': 0.0, 'pattern': 'pa0', 'effic': 'c0'})).operations[0] assert cs['operation'] == API_UPDATE assert cs['type'] == 'pump_energy' - assert cs['id'] == 'p0' + assert cs['pump'] == 'p0' assert cs['price'] == 0.0 assert cs['pattern'] == 'pa0' assert cs['effic'] == 'c0' @@ -2145,7 +2145,7 @@ class TestApi: cs = execute_undo(p).operations[0] assert cs['operation'] == API_UPDATE assert cs['type'] == 'pump_energy' - assert cs['id'] == 'p0' + assert cs['pump'] == 'p0' assert cs['price'] == None assert cs['pattern'] == None assert cs['effic'] == None @@ -2153,7 +2153,7 @@ class TestApi: cs = execute_redo(p).operations[0] assert cs['operation'] == API_UPDATE assert cs['type'] == 'pump_energy' - assert cs['id'] == 'p0' + assert cs['pump'] == 'p0' assert cs['price'] == 0.0 assert cs['pattern'] == 'pa0' assert cs['effic'] == 'c0' diff --git a/tjnetwork.py b/tjnetwork.py index 753ca39..a63e61c 100644 --- a/tjnetwork.py +++ b/tjnetwork.py @@ -475,8 +475,8 @@ def set_global_energy(name: str, cs: ChangeSet) -> ChangeSet: def get_pump_energy_schema(name: str) -> dict[str, dict[str, Any]]: return api.get_pump_energy_schema(name) -def get_pump_energy(name: str, id: str) -> dict[str, Any]: - return api.get_pump_energy(name, id) +def get_pump_energy(name: str, pump: str) -> dict[str, Any]: + return api.get_pump_energy(name, pump) def set_pump_energy(name: str, cs: ChangeSet) -> ChangeSet: return api.set_pump_energy(name, cs)