"""Functions for handling samples.""" import MySQLdb as mdb from MySQLdb.cursors import DictCursor def samples_by_species_and_population( conn: mdb.Connection, species_id: int, population_id: int ) -> tuple[dict, ...]: """Fetch the samples by their species and population.""" with conn.cursor(cursorclass=DictCursor) as cursor: cursor.execute( "SELECT iset.InbredSetId, s.* FROM InbredSet AS iset " "INNER JOIN StrainXRef AS sxr ON iset.InbredSetId=sxr.InbredSetId " "INNER JOIN Strain AS s ON sxr.StrainId=s.Id " "WHERE s.SpeciesId=%(species_id)s " "AND iset.InbredSetId=%(population_id)s", {"species_id": species_id, "population_id": population_id}) return tuple(cursor.fetchall())