| from src.safe_subprocess import run | |
| from pathlib import Path | |
| def eval_script(path: Path): | |
| result = run(["julia", str(path)], timeout_seconds=5) | |
| if result.timeout: | |
| status = "Timeout" | |
| elif result.exit_code == 0: | |
| status = "OK" | |
| # TODO(arjun): I would like this to be reviewed more carefully by John. | |
| elif len(result.stderr) < 1: | |
| status = "Exception" | |
| else: | |
| status = "SyntaxError" | |
| return { | |
| "status": status, | |
| "exit_code": result.exit_code, | |
| "stdout": result.stdout, | |
| "stderr": result.stderr, | |
| } |