aboutsummaryrefslogtreecommitdiff
path: root/uploader/genotypes
diff options
context:
space:
mode:
Diffstat (limited to 'uploader/genotypes')
-rw-r--r--uploader/genotypes/models.py14
-rw-r--r--uploader/genotypes/views.py4
2 files changed, 12 insertions, 6 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
diff --git a/uploader/genotypes/views.py b/uploader/genotypes/views.py
index 294da0e..8752b02 100644
--- a/uploader/genotypes/views.py
+++ b/uploader/genotypes/views.py
@@ -15,7 +15,7 @@ from uploader.population.models import (populations_by_species,
population_by_species_and_id)
from .models import (genotype_markers,
- genotype_datasets,
+ genotype_dataset,
genotype_markers_count,
genocode_by_population)
@@ -98,7 +98,7 @@ def list_genotypes(species_id: int, population_id: int):
conn, population_id),
total_markers=genotype_markers_count(
conn, species_id),
- datasets=genotype_datasets(
+ dataset=genotype_dataset(
conn, species_id, population_id),
activelink="list-genotypes")