azizalto commited on
Commit
7acbce5
·
verified ·
1 Parent(s): e66a258

deploy at 2024-08-12 17:38:13.082420

Browse files
Files changed (2) hide show
  1. README.md +7 -2
  2. main.py +32 -0
README.md CHANGED
@@ -4,7 +4,7 @@ emoji: 🐍
4
  colorFrom: green
5
  colorTo: green
6
  sdk: docker
7
- app_file: app.py
8
  pinned: false
9
  ---
10
 
@@ -35,4 +35,9 @@ Open browser and navigate to `http://localhost:5001`
35
 
36
  ## Disclaimer ⚠️
37
 
38
- > Under the hood, `exec()` is used to execute Python code.
 
 
 
 
 
 
4
  colorFrom: green
5
  colorTo: green
6
  sdk: docker
7
+ app_file: main.py
8
  pinned: false
9
  ---
10
 
 
35
 
36
  ## Disclaimer ⚠️
37
 
38
+ > Under the hood, `exec()` is used to execute Python code.
39
+
40
+
41
+ ## Deployment to HF Space
42
+
43
+ - Using [fasthtml-hf](https://github.com/AnswerDotAI/fasthtml-hf?tab=readme-ov-file#quickstart)
main.py ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from fasthtml.common import (
2
+ Main, Div, Form, Input, Code, Pre, fast_app, serve, picolink, MarkdownJS, HighlightJS
3
+ )
4
+ from fasthtml_hf import setup_hf_backup # to deploy to HF spaces
5
+
6
+ from code_runner import execute_code as execute
7
+
8
+ app, rt = fast_app(hdrs=[picolink, MarkdownJS(), HighlightJS()])
9
+ log = []
10
+
11
+
12
+ @app.get("/")
13
+ def pyconsole():
14
+ return Main(
15
+ Div(id="output"),
16
+ Form(
17
+ Input(name="code", placeholder=">>> Type Python code here (and hit enter)"),
18
+ hx_post="/run", hx_target="#output", hx_trigger="submit", id="input_form",
19
+ ),
20
+ cls="container",
21
+ hx_swap="innerHTML show:window:bottom", # automatically scroll to the bottom of the page
22
+ )
23
+
24
+
25
+ @app.post("/run")
26
+ def run_code(data: dict):
27
+ log.append((data["code"], execute(data["code"])))
28
+ return Div(*[Div(Pre(Code(code, klass="python")), Div(output, cls="marked"), Div("---", cls="marked")) for code, output in log])
29
+
30
+
31
+ setup_hf_backup(app)
32
+ serve()