main.go 686 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. package main
  2. import (
  3. "fmt"
  4. "time"
  5. "github.com/langgenius/dify-sandbox/internal/core/runner/python"
  6. "github.com/langgenius/dify-sandbox/internal/utils/log"
  7. )
  8. const python_script = `def foo(a, b):
  9. return a + b
  10. print(foo(1, 2))
  11. import json
  12. import os
  13. import time
  14. print(json.dumps({"a": 1, "b": 2}), flush=True)
  15. time.sleep(3)
  16. `
  17. func main() {
  18. runner := python.PythonRunner{}
  19. stdout, stderr, done, err := runner.Run(python_script, time.Second*10, nil)
  20. if err != nil {
  21. log.Panic("failed to run python script: %v", err)
  22. }
  23. for {
  24. select {
  25. case <-done:
  26. return
  27. case out := <-stdout:
  28. fmt.Println(string(out))
  29. case err := <-stderr:
  30. fmt.Println(string(err))
  31. }
  32. }
  33. }