@@ -183,21 +183,24 @@ async def execute(
183183 async with self ._lock :
184184 if env_vars :
185185 vars_to_set = {** global_env_vars , ** env_vars }
186-
187- # if there is an indent in the code, we need to add the env vars at the beginning of the code
188- lines = code .split ("\n " )
189- indent = 0
190- for i , line in enumerate (lines ):
191- if line .strip () != "" :
192- indent = len (line ) - len (line .lstrip ())
193- break
186+ env_vars_snippet = ""
194187
195188 if self .language == "python" :
196- code = (
197- indent * " "
198- + f"os.environ.set_envs_for_execution({ vars_to_set } )\n "
199- + code
200- )
189+ env_vars_snippet = f"os.environ.set_envs_for_execution({ vars_to_set } )\n "
190+ elif self .language in ["javascript" , "typescript" ]:
191+ env_vars_snippet = "\n " .join ([f"process.env['{ k } '] = '{ v } ';" for k , v in vars_to_set .items ()])
192+ elif self .language == "deno" :
193+ env_vars_snippet = "\n " .join ([f"Deno.env.set('{ k } ', '{ v } ');" for k , v in vars_to_set .items ()])
194+ elif self .language == "r" :
195+ env_vars_snippet = "\n " .join ([f"Sys.setenv('{ k } ' = '{ v } ')" for k , v in vars_to_set .items ()])
196+ elif self .language == "java" :
197+ env_vars_snippet = "\n " .join ([f"System.setProperty('{ k } ', '{ v } ');" for k , v in vars_to_set .items ()])
198+ else :
199+ raise Exception (f"Unsupported language: { self .language } " )
200+
201+ print (f"Setting env vars: { env_vars_snippet } " )
202+ request = self ._get_execute_request (str (uuid .uuid4 ()), env_vars_snippet , False )
203+ await self ._ws .send (request )
201204
202205 if self .language == "typescript" :
203206 logger .info ("Compiling TypeScript: %s" , code )
0 commit comments