"""Functions for accessing the database relating to datasets.""" import MySQLdb as mdb from MySQLdb.cursors import DictCursor def geno_dataset_by_species_and_population( conn: mdb.Connection, speciesid: int, populationid: int) -> tuple[dict, ...]: """Retrieve all genotypes datasets by species and population""" with conn.cursor(cursorclass=DictCursor) as cursor: cursor.execute( "SELECT gf.* FROM InbredSet AS iset INNER JOIN GenoFreeze AS gf " "ON iset.InbredSetId=gf.InbredSetId " "WHERE iset.SpeciesId=%(sid)s AND iset.InbredSetId=%(pid)s", {"sid": speciesid, "pid": populationid}) return tuple(dict(row) for row in cursor.fetchall()) def geno_dataset_by_id(conn: mdb.Connection, dataset_id: int) -> dict: """Retrieve genotype dataset by ID""" with conn.cursor(cursorclass=DictCursor) as cursor: cursor.execute("SELECT * FROM GenoFreeze WHERE Id=%s", (dataset_id,)) return dict(cursor.fetchone())