| 12345678910111213141516171819202122232425262728293031323334353637383940 | 
							- package service
 
- import (
 
- 	"time"
 
- 	"github.com/langgenius/dify-sandbox/internal/core/runner/python"
 
- 	"github.com/langgenius/dify-sandbox/internal/static"
 
- 	"github.com/langgenius/dify-sandbox/internal/types"
 
- )
 
- type RunCodeResponse struct {
 
- 	Stderr string `json:"error"`
 
- 	Stdout string `json:"stdout"`
 
- }
 
- func RunPython3Code(code string) *types.DifySandboxResponse {
 
- 	runner := python.PythonRunner{}
 
- 	stdout, stderr, done, err := runner.Run(code, time.Duration(static.GetCoshubGlobalConfigurations().WorkerTimeout*int(time.Second)), nil)
 
- 	if err != nil {
 
- 		return types.ErrorResponse(-500, err.Error())
 
- 	}
 
- 	stdout_str := ""
 
- 	stderr_str := ""
 
- 	for {
 
- 		select {
 
- 		case <-done:
 
- 			return types.SuccessResponse(&RunCodeResponse{
 
- 				Stdout: stdout_str,
 
- 				Stderr: stderr_str,
 
- 			})
 
- 		case out := <-stdout:
 
- 			stdout_str += string(out)
 
- 		case err := <-stderr:
 
- 			stderr_str += string(err)
 
- 		}
 
- 	}
 
- }
 
 
  |