lhoestq HF staff commited on
Commit
4c1f027
·
1 Parent(s): 33da8e3

use persistent storage

Browse files
Files changed (1) hide show
  1. app.py +12 -4
app.py CHANGED
@@ -19,7 +19,9 @@ PAGE_SIZE = 5
19
  NUM_TRENDING_DATASETS = 10
20
  NUM_USER_DATASETS = 10
21
  SESSIONS_DIR = "s"
22
- URL = "https://huggingface.co/spaces/lhoestq/dataset-spreadsheets"
 
 
23
  css = """
24
  .transparent-dropdown, .transparent-dropdown .container .wrap, .transparent-accordion {
25
  background: var(--body-background-fill);
@@ -56,7 +58,6 @@ def setup_edits(con: Connection, dataset: str, pattern: str) -> None:
56
  "WITH edits_per_rowid AS (SELECT * FROM (SELECT unnest(range(max(rowid) + 1)) AS rowid FROM edits) LEFT JOIN edits USING (rowid) ORDER BY rowid) "
57
  f"SELECT {', '.join('ifnull(edits_per_rowid.' + col + ', dataset.' + col + ') AS ' + col for col in columns)} FROM dataset POSITIONAL JOIN edits_per_rowid"
58
  )
59
- gr.set_static_paths(paths=[SESSIONS_DIR + "/"])
60
 
61
  with gr.Blocks(css=css) as demo:
62
  session_state = gr.BrowserState()
@@ -94,7 +95,6 @@ with gr.Blocks(css=css) as demo:
94
  pattern = ([loading_code["arguments"]["splits"][split] for loading_code in loading_codes if loading_code["config_name"] == subset] or [None])[0]
95
  if session and dataset and subset and split and pattern:
96
  duckdb_file = session + ".duckdb"
97
- os.makedirs(SESSIONS_DIR, exist_ok=True)
98
  con = duckdb.connect(os.path.join(SESSIONS_DIR, duckdb_file))
99
  setup_edits(con, dataset, pattern)
100
  # Uncomment to have one edit for testing
@@ -176,7 +176,6 @@ with gr.Blocks(css=css) as demo:
176
  pattern = ([loading_code["arguments"]["splits"][split] for loading_code in loading_codes if loading_code["config_name"] == subset] or [None])[0]
177
  if session and dataset and subset and split and pattern:
178
  duckdb_file = session + ".duckdb"
179
- os.makedirs(SESSIONS_DIR, exist_ok=True)
180
  con = duckdb.connect(os.path.join(SESSIONS_DIR, duckdb_file))
181
  setup_edits(con, dataset, pattern)
182
  empty_dataset_tbl = con.sql("SELECT * EXCLUDE (rowid) FROM edits LIMIT 0;")
@@ -189,4 +188,13 @@ with gr.Blocks(css=css) as demo:
189
 
190
 
191
  if __name__ == "__main__":
 
 
 
 
 
 
 
 
 
192
  demo.launch()
 
19
  NUM_TRENDING_DATASETS = 10
20
  NUM_USER_DATASETS = 10
21
  SESSIONS_DIR = "s"
22
+ SESSION_DIR_SPACES_SYMLINK = os.path.join("/data", SESSIONS_DIR)
23
+ SPACE_REPO_NAME = os.getenv("SPACE_REPO_NAME")
24
+ URL = f"https://huggingface.co/spaces/{SPACE_REPO_NAME}" if SPACE_REPO_NAME else "http://127.0.0.1:7870"
25
  css = """
26
  .transparent-dropdown, .transparent-dropdown .container .wrap, .transparent-accordion {
27
  background: var(--body-background-fill);
 
58
  "WITH edits_per_rowid AS (SELECT * FROM (SELECT unnest(range(max(rowid) + 1)) AS rowid FROM edits) LEFT JOIN edits USING (rowid) ORDER BY rowid) "
59
  f"SELECT {', '.join('ifnull(edits_per_rowid.' + col + ', dataset.' + col + ') AS ' + col for col in columns)} FROM dataset POSITIONAL JOIN edits_per_rowid"
60
  )
 
61
 
62
  with gr.Blocks(css=css) as demo:
63
  session_state = gr.BrowserState()
 
95
  pattern = ([loading_code["arguments"]["splits"][split] for loading_code in loading_codes if loading_code["config_name"] == subset] or [None])[0]
96
  if session and dataset and subset and split and pattern:
97
  duckdb_file = session + ".duckdb"
 
98
  con = duckdb.connect(os.path.join(SESSIONS_DIR, duckdb_file))
99
  setup_edits(con, dataset, pattern)
100
  # Uncomment to have one edit for testing
 
176
  pattern = ([loading_code["arguments"]["splits"][split] for loading_code in loading_codes if loading_code["config_name"] == subset] or [None])[0]
177
  if session and dataset and subset and split and pattern:
178
  duckdb_file = session + ".duckdb"
 
179
  con = duckdb.connect(os.path.join(SESSIONS_DIR, duckdb_file))
180
  setup_edits(con, dataset, pattern)
181
  empty_dataset_tbl = con.sql("SELECT * EXCLUDE (rowid) FROM edits LIMIT 0;")
 
188
 
189
 
190
  if __name__ == "__main__":
191
+ if SPACE_REPO_NAME:
192
+ os.makedirs(SESSION_DIR_SPACES_SYMLINK, exist_ok=True)
193
+ try:
194
+ os.symlink(SESSION_DIR_SPACES_SYMLINK, SESSIONS_DIR, target_is_directory=True)
195
+ except FileExistsError:
196
+ pass
197
+ else:
198
+ os.makedirs(SESSIONS_DIR, exist_ok=True)
199
+ gr.set_static_paths(paths=[SESSIONS_DIR])
200
  demo.launch()