aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorFrederick Muriuki Muriithi2024-02-12 18:14:45 +0300
committerFrederick Muriuki Muriithi2024-02-12 18:14:45 +0300
commit3334120a07d8cc7d9ba2e1f23344df4d9c9c33bb (patch)
tree192c8bc28097347b34610bf7c1fac22d547a48a6 /scripts
parenta7410cb1c55f6a06606ab7dcdacd18b11c672632 (diff)
downloadgn-uploader-3334120a07d8cc7d9ba2e1f23344df4d9c9c33bb.tar.gz
Provide better error messaging
Provide a better error message that can help the user figure out what they did wrong and fix it for themselves instead of the older, cryptic and extremely unhelpful error message.
Diffstat (limited to 'scripts')
-rw-r--r--scripts/insert_data.py25
1 files changed, 21 insertions, 4 deletions
diff --git a/scripts/insert_data.py b/scripts/insert_data.py
index 72fc897..a441dcb 100644
--- a/scripts/insert_data.py
+++ b/scripts/insert_data.py
@@ -253,10 +253,27 @@ def insert_se(# pylint: disable = [too-many-arguments]
"VALUES(%(DataId)s, %(StrainId)s, %(DataValue)s)")
annotations = annotationinfo(dbconn, platformid, datasetid)
if not bool(annotations):
- print(
- (f"ERROR: No annotations found for platform {platformid} and "
- f"dataset {datasetid}. Quiting!"),
- file=sys.stderr)
+ with dbconn.cursor(cursorclass=DictCursor) as cursor:
+ dquery = cursor.execute((
+ "SELECT "
+ "gc.GeneChipName AS platformname, pf.Name AS studyname, "
+ "psf.FullName AS datasetname "
+ "FROM GeneChip AS gc INNER JOIN ProbeFreeze AS pf "
+ "ON gc.Id=pf.ChipId INNER JOIN ProbeSetFreeze AS psf "
+ "ON pf.Id=psf.ProbeFreezeId "
+ "WHERE gc.Id=%s AND psf.Id=%s"),
+ (platformid, datasetid))
+
+ errorinfo = dquery.fetchone()
+ print(("ERROR: No annotations found for the "
+ f"'{errorinfo['datasetname']}' dataset (Id: {datasetid}) "
+ f"under the '{errorinfo['studyname']}' study linked to the "
+ f"'{errorinfo['platformname']}' platform (Id: {platformid})."
+ "\n\n"
+ " Please verify you selected the correct platform, "
+ "study and dataset for the standard-error file(s) you were "
+ "trying to upload."),
+ file=sys.stderr)
return 1
se_values = (