sidphbot commited on
Commit
27a82f7
1 Parent(s): 3dd36e2

stream streamlit stdout

Browse files
Files changed (1) hide show
  1. app.py +31 -6
app.py CHANGED
@@ -4,8 +4,35 @@ import numpy as np
4
 
5
  from src.Surveyor import Surveyor
6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7
  def run_survey(surveyor, research_keywords, max_search, num_papers):
8
- zip_file_name, survey_file_name = surveyor.survey(research_keywords,
 
9
  max_search=max_search,
10
  num_papers=num_papers
11
  )
@@ -28,15 +55,13 @@ def run_survey(surveyor, research_keywords, max_search, num_papers):
28
 
29
 
30
  def survey_space(surveyor):
31
-
32
- st.title('Automated Survey generation from research keywords - Auto-Research V0.1')
33
-
34
  form = st.sidebar.form(key='survey_form')
35
  research_keywords = form.text_input("What would you like to research in today?")
36
  max_search = form.number_input("num_papers_to_search", help="maximium number of papers to glance through - defaults to 20",
37
- min_value=1, max_value=60, value=20, step=1, key='max_search')
38
  num_papers = form.number_input("num_papers_to_select", help="maximium number of papers to select and analyse - defaults to 8",
39
- min_value=1, max_value=25, value=8, step=1, key='num_papers')
40
  submit = form.form_submit_button('Submit')
41
 
42
  if submit:
 
4
 
5
  from src.Surveyor import Surveyor
6
 
7
+ import contextlib
8
+ from functools import wraps
9
+ from io import StringIO
10
+
11
+ def capture_output(func):
12
+ """Capture output from running a function and write using streamlit."""
13
+
14
+ @wraps(func)
15
+ def wrapper(*args, **kwargs):
16
+ # Redirect output to string buffers
17
+ stdout, stderr = StringIO(), StringIO()
18
+ try:
19
+ with contextlib.redirect_stdout(stdout), contextlib.redirect_stderr(stderr):
20
+ return func(*args, **kwargs)
21
+ except Exception as err:
22
+ st.write(f"Failure while executing: {err}")
23
+ finally:
24
+ if _stdout := stdout.getvalue():
25
+ st.write("Execution stdout:")
26
+ st.code(_stdout)
27
+ if _stderr := stderr.getvalue():
28
+ st.write("Execution stderr:")
29
+ st.code(_stderr)
30
+
31
+ return wrapper
32
+
33
  def run_survey(surveyor, research_keywords, max_search, num_papers):
34
+ survey_fn = capture_output(surveyor.survey)
35
+ zip_file_name, survey_file_name = survey_fn(research_keywords,
36
  max_search=max_search,
37
  num_papers=num_papers
38
  )
 
55
 
56
 
57
  def survey_space(surveyor):
58
+ st.sidebar.title('Auto-Research V0.1 - Automated Survey generation from research keywords')
 
 
59
  form = st.sidebar.form(key='survey_form')
60
  research_keywords = form.text_input("What would you like to research in today?")
61
  max_search = form.number_input("num_papers_to_search", help="maximium number of papers to glance through - defaults to 20",
62
+ min_value=1, max_value=60, value=10, step=1, key='max_search')
63
  num_papers = form.number_input("num_papers_to_select", help="maximium number of papers to select and analyse - defaults to 8",
64
+ min_value=1, max_value=25, value=2, step=1, key='num_papers')
65
  submit = form.form_submit_button('Submit')
66
 
67
  if submit: