File tree Expand file tree Collapse file tree 1 file changed +29
-0
lines changed
src/codegen/runner/sandbox Expand file tree Collapse file tree 1 file changed +29
-0
lines changed Original file line number Diff line number Diff line change 1+ import logging
2+ import tempfile
3+
4+ from fastapi import FastAPI
5+
6+ from codegen .runner .models .apis import (
7+ RUN_ON_STRING_ENDPOINT ,
8+ GetRunOnStringRequest ,
9+ GetRunOnStringResult ,
10+ )
11+ from codegen .runner .sandbox .executor import SandboxExecutor
12+ from codegen .sdk .codebase .factory .get_session import get_codebase_session
13+ from codegen .sdk .enums import ProgrammingLanguage
14+ from codegen .shared .compilation .string_to_code import create_execute_function_from_codeblock
15+
16+ logger = logging .getLogger (__name__ )
17+ app = FastAPI ()
18+
19+
20+ @app .post (RUN_ON_STRING_ENDPOINT )
21+ async def run_on_string (request : GetRunOnStringRequest ) -> GetRunOnStringResult :
22+ logger .info (f"====[ run_on_string ]====\n > Codemod source: { request .codemod_source } \n > Input: { request .files } \n > Language: { request .language } \n " )
23+ language = ProgrammingLanguage (request .language .upper ())
24+ with get_codebase_session (tmpdir = tempfile .mkdtemp (), files = request .files , programming_language = language ) as codebase :
25+ executor = SandboxExecutor (codebase )
26+ code_to_exec = create_execute_function_from_codeblock (codeblock = request .codemod_source )
27+ result = await executor .execute (code_to_exec )
28+ logger .info (f"Result: { result } " )
29+ return GetRunOnStringResult (result = result )
You can’t perform that action at this time.
0 commit comments