async def query_results_extended( passed: List[bool] = Query(None), project_id: List[int] = Query(None), model_instance_id: List[UUID] = Query( None), # todo: rename this 'model_instance_id' for consistency test_instance_id: List[UUID] = Query(None), model_id: List[UUID] = Query(None), test_id: List[UUID] = Query(None), model_alias: List[str] = Query(None), test_alias: List[str] = Query(None), score_type: List[ScoreType] = None, size: int = Query(100), from_index: int = Query(0), # from header token: HTTPAuthorizationCredentials = Depends(auth), ): filter_query, context = build_result_filters( model_instance_id, test_instance_id, model_id, test_id, model_alias, test_alias, score_type, passed, project_id, kg_client, ) if len(filter_query["value"]) > 0: logger.info( f"Searching for ValidationResult with the following query: {filter_query}" ) # note that from_index is not currently supported by KGQuery.resolve query = KGQuery(ValidationResultKG, {"nexus": filter_query}, context) results = query.resolve(kg_client, api="nexus", size=size) else: results = ValidationResultKG.list(kg_client, api="nexus", size=size, from_index=from_index) response = [] for result in results: try: obj = await ValidationResultWithTestAndModel.from_kg_object( result, kg_client, token) except ConsistencyError as err: # todo: count these and report them in the response logger.warning(str(err)) else: response.append(obj) return response
def _query_results(passed, project_id, model_instance_id, test_instance_id, model_id, test_id, model_alias, test_alias, score_type, size, from_index, token): filter_query, context = build_result_filters( model_instance_id, test_instance_id, model_id, test_id, model_alias, test_alias, score_type, passed, project_id, kg_client, ) if len(filter_query["value"]) > 0: logger.info( f"Searching for ValidationResult with the following query: {filter_query}" ) # note that from_index is not currently supported by KGQuery.resolve query = KGQuery(ValidationResultKG, {"nexus": filter_query}, context) results = query.resolve(kg_client, api="nexus", size=size) else: results = ValidationResultKG.list(kg_client, api="nexus", size=size, from_index=from_index) response = [] for result in results: try: obj = ValidationResult.from_kg_object(result, kg_client) except ConsistencyError as err: # todo: count these and report them in the response logger.warning(str(err)) else: response.append(obj) return response