aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gn3/db/species.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/gn3/db/species.py b/gn3/db/species.py
new file mode 100644
index 0000000..91b78e2
--- /dev/null
+++ b/gn3/db/species.py
@@ -0,0 +1,24 @@
+"""This module contains db functions that get data related to species or
+groups. Particularly useful when generating the menu
+
+"""
+from typing import Any, Optional, Tuple
+from MySQLdb import escape_string
+
+
+def get_chromosome(name: str, is_species: bool, conn: Any) -> Optional[Tuple]:
+ """Given either a group or a species Name, return all the species"""
+ _sql = ("SELECT Chr_Length.Name, Chr_Length.OrderId, "
+ "Length FROM Chr_Length, Species WHERE "
+ "Chr_Length.SpeciesId = Species.SpeciesId AND "
+ "Species.Name = "
+ f"'{escape_string(name).decode('UTF-8')}' ORDER BY OrderId")
+ if not is_species:
+ _sql = ("SELECT Chr_Length.Name, Chr_Length.OrderId, "
+ "Length FROM Chr_Length, InbredSet WHERE "
+ "Chr_Length.SpeciesId = InbredSet.SpeciesId AND "
+ "InbredSet.Name = "
+ f"'{escape_string(name).decode('UTF-8')}' ORDER BY OrderId")
+ with conn.cursor() as cursor:
+ cursor.execute(_sql)
+ return cursor.fetchall()