77import time
88
99import asyncio
10- import json
1110import threading
1211
1312from queue import Queue
4746app = Flask (__name__ )
4847CORS (app )
4948
49+
5050def start_kernel_manager ():
5151 global kernel_manager_process
5252
@@ -62,9 +62,11 @@ def start_kernel_manager():
6262 with open (os .path .join (config .KERNEL_PID_DIR , "%d.pid" % kernel_manager_process .pid ), "w" ) as p :
6363 p .write ("kernel_manager" )
6464
65+
6566def cleanup_kernel_program ():
6667 kernel_manager .cleanup_spawned_processes ()
6768
69+
6870async def start_snakemq ():
6971 global messaging
7072
@@ -77,11 +79,11 @@ def on_recv(conn, ident, message):
7779 if message ["value" ] == "ready" :
7880 logger .debug ("Kernel is ready." )
7981 result_queue .put ({
80- "value" :"Kernel is ready." ,
81- "type" : "message "
82+ "value" : "Kernel is ready." ,
83+ "type" : "message_status "
8284 })
8385
84- elif message ["type" ] in ["message" , "message_raw" , "image/png" , "image/jpeg" ]:
86+ elif message ["type" ] in ["message" , "message_raw" , "message_error" , " image/png" , "image/jpeg" ]:
8587 # TODO: 1:1 kernel <> channel mapping
8688 logger .debug ("%s of type %s" % (message ["value" ], message ["type" ]))
8789
@@ -97,8 +99,9 @@ def send_queued_messages():
9799 while True :
98100 if send_queue .qsize () > 0 :
99101 message = send_queue .get ()
100- utils .send_json (messaging ,
101- {"type" : "execute" , "value" : message ["command" ]},
102+ utils .send_json (
103+ messaging ,
104+ {"type" : "execute" , "value" : message ["command" ]},
102105 config .IDENT_KERNEL_MANAGER
103106 )
104107 time .sleep (0.1 )
@@ -117,7 +120,7 @@ async def async_link_loop():
117120
118121@app .route ("/api" , methods = ["POST" , "GET" ])
119122def handle_request ():
120-
123+
121124 if request .method == "GET" :
122125 # Handle GET requests by sending everything that's in the receive_queue
123126 results = [result_queue .get () for _ in range (result_queue .qsize ())]
@@ -128,7 +131,8 @@ def handle_request():
128131 send_queue .put (data )
129132
130133 return jsonify ({"result" : "success" })
131-
134+
135+
132136@app .route ("/restart" , methods = ["POST" ])
133137def handle_restart ():
134138
@@ -152,9 +156,6 @@ async def main():
152156def run_flask_app ():
153157 app .run (host = "0.0.0.0" , port = APP_PORT )
154158
159+
155160if __name__ == "__main__" :
156161 asyncio .run (main ())
157-
158-
159-
160-
0 commit comments