import logging import aiomysql logger = logging.getLogger(__name__) async def get_matlab_command(cfg: object, tool: str, unit: str, pool: object) -> tuple: """Recupera le informazioni per l'esecuzione di un comando Matlab dal database. Interroga il database per ottenere i dettagli necessari all'avvio di uno script Matlab, basandosi sul nome dello strumento (tool) e dell'unità (unit). Args: cfg (object): L'oggetto di configurazione. tool (str): Il nome dello strumento. unit (str): Il nome dell'unità. pool (object): Il pool di connessioni al database. Returns: tuple: Una tupla contenente le informazioni del comando Matlab, o None se non viene trovato alcun comando. """ async with pool.acquire() as conn: async with conn.cursor(aiomysql.DictCursor) as cur: await cur.execute(f""" SELECT m.matcall, t.ftp_send , t.unit_id, s.`desc` as statustools, t.api_send, u.inoltro_api, u.inoltro_api_url, u.inoltro_api_bearer_token, IFNULL(u.duedate, "") as duedate from matfuncs as m INNER JOIN tools as t on t.matfunc = m.id INNER JOIN units as u on u.id = t.unit_id INNER JOIN statustools as s on t.statustool_id = s.id where t.name = '{tool}' AND u.name = '{unit}'; """) result = await cur.fetchone() if not result: logger.error(f"{unit} - {tool}: Matlab command not found.") return None else: return result