|
@@ -83,7 +83,6 @@ def conversion_service(query_results, ctx, part, eval_part, service_configuratio
|
|
|
return query_results, ctx, part, eval_part
|
|
|
|
|
|
|
|
|
-
|
|
|
def example_service(query_results, ctx, part, eval_part, service_configuration):
|
|
|
""""""
|
|
|
logging.debug(f"{query_results=}")
|
|
@@ -104,3 +103,32 @@ def example_service(query_results, ctx, part, eval_part, service_configuration):
|
|
|
for outlier in outliers:
|
|
|
query_results.append(eval_part.merge({part.var: Literal(outlier.iri), rdflib.term.Variable(part.var + "_value"): Literal(outlier.value)}))
|
|
|
return query_results, ctx, part, eval_part
|
|
|
+
|
|
|
+
|
|
|
+# TODO maybe return a 'cell' type
|
|
|
+def cell_service(query_results, ctx, part, eval_part, service_configuration):
|
|
|
+ """"""
|
|
|
+ logging.debug(f"{query_results=}")
|
|
|
+ logging.debug(f"{ctx=}")
|
|
|
+ logging.debug(f"{part=}")
|
|
|
+ logging.debug(f"{eval_part=}")
|
|
|
+
|
|
|
+ file_name = str(_eval(part.expr.expr[0], eval_part.forget(ctx, _except=part.expr._vars)))
|
|
|
+ row = str(_eval(part.expr.expr[1], eval_part.forget(ctx, _except=part.expr._vars)))
|
|
|
+ column = str(_eval(part.expr.expr[2], eval_part.forget(ctx, _except=part.expr._vars)))
|
|
|
+
|
|
|
+ # TODO Should probably grab some setting from the KG, like header etc, maybe do that in query
|
|
|
+ logging.info(f"Looking for cell {row}:{column} in '{file_name}'.")
|
|
|
+ try:
|
|
|
+ df = pd.read_csv(file_name, index_col=None, header=None)
|
|
|
+ cell_value = df.iat[int(row), int(column)]
|
|
|
+ query_results.append(eval_part.merge({
|
|
|
+ part.var: Literal(cell_value),
|
|
|
+ rdflib.term.Variable(part.var + "_value"): Literal(cell_value)
|
|
|
+ }))
|
|
|
+ logging.debug(f"{cell_value=}")
|
|
|
+ except:
|
|
|
+ # TODO Expand error info
|
|
|
+ logging.error(f"Error.")
|
|
|
+
|
|
|
+ return query_results, ctx, part, eval_part
|