-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathwebdev.py
More file actions
87 lines (70 loc) · 2.16 KB
/
Copy pathwebdev.py
File metadata and controls
87 lines (70 loc) · 2.16 KB
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
from flask import Flask, render_template, request
from runcode import runcode
import os
import requests
import openai
app = Flask(__name__)
openai.api_key = os.getenv("API_KEY")
default_py_code = """
if __name__ == "__main__":
print ("Hello Python World!!")
"""
default_rows = "15"
default_cols = "20"
output = ''
prompt = ''
code = ''
resrun = ''
rescompil = ''
testcases = list()
@app.route("/")
@app.route("/py")
@app.route("/runpy", methods=['POST', 'GET'])
def runpy():
if request.method == 'POST':
global code
code = ''
text = request.form.get('code')
text2 = text.split("\n")
for line in text2:
if line.startswith("/getcode"):
line2 = line.split(" ")
global prompt
prompt = " ".join(line2)
if request.form.get('openai') == 'Get Code' and prompt:
response = openai.Completion.create(
model="text-davinci-003",
prompt=prompt,
max_tokens=1500,
temperature=0.6,
)
global output
output = "\n" + response.choices[0].text
elif request.form.get('coderun') == 'Run':
output = ''
code = request.form['code']
testcase = request.form['testcase']
data, temp = os.pipe()
os.write(temp, bytes(testcase, "utf-8"))
os.close(temp)
run = runcode.RunPyCode(code, data)
global resrun
global rescompil
rescompil, resrun = run.run_py_code()
if not resrun:
resrun = 'No result!'
else:
pass
else:
code = default_py_code
resrun = 'No result!'
rescompil = "No compilation for Python"
return render_template("main.html",
code=code + output,
target="runpy",
resrun=resrun,
rescomp=rescompil, # "No compilation for Python",
rows=default_rows, cols=default_cols,
)
if __name__ == "__main__":
app.run(debug=True)