1+ """An Enterprise Gateway client."""
12import logging
23import os
34import queue as queue
@@ -29,12 +30,14 @@ class GatewayClient:
2930 KERNEL_LAUNCH_TIMEOUT = os .getenv ("KERNEL_LAUNCH_TIMEOUT" , "40" )
3031
3132 def __init__ (self , host = DEFAULT_GATEWAY_HOST ):
33+ """Initialize the client."""
3234 self .http_api_endpoint = f"http://{ host } /api/kernels"
3335 self .ws_api_endpoint = f"ws://{ host } /api/kernels"
3436 self .log = logging .getLogger ("GatewayClient" )
3537 self .log .setLevel (log_level )
3638
3739 def start_kernel (self , kernelspec_name , username = DEFAULT_USERNAME , timeout = REQUEST_TIMEOUT ):
40+ """Start a kernel."""
3841 self .log .info (f"Starting a { kernelspec_name } kernel ...." )
3942
4043 json_data = {
@@ -66,6 +69,7 @@ def start_kernel(self, kernelspec_name, username=DEFAULT_USERNAME, timeout=REQUE
6669 )
6770
6871 def shutdown_kernel (self , kernel ):
72+ """Shut down a kernel."""
6973 self .log .info (f"Shutting down kernel : { kernel .kernel_id } ...." )
7074
7175 if not kernel :
@@ -83,6 +87,7 @@ def shutdown_kernel(self, kernel):
8387
8488
8589class KernelClient :
90+ """A kernel client class."""
8691
8792 DEAD_MSG_ID = "deadbeefdeadbeefdeadbeefdeadbeef"
8893 POST_IDLE_TIMEOUT = 0.5
@@ -91,6 +96,7 @@ class KernelClient:
9196 def __init__ (
9297 self , http_api_endpoint , ws_api_endpoint , kernel_id , timeout = REQUEST_TIMEOUT , logger = None
9398 ):
99+ """Initialize the client."""
94100 self .shutting_down = False
95101 self .restarting = False
96102 self .http_api_endpoint = http_api_endpoint
@@ -113,6 +119,7 @@ def __init__(
113119 self .interrupt_thread = None
114120
115121 def shutdown (self ):
122+ """Shut down the client."""
116123 # Terminate thread, close socket and clear queues.
117124 self .shutting_down = True
118125
@@ -204,6 +211,7 @@ def execute(self, code, timeout=REQUEST_TIMEOUT):
204211 return "" .join (response )
205212
206213 def interrupt (self ):
214+ """Interrupt the kernel."""
207215 url = "{}/{}" .format (self .kernel_http_api_endpoint , "interrupt" )
208216 response = requests .post (url )
209217 if response .status_code == 204 :
@@ -217,6 +225,7 @@ def interrupt(self):
217225 )
218226
219227 def restart (self , timeout = REQUEST_TIMEOUT ):
228+ """Restart the kernel."""
220229 self .restarting = True
221230 self .kernel_socket .close ()
222231 self .kernel_socket = None
@@ -238,6 +247,7 @@ def restart(self, timeout=REQUEST_TIMEOUT):
238247 )
239248
240249 def get_state (self ):
250+ """Get the state of the client."""
241251 url = f"{ self .kernel_http_api_endpoint } "
242252 response = requests .get (url )
243253 if response .status_code == 200 :
@@ -252,14 +262,17 @@ def get_state(self):
252262 )
253263
254264 def start_interrupt_thread (self , wait_time = DEFAULT_INTERRUPT_WAIT ):
265+ """Start the interrupt thread."""
255266 self .interrupt_thread = Thread (target = self .perform_interrupt , args = (wait_time ,))
256267 self .interrupt_thread .start ()
257268
258269 def perform_interrupt (self , wait_time ):
270+ """Perform an interrupt on the client."""
259271 time .sleep (wait_time ) # Allow parent to start executing cell to interrupt
260272 self .interrupt ()
261273
262274 def terminate_interrupt_thread (self ):
275+ """Terminate the interrupt thread."""
263276 if self .interrupt_thread :
264277 self .interrupt_thread .join ()
265278 self .interrupt_thread = None
0 commit comments