File size: 1,648 Bytes
ded89f7 398a491 ded89f7 398a491 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
from flask import Flask, render_template, request
from markupsafe import Markup
import os
import glob
from gp1 import run_task # Make sure run_task returns all required data
app = Flask(__name__)
# Helper function to render a grid as HTML using CSS classes
def render_grid(grid):
html = '<div class="grid">'
for row in grid:
html += '<div class="grid-row">'
for cell in row:
html += f'<div class="cell color-{cell}"></div>'
html += '</div>'
html += '</div>'
return Markup(html)
@app.route('/', methods=['GET', 'POST'])
def index():
task_folder = './training/'
task_files = sorted(glob.glob(os.path.join(task_folder, '*.json')))
task_names = [os.path.basename(f) for f in task_files]
result = None
if request.method == 'POST':
selected_task = request.form.get('task')
task_path = os.path.join(task_folder, selected_task)
# run_task should return: best_program, correct, input_grid, target_grid, output_grid
best_program, correct, input_grid, target_grid, output_grid = run_task(task_path)
result = {
"task": selected_task,
"program": best_program,
"success": correct,
"input": input_grid,
"target": target_grid,
"output": output_grid
}
return render_template('index.html', tasks=task_names, result=result, render_grid=render_grid)
import os
port = int(os.environ.get("PORT", 7860))
app.run(host='0.0.0.0', port=port)
if __name__ == '__main__':
import os
port = int(os.environ.get("PORT", 7860))
app.run(host='0.0.0.0', port=port)
|