#!.venv/bin/python from utils.database.connection import connetti_db import utils.timestamp.date_check as date_check import logging logger = logging.getLogger(__name__) def get_data(cfg, id): with connetti_db(cfg) as conn: cur = conn.cursor() cur.execute(f'select unit_name, tool_name, tool_data from {cfg.dbname}.{cfg.dbrectable} where id = {id}') unit_name, tool_name, tool_data = cur.fetchone() cur.close() conn.close() return unit_name, tool_name, tool_data def make_matrix(cfg, id): UnitName, ToolNameID, ToolData = get_data(cfg, id) righe = ToolData.splitlines() matrice_valori = [] for riga in [riga for riga in righe if ';|;' in riga]: timestamp, batlevel, temperature, rilevazioni = riga.split(';',3) EventDate, EventTime = timestamp.split(' ') valori_nodi = rilevazioni.lstrip('|;').rstrip(';').split(';|;') # Toglie '|;' iniziali, toglie eventuali ';' finali, dividi per ';|;' for num_nodo, valori_nodo in enumerate(valori_nodi, start=1): valori = valori_nodo.split(';') matrice_valori.append([UnitName, ToolNameID, num_nodo, date_check.conforma_data(EventDate), EventTime, batlevel, temperature] + valori + ([None] * (19 - len(valori)))) return matrice_valori