@@ -370,7 +370,6 @@ def __init__(
370370        super ().__init__ (additional_imports , logger )
371371        try :
372372            import  docker 
373-             from  websocket  import  create_connection 
374373        except  ModuleNotFoundError :
375374            raise  ModuleNotFoundError (
376375                "Please install 'docker' extra to use DockerExecutor: `pip install 'smolagents[docker]'`" 
@@ -444,9 +443,7 @@ def __init__(
444443
445444            # Create new kernel via HTTP 
446445            self .kernel_id  =  _create_kernel_http (f"{ self .base_url }  , self .logger )
447- 
448-             ws_url  =  f"ws://{ host } { port } { self .kernel_id }  
449-             self .ws  =  create_connection (ws_url )
446+             self .ws_url  =  f"ws://{ host } { port } { self .kernel_id }  
450447
451448            self .installed_packages  =  self .install_packages (additional_imports )
452449            self .logger .log (
@@ -458,7 +455,10 @@ def __init__(
458455            raise  RuntimeError (f"Failed to initialize Jupyter kernel: { e }  ) from  e 
459456
460457    def  run_code_raise_errors (self , code : str ) ->  CodeOutput :
461-         return  _websocket_run_code_raise_errors (code , self .ws , self .logger )
458+         from  websocket  import  create_connection 
459+ 
460+         with  closing (create_connection (self .ws_url )) as  ws :
461+             return  _websocket_run_code_raise_errors (code , ws , self .logger )
462462
463463    def  cleanup (self ):
464464        """Clean up the Docker container and resources.""" 
0 commit comments