4545# #
4646#######################################
4747def apiQuery (tier , query , variables , queryprint = False ):
48- if tier == 'DEV2' :
48+ if tier == 'DEV' :
49+ url = 'https://hub-dev.datacommons.cancer.gov/api/graphql'
50+ token = os .environ ['DEVAPI' ]
51+ elif tier == 'DEV2' :
4952 url = 'https://hub-dev2.datacommons.cancer.gov/api/graphql'
5053 token = os .environ ['DEV2API' ]
54+ elif tier == 'QA' :
55+ url = 'https://hub-qa.datacommons.cancer.gov/api/graphql'
56+ token = os .environ ['QAAPI' ]
57+ elif tier == 'QA2' :
58+ url = 'https://hub-qa2.datacommons.cancer.gov/api/graphql'
59+ token = os .environ ['QA2API' ]
5160 elif tier == 'STAGE' :
5261 url = 'https://hub-stage.datacommons.cancer.gov/api/graphql'
5362 token = os .environ ['STAGEAPI' ]
@@ -93,13 +102,17 @@ def elapsedTime(submission_df):
93102
94103
95104def bracketParse (parsethis ):
96- first = parsethis .split ("]" )
97- errorstring = first [1 ]
98- if "[" in errorstring :
99- second = errorstring .split ("[" )
100- return second [0 ]
105+ if ']' in parsethis :
106+ first = parsethis .split ("]" )
107+ print (f"Parsethis: { parsethis } \n First:{ first } \n " )
108+ errorstring = first [1 ]
109+ if "[" in errorstring :
110+ second = errorstring .split ("[" )
111+ return second [0 ]
112+ else :
113+ return errorstring
101114 else :
102- return errorstring
115+ return parsethis
103116
104117
105118def updateAggregation (df ):
@@ -216,7 +229,7 @@ def buildBasicTable(df):
216229 html .Hr (),
217230 dcc .Dropdown (
218231 id = 'tierselector' ,
219- options = ['DEV2' ,'STAGE' , 'PROD' ],
232+ options = ['DEV' , ' DEV2' , 'QA' , 'QA2 ' ,'STAGE' , 'PROD' ],
220233 multi = False ,
221234 style = {'backgroundcolor' :'1E1E1E' },
222235 ),
@@ -810,13 +823,16 @@ def populateDataTable(dataselector, submissionstore, subselector, tierselector):
810823 idlist = sub_df .query ("name == @subselector" )['_id' ].tolist ()
811824 queryvars = {'_id' :idlist [0 ], 'nodeType' :dataselector , 'status' :'All' , 'first' :- 1 , 'offset' :0 , 'orderBy' :'studyID' , 'sortDirection' :'desc' }
812825 data_res = apiQuery (tierselector , dhq .submission_nodes_query , queryvars )
813- if data_res ['data' ]['getSubmissionNodes' ]['total' ] == 0 :
814- return dash_table .DataTable ()
826+ if 'data' in data_res :
827+ if data_res ['data' ]['getSubmissionNodes' ]['total' ] == 0 :
828+ return dash_table .DataTable ()
829+ else :
830+ data_df = pd .DataFrame (columns = data_res ['data' ]['getSubmissionNodes' ]['properties' ])
831+ for entry in data_res ['data' ]['getSubmissionNodes' ]['nodes' ]:
832+ data_df .loc [len (data_df )] = json .loads (entry ['props' ])
833+ return buildBasicTable (data_df )
815834 else :
816- data_df = pd .DataFrame (columns = data_res ['data' ]['getSubmissionNodes' ]['properties' ])
817- for entry in data_res ['data' ]['getSubmissionNodes' ]['nodes' ]:
818- data_df .loc [len (data_df )] = json .loads (entry ['props' ])
819- return buildBasicTable (data_df )
835+ return dash_table .DataTable ()
820836
821837
822838
@@ -955,6 +971,7 @@ def validationWarningSummaryTable(subselector, submissionstore, tierselector):
955971def validationErrorPieChart (subselector , submissionstore , tierselector ):
956972 sub_df = pd .read_json (io .StringIO (submissionstore ),orient = 'split' )
957973 idlist = sub_df .query ("name == @subselector" )["_id" ].tolist ()
974+ #colors = {'new':'blue', 'error': 'red', 'warning':'yellow', 'passed':'green'}
958975 if len (idlist )>= 1 :
959976 valvars = {"submissionID" :idlist [0 ], "severity" :"Error" , "first" :- 1 , "offset" :0 , "sortDirection" : "desc" , "orderBy" : "displayID" }
960977 val_res = apiQuery (tierselector , dhq .summaryQuery , valvars )
@@ -977,6 +994,7 @@ def validationErrorPieChart(subselector, submissionstore, tierselector):
977994def validationWarningPieChart (subselector , submissionstore , tierselector ):
978995 sub_df = pd .read_json (io .StringIO (submissionstore ),orient = 'split' )
979996 idlist = sub_df .query ("name == @subselector" )["_id" ].tolist ()
997+ #colors = {'new':'blue', 'error': 'red', 'warning':'yellow', 'passed':'green'}
980998 if len (idlist )>= 1 :
981999 valvars = {"submissionID" :idlist [0 ], "severity" :"Warning" , "first" :- 1 , "offset" :0 , "sortDirection" : "desc" , "orderBy" : "displayID" }
9821000 val_res = apiQuery (tierselector , dhq .summaryQuery , valvars )
@@ -999,14 +1017,15 @@ def validationWarningPieChart(subselector, submissionstore, tierselector):
9991017def subStatusChart (subselector , submissionstore , tierselector ):
10001018 sub_df = pd .read_json (io .StringIO (submissionstore ),orient = 'split' )
10011019 idlist = sub_df .query ("name == @subselector" )["_id" ].tolist ()
1020+ colors = {'new' :'blue' , 'error' : 'red' , 'warning' :'yellow' , 'passed' :'green' }
10021021 if len (idlist ) >= 1 :
10031022 qvars = {'id' : idlist [0 ]}
10041023 query_res = apiQuery (tierselector , dhq .submission_stats_query , qvars )
10051024 columns = ['nodeName' , 'total' , 'new' , 'error' , 'warning' , 'passed' ]
10061025 substats_df = pd .DataFrame (columns = columns )
10071026 for entry in query_res ['data' ]['submissionStats' ]['stats' ]:
10081027 substats_df .loc [len (substats_df )] = entry
1009- return px .bar (substats_df , x = 'nodeName' , y = ['new' , 'error' , 'warning' , 'passed' ])
1028+ return px .bar (substats_df , x = 'nodeName' , y = ['new' , 'error' , 'warning' , 'passed' ], color_discrete_map = colors )
10101029 else :
10111030 return px .bar ()
10121031
@@ -1021,6 +1040,7 @@ def subStatusChart(subselector, submissionstore, tierselector):
10211040def subStatusPercentageChart (subselector , submissionstore , tierselector ):
10221041 sub_df = pd .read_json (io .StringIO (submissionstore ),orient = 'split' )
10231042 idlist = sub_df .query ("name == @subselector" )["_id" ].tolist ()
1043+ colors = {'new' :'blue' , 'error' : 'red' , 'warning' :'yellow' , 'passed' :'green' }
10241044 if len (idlist ) >= 1 :
10251045 qvars = {'id' :idlist [0 ]}
10261046 query_res = apiQuery (tierselector , dhq .submission_stats_query , qvars )
@@ -1030,19 +1050,19 @@ def subStatusPercentageChart(subselector, submissionstore, tierselector):
10301050 substats_df .loc [len (substats_df )] = entry
10311051 #Add percentages to df
10321052 calccolumns = columns = ['new' , 'error' , 'warning' , 'passed' ]
1033- newcol = ['nodeName' , 'new_percentage ' , 'error_percentage ' , 'warning_percentage ' , 'passed_percentage ' ]
1053+ newcol = ['nodeName' , 'new ' , 'error ' , 'warning ' , 'passed ' ]
10341054 per_df = pd .DataFrame (columns = newcol )
10351055 for index , row in substats_df .iterrows ():
10361056 newrow = {}
10371057 newrow ['nodeName' ] = row ['nodeName' ]
10381058 for column in calccolumns :
10391059 if row ['total' ] > 0 :
1040- newrow [column + '_percentage' ] = (row [column ]/ row ['total' ])* 100
1060+ newrow [column ] = (row [column ]/ row ['total' ])* 100
10411061 else :
1042- newrow [column + '_percentage' ] = 0
1062+ newrow [column ] = 0
10431063 per_df .loc [len (per_df )] = newrow
10441064
1045- return px .bar (per_df , x = 'nodeName' , y = ['new_percentage ' , 'error_percentage ' , 'warning_percentage ' , 'passed_percentage' ] )
1065+ return px .bar (per_df , x = 'nodeName' , y = ['new ' , 'error ' , 'warning ' , 'passed' ], color_discrete_map = colors )
10461066 else :
10471067 return px .bar ()
10481068
0 commit comments