"""Module to handle persistence and retrieval of publication to/from MariaDB""" def fetch_phenotype_publications( conn, ids: tuple[tuple[int, int], ...]) -> tuple[dict, ...]: """Fetch publication from database by ID.""" paramstr = ",".join(["(%s, %s)"] * len(ids)) query = ( "SELECT " "pxr.PhenotypeId, pxr.Id AS xref_id, pxr.PublicationId, pub.PubMed_ID " "FROM PublishXRef AS pxr INNER JOIN Publication AS pub " "ON pxr.PublicationId=pub.Id " f"WHERE (pxr.PhenotypeId, pxr.Id) IN ({paramstr})") with conn.cursor(cursorclass=DictCursor) as cursor: cursor.execute(query, tuple(item for row in ids for item in row)) return tuple(dict(row) for row in cursor.fetchall())