|  |  | @ -143,6 +143,7 @@ class ProcessContainer: | 
			
		
	
		
		
			
				
					
					|  |  |  |     self.sockets: Optional[List[messaging.SubSocket]] = None |  |  |  |     self.sockets: Optional[List[messaging.SubSocket]] = None | 
			
		
	
		
		
			
				
					
					|  |  |  |     self.rc: Optional[ReplayContext] = None |  |  |  |     self.rc: Optional[ReplayContext] = None | 
			
		
	
		
		
			
				
					
					|  |  |  |     self.vipc_server: Optional[VisionIpcServer] = None |  |  |  |     self.vipc_server: Optional[VisionIpcServer] = None | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     self.environ_config: Optional[Dict[str, Any]] = None | 
			
		
	
		
		
			
				
					
					|  |  |  |     self.capture: Optional[ProcessOutputCapture] = None |  |  |  |     self.capture: Optional[ProcessOutputCapture] = None | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |   @property |  |  |  |   @property | 
			
		
	
	
		
		
			
				
					|  |  | @ -157,6 +158,15 @@ class ProcessContainer: | 
			
		
	
		
		
			
				
					
					|  |  |  |   def subs(self) -> List[str]: |  |  |  |   def subs(self) -> List[str]: | 
			
		
	
		
		
			
				
					
					|  |  |  |     return self.cfg.subs |  |  |  |     return self.cfg.subs | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   def _clean_env(self): | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     for k in self.environ_config.keys(): | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       if k in os.environ: | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         del os.environ[k] | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     for k in ["PROC_NAME", "SIMULATION"]: | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       if k in os.environ: | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         del os.environ[k] | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |   def _setup_env(self, params_config: Dict[str, Any], environ_config: Dict[str, Any]): |  |  |  |   def _setup_env(self, params_config: Dict[str, Any], environ_config: Dict[str, Any]): | 
			
		
	
		
		
			
				
					
					|  |  |  |     for k, v in environ_config.items(): |  |  |  |     for k, v in environ_config.items(): | 
			
		
	
		
		
			
				
					
					|  |  |  |       if len(v) != 0: |  |  |  |       if len(v) != 0: | 
			
		
	
	
		
		
			
				
					|  |  | @ -177,6 +187,8 @@ class ProcessContainer: | 
			
		
	
		
		
			
				
					
					|  |  |  |       else: |  |  |  |       else: | 
			
		
	
		
		
			
				
					
					|  |  |  |         params.put(k, v) |  |  |  |         params.put(k, v) | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     self.environ_config = environ_config | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |   def _setup_vision_ipc(self, all_msgs): |  |  |  |   def _setup_vision_ipc(self, all_msgs): | 
			
		
	
		
		
			
				
					
					|  |  |  |     assert len(self.cfg.vision_pubs) != 0 |  |  |  |     assert len(self.cfg.vision_pubs) != 0 | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
	
		
		
			
				
					|  |  | @ -238,6 +250,7 @@ class ProcessContainer: | 
			
		
	
		
		
			
				
					
					|  |  |  |       self.process.stop() |  |  |  |       self.process.stop() | 
			
		
	
		
		
			
				
					
					|  |  |  |       self.rc.close_context() |  |  |  |       self.rc.close_context() | 
			
		
	
		
		
			
				
					
					|  |  |  |       self.prefix.clean_dirs() |  |  |  |       self.prefix.clean_dirs() | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       self._clean_env() | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |   def run_step(self, msg: capnp._DynamicStructReader, frs: Optional[Dict[str, Any]]) -> List[capnp._DynamicStructReader]: |  |  |  |   def run_step(self, msg: capnp._DynamicStructReader, frs: Optional[Dict[str, Any]]) -> List[capnp._DynamicStructReader]: | 
			
		
	
		
		
			
				
					
					|  |  |  |     assert self.rc and self.pm and self.sockets and self.process.proc |  |  |  |     assert self.rc and self.pm and self.sockets and self.process.proc | 
			
		
	
	
		
		
			
				
					|  |  | 
 |