yangzhitao commited on
Commit
b5bc528
·
1 Parent(s): 15462ae

fix: simplify prepare_space function by removing global flag and ensuring data downloads are always executed

Browse files
Files changed (1) hide show
  1. src/prepare.py +10 -12
src/prepare.py CHANGED
@@ -1,4 +1,3 @@
1
- import os
2
  import sys
3
  import typing
4
  from functools import lru_cache
@@ -20,20 +19,13 @@ if sys.version_info < (3, 11):
20
  else:
21
  from tomllib import load as toml_load
22
 
23
- PREPARED_FLAG: bool = os.getenv("NO_DOWNLOAD", 0) == 1
24
-
25
 
 
 
26
  def prepare_space():
27
  """Space initialisation"""
28
-
29
- global PREPARED_FLAG
30
- if not PREPARED_FLAG:
31
- download_results()
32
- download_queue()
33
- PREPARED_FLAG = True
34
-
35
- load_meta_toml()
36
- load_display_toml()
37
 
38
 
39
  def download_results():
@@ -46,6 +38,7 @@ def download_results():
46
  etag_timeout=30,
47
  token=settings.HF_TOKEN.get_secret_value(),
48
  )
 
49
  except Exception as e:
50
  logger.error(f"Error downloading eval queue: {e!s}")
51
  restart_space(settings.REPO_ID)
@@ -62,6 +55,7 @@ def download_queue():
62
  allow_patterns=["leaderboard/*.toml", "leaderboard/**/*.json"],
63
  token=settings.HF_TOKEN.get_secret_value(),
64
  )
 
65
  except Exception as e:
66
  logger.error(f"Error downloading eval queue: {e!s}")
67
  restart_space(settings.REPO_ID)
@@ -69,6 +63,8 @@ def download_queue():
69
 
70
  @lru_cache(maxsize=1)
71
  def load_meta_toml() -> "MetaToml":
 
 
72
  meta_toml_path = Path(settings.EVAL_RESULTS_PATH) / "leaderboard" / "meta.toml"
73
  logger.info(f'Loading meta.toml from: {meta_toml_path.as_posix()!r}')
74
  with meta_toml_path.open("rb") as f:
@@ -81,6 +77,8 @@ def load_meta_toml() -> "MetaToml":
81
 
82
  @lru_cache(maxsize=1)
83
  def load_display_toml() -> "DisplayToml":
 
 
84
  display_toml_path = Path(settings.EVAL_RESULTS_PATH) / "leaderboard" / "display.toml"
85
  logger.info(f'Loading display.toml from: {display_toml_path.as_posix()!r}')
86
  with display_toml_path.open("rb") as f:
 
 
1
  import sys
2
  import typing
3
  from functools import lru_cache
 
19
  else:
20
  from tomllib import load as toml_load
21
 
 
 
22
 
23
+ # Use cache to avoid downloading the same data multiple times
24
+ @lru_cache(maxsize=1)
25
  def prepare_space():
26
  """Space initialisation"""
27
+ download_results()
28
+ download_queue()
 
 
 
 
 
 
 
29
 
30
 
31
  def download_results():
 
38
  etag_timeout=30,
39
  token=settings.HF_TOKEN.get_secret_value(),
40
  )
41
+ logger.info("Downloaded eval queue")
42
  except Exception as e:
43
  logger.error(f"Error downloading eval queue: {e!s}")
44
  restart_space(settings.REPO_ID)
 
55
  allow_patterns=["leaderboard/*.toml", "leaderboard/**/*.json"],
56
  token=settings.HF_TOKEN.get_secret_value(),
57
  )
58
+ logger.info("Downloaded eval results")
59
  except Exception as e:
60
  logger.error(f"Error downloading eval queue: {e!s}")
61
  restart_space(settings.REPO_ID)
 
63
 
64
  @lru_cache(maxsize=1)
65
  def load_meta_toml() -> "MetaToml":
66
+ prepare_space()
67
+
68
  meta_toml_path = Path(settings.EVAL_RESULTS_PATH) / "leaderboard" / "meta.toml"
69
  logger.info(f'Loading meta.toml from: {meta_toml_path.as_posix()!r}')
70
  with meta_toml_path.open("rb") as f:
 
77
 
78
  @lru_cache(maxsize=1)
79
  def load_display_toml() -> "DisplayToml":
80
+ prepare_space()
81
+
82
  display_toml_path = Path(settings.EVAL_RESULTS_PATH) / "leaderboard" / "display.toml"
83
  logger.info(f'Loading display.toml from: {display_toml_path.as_posix()!r}')
84
  with display_toml_path.open("rb") as f: