Spaces:
Sleeping
Sleeping
| #!/usr/bin/env python | |
| # -*- coding: utf-8 -*- | |
| import falcon | |
| from engine import evaluate_solution | |
| import logging | |
| class RootResource: | |
| def on_get(self, request, response): | |
| response.text = 'HumanEval for Solidity Server' | |
| def on_post(self, request, response): | |
| payload = request.media | |
| if 'task_id' not in payload or 'solution' not in payload: | |
| response.status = falcon.HTTP_400 | |
| response.media = { | |
| 'error': 'task_id or solution are missing', | |
| } | |
| return | |
| task_id = payload['task_id'] | |
| solution = payload['solution'] | |
| try: | |
| passed, output = evaluate_solution(task_id, solution) | |
| response.media = { | |
| 'passed': passed, | |
| 'output': output, | |
| } | |
| except FileNotFoundError: | |
| response.status = falcon.HTTP_404 | |
| response.media = {'error': 'Task not found'} | |
| except Exception: | |
| response.status = falcon.HTTP_500 | |
| response.media = {'error': 'Internal server error'} | |