freddyaboulton HF staff commited on
Commit
093e6cb
1 Parent(s): 74a0b08

Update structure

Browse files
Files changed (1) hide show
  1. app.py +27 -20
app.py CHANGED
@@ -8,7 +8,6 @@ import datetime
8
  from apscheduler.schedulers.background import BackgroundScheduler
9
 
10
 
11
-
12
  DB_FILE = "./reviews.db"
13
 
14
  TOKEN = os.environ.get('HUB_TOKEN')
@@ -24,6 +23,8 @@ repo.git_pull()
24
  shutil.copyfile("./data/reviews.db", DB_FILE)
25
 
26
 
 
 
27
  db = sqlite3.connect(DB_FILE)
28
  try:
29
  db.execute("SELECT * FROM reviews").fetchall()
@@ -39,13 +40,11 @@ except sqlite3.OperationalError:
39
  db.close()
40
 
41
 
42
- def backup_db():
43
- shutil.copyfile(DB_FILE, "./data/reviews.db")
44
- db = sqlite3.connect(DB_FILE)
45
- reviews = db.execute("SELECT * FROM reviews").fetchall()
46
- pd.DataFrame(reviews).to_csv("./data/reviews.csv", index=False)
47
- print("updating db")
48
- repo.push_to_hub(blocking=False, commit_message=f"Updating data at {datetime.datetime.now()}")
49
 
50
 
51
  def add_review(name: str, review: int, comments: str):
@@ -53,23 +52,16 @@ def add_review(name: str, review: int, comments: str):
53
  cursor = db.cursor()
54
  cursor.execute("INSERT INTO reviews(name, review, comments) VALUES(?,?,?)", [name, review, comments])
55
  db.commit()
56
- reviews = db.execute("SELECT * FROM reviews ORDER BY id DESC limit 10").fetchall()
57
- total_reviews = db.execute("Select COUNT(id) from reviews").fetchone()[0]
58
  db.close()
59
- return pd.DataFrame(reviews), total_reviews
60
 
61
 
62
  def load_data():
63
  db = sqlite3.connect(DB_FILE)
64
- reviews = db.execute("SELECT * FROM reviews ORDER BY created_at DESC limit 10").fetchall()
65
- total_reviews = db.execute("Select COUNT(id) from reviews").fetchone()[0]
66
  db.close()
67
- return pd.DataFrame(reviews), total_reviews
68
-
69
-
70
- scheduler = BackgroundScheduler()
71
- scheduler.add_job(func=backup_db, trigger="interval", seconds=60)
72
- scheduler.start()
73
 
74
 
75
  with gr.Blocks() as demo:
@@ -80,9 +72,24 @@ with gr.Blocks() as demo:
80
  comments = gr.Textbox(label="Comments", lines=10, placeholder="Do you have any feedback on gradio?")
81
  submit = gr.Button(value="Submit Feedback")
82
  with gr.Column():
83
- data = gr.DataFrame(label="Most recently created 10 rows", headers=["id", "date_created", "name", "review", "comments"])
84
  count = gr.Number(label="Total number of reviews")
85
  submit.click(add_review, [name, review, comments], [data, count])
86
  demo.load(load_data, None, [data, count])
87
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
88
  demo.launch()
 
8
  from apscheduler.schedulers.background import BackgroundScheduler
9
 
10
 
 
11
  DB_FILE = "./reviews.db"
12
 
13
  TOKEN = os.environ.get('HUB_TOKEN')
 
23
  shutil.copyfile("./data/reviews.db", DB_FILE)
24
 
25
 
26
+ # Create table if it doesn't already exist
27
+
28
  db = sqlite3.connect(DB_FILE)
29
  try:
30
  db.execute("SELECT * FROM reviews").fetchall()
 
40
  db.close()
41
 
42
 
43
+ def get_latest_reviews(db: sqlite3.Connection):
44
+ reviews = db.execute("SELECT * FROM reviews ORDER BY id DESC limit 10").fetchall()
45
+ total_reviews = db.execute("Select COUNT(id) from reviews").fetchone()[0]
46
+ reviews = pd.DataFrame(reviews, columns=["id", "date_created", "name", "review", "comments"])
47
+ return reviews, total_reviews
 
 
48
 
49
 
50
  def add_review(name: str, review: int, comments: str):
 
52
  cursor = db.cursor()
53
  cursor.execute("INSERT INTO reviews(name, review, comments) VALUES(?,?,?)", [name, review, comments])
54
  db.commit()
55
+ reviews, total_reviews = get_latest_reviews(db)
 
56
  db.close()
57
+ return reviews, total_reviews
58
 
59
 
60
  def load_data():
61
  db = sqlite3.connect(DB_FILE)
62
+ reviews, total_reviews = get_latest_reviews(db)
 
63
  db.close()
64
+ return reviews, total_reviews
 
 
 
 
 
65
 
66
 
67
  with gr.Blocks() as demo:
 
72
  comments = gr.Textbox(label="Comments", lines=10, placeholder="Do you have any feedback on gradio?")
73
  submit = gr.Button(value="Submit Feedback")
74
  with gr.Column():
75
+ data = gr.Dataframe(label="Most recently created 10 rows")
76
  count = gr.Number(label="Total number of reviews")
77
  submit.click(add_review, [name, review, comments], [data, count])
78
  demo.load(load_data, None, [data, count])
79
 
80
+
81
+ def backup_db():
82
+ shutil.copyfile(DB_FILE, "./data/reviews.db")
83
+ db = sqlite3.connect(DB_FILE)
84
+ reviews = db.execute("SELECT * FROM reviews").fetchall()
85
+ pd.DataFrame(reviews).to_csv("./data/reviews.csv", index=False)
86
+ print("updating db")
87
+ repo.push_to_hub(blocking=False, commit_message=f"Updating data at {datetime.datetime.now()}")
88
+
89
+
90
+ scheduler = BackgroundScheduler()
91
+ scheduler.add_job(func=backup_db, trigger="interval", seconds=60)
92
+ scheduler.start()
93
+
94
+
95
  demo.launch()