about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAlexander Kabui2021-10-13 07:21:05 +0300
committerBonfaceKilz2021-10-25 14:16:21 +0300
commitdda47e74d38b76e59f10ac184a0394066f086481 (patch)
treeca18620d29b796423766ebf8a3049c4f413628cb
parentfd8650ca108cf61cd16b264e09568df9ad7bf428 (diff)
downloadgenenetwork3-dda47e74d38b76e59f10ac184a0394066f086481.tar.gz
minor modification for emitting data:add namespaces
-rw-r--r--gn3/computations/wgcna.py28
1 files changed, 17 insertions, 11 deletions
diff --git a/gn3/computations/wgcna.py b/gn3/computations/wgcna.py
index d1d6d39..f7463c5 100644
--- a/gn3/computations/wgcna.py
+++ b/gn3/computations/wgcna.py
@@ -6,6 +6,7 @@ import uuid
 import subprocess
 import base64
 
+
 from gn3.settings import TMPDIR
 from gn3.commands import run_cmd
 
@@ -24,22 +25,23 @@ def dump_wgcna_data(request_data: dict):
     return temp_file_path
 
 
-def stream_cmd_output(socket, cmd: str):
+def stream_cmd_output(request_data, cmd: str):
     """function to stream in realtime"""
     # xtodo  syncing and closing /edge cases
 
-    socket.emit("output", {"data", f"calling you script {cmd}"})
-
+    socketio.emit("output", {"data": f"calling you script {cmd}"},
+                  namespace="/", room=request_data["socket_id"])
     results = subprocess.Popen(
         cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True)
     for line in iter(results.stdout.readline, b""):
+
         line = line.decode("utf-8").rstrip()
 
-        socket.emit("output",
-                    {"data": line})
-    # wait for process to complete code
+        socketio.emit("output",
+                      {"data": line}, namespace="/", room=request_data["socket_id"])
 
-    socket.emit("output", {"data": "parsing the output results"})
+    socketio.emit(
+        "output", {"data": "parsing the output results"}, namespace="/", room=request_data["socket_id"])
 
 
 def process_image(image_loc: str) -> bytes:
@@ -64,9 +66,11 @@ def call_wgcna_script(rscript_path: str, request_data: dict):
     generated_file = dump_wgcna_data(request_data)
     cmd = compose_wgcna_cmd(rscript_path, generated_file)
 
+    stream_cmd_output(request_data, cmd)
+
     try:
 
-        run_cmd_results = run_cmd(cmd)
+        # run_cmd_results = run_cmd(cmd)
 
         with open(generated_file, "r") as outputfile:
 
@@ -74,12 +78,14 @@ def call_wgcna_script(rscript_path: str, request_data: dict):
             # json format only supports  unicode string// to get image data reconvert
             output_file_data["output"]["image_data"] = process_image(
                 output_file_data["output"]["imageLoc"]).decode("ascii")
+            output_file_data["output"]["image_data2"] = process_image(
+                output_file_data["output"]["heatMap"]).decode("ascii")
 
-            if run_cmd_results["code"] != 0:
-                return run_cmd_results
+            # if run_cmd_results["code"] != 0:
+            #     return run_cmd_results
             return {
                 "data": output_file_data,
-                **run_cmd_results
+                "output": ""
             }
     except FileNotFoundError:
         # relook  at handling errors gn3