|  |  | @@ -79,15 +79,23 @@ class Code(ComponentBase, ABC): | 
		
	
		
			
			|  |  |  | def _run(self, history, **kwargs): | 
		
	
		
			
			|  |  |  | arguments = {} | 
		
	
		
			
			|  |  |  | for input in self._param.arguments: | 
		
	
		
			
			|  |  |  | assert "@" in input["component_id"], "Each code argument should bind to a specific compontent" | 
		
	
		
			
			|  |  |  | component_id = input["component_id"].split("@")[0] | 
		
	
		
			
			|  |  |  | refered_component_key = input["component_id"].split("@")[1] | 
		
	
		
			
			|  |  |  | refered_component = self._canvas.get_component(component_id)["obj"] | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | for param in refered_component._param.query: | 
		
	
		
			
			|  |  |  | if param["key"] == refered_component_key: | 
		
	
		
			
			|  |  |  | if "value" in param: | 
		
	
		
			
			|  |  |  | arguments[input["name"]] = param["value"] | 
		
	
		
			
			|  |  |  | if "@" in input["component_id"]: | 
		
	
		
			
			|  |  |  | component_id = input["component_id"].split("@")[0] | 
		
	
		
			
			|  |  |  | refered_component_key = input["component_id"].split("@")[1] | 
		
	
		
			
			|  |  |  | refered_component = self._canvas.get_component(component_id)["obj"] | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | for param in refered_component._param.query: | 
		
	
		
			
			|  |  |  | if param["key"] == refered_component_key: | 
		
	
		
			
			|  |  |  | if "value" in param: | 
		
	
		
			
			|  |  |  | arguments[input["name"]] = param["value"] | 
		
	
		
			
			|  |  |  | else: | 
		
	
		
			
			|  |  |  | cpn = self._canvas.get_component(input["component_id"])["obj"] | 
		
	
		
			
			|  |  |  | if cpn.component_name.lower() == "answer": | 
		
	
		
			
			|  |  |  | arguments[input["name"]] = self._canvas.get_history(1)[0]["content"] | 
		
	
		
			
			|  |  |  | continue | 
		
	
		
			
			|  |  |  | _, out = cpn.output(allow_partial=False) | 
		
	
		
			
			|  |  |  | if not out.empty: | 
		
	
		
			
			|  |  |  | arguments[input["name"]] = "\n".join(out["content"]) | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | return self._execute_code( | 
		
	
		
			
			|  |  |  | language=self._param.lang, |