aboutsummaryrefslogtreecommitdiff
path: root/uploader/genotypes/models.py
diff options
context:
space:
mode:
authorFrederick Muriuki Muriithi2024-09-19 13:43:21 -0500
committerFrederick Muriuki Muriithi2024-09-19 13:44:06 -0500
commitd4fd4693423d99f500bfcd65cea42ed47e8d59e0 (patch)
tree129bb97d6026e1ec182677e3979c31b29550355b /uploader/genotypes/models.py
parent954f7e90db1904d6bcb906985928625ce50179dd (diff)
downloadgn-uploader-d4fd4693423d99f500bfcd65cea42ed47e8d59e0.tar.gz
Only show a single genotype dataset.
It is expected that there is only ever a single genotype dataset for any one particular population.
Diffstat (limited to 'uploader/genotypes/models.py')
-rw-r--r--uploader/genotypes/models.py14
1 files changed, 10 insertions, 4 deletions
diff --git a/uploader/genotypes/models.py b/uploader/genotypes/models.py
index 642caa6..29acd0b 100644
--- a/uploader/genotypes/models.py
+++ b/uploader/genotypes/models.py
@@ -41,12 +41,15 @@ def genotype_markers(
return tuple(dict(row) for row in cursor.fetchall())
-def genotype_datasets(
+def genotype_dataset(
conn: mdb.Connection,
species_id: int,
population_id: int
-) -> tuple[dict, ...]:
- """Retrieve genotype datasets from the database."""
+) -> Optional[dict]:
+ """Retrieve genotype datasets from the database.
+
+ Apparently, you should only ever have one genotype dataset for a population.
+ """
with conn.cursor(cursorclass=DictCursor) as cursor:
cursor.execute(
"SELECT gf.* FROM Species AS s INNER JOIN InbredSet AS iset "
@@ -54,4 +57,7 @@ def genotype_datasets(
"ON iset.Id=gf.InbredSetId "
"WHERE s.Id=%s AND iset.Id=%s",
(species_id, population_id))
- return tuple(dict(row) for row in cursor.fetchall())
+ result = cursor.fetchone()
+ if bool(result):
+ return dict(result)
+ return None