Simon Strandgaard commited on
Commit
c434d74
·
1 Parent(s): 19654e9

Purge old data hourly.

Browse files
app.py CHANGED
@@ -3,5 +3,5 @@ During development, to mimic the same behavior as on Hugging Face Spaces.
3
  PROMPT> IS_HUGGINGFACE_SPACES=true python app.py
4
  """
5
  if __name__ == "__main__":
6
- from src.plan.app_text2plan import demo_text2plan
7
- demo_text2plan.launch()
 
3
  PROMPT> IS_HUGGINGFACE_SPACES=true python app.py
4
  """
5
  if __name__ == "__main__":
6
+ from src.plan.app_text2plan import run_app_text2plan
7
+ run_app_text2plan()
src/plan/app_text2plan.py CHANGED
@@ -20,6 +20,7 @@ from src.plan.filenames import FilenameEnum
20
  from src.plan.plan_file import PlanFile
21
  from src.plan.speedvsdetail import SpeedVsDetailEnum
22
  from src.prompt.prompt_catalog import PromptCatalog
 
23
  from src.utils.get_env_as_string import get_env_as_string
24
  from src.utils.is_huggingface_spaces import is_huggingface_spaces
25
  from src.utils.time_since_last_modification import time_since_last_modification
@@ -33,16 +34,19 @@ class Config:
33
  use_uuid_as_run_id: bool
34
  visible_open_output_dir_button: bool
35
  allow_only_openrouter_models: bool
 
36
 
37
  CONFIG_LOCAL = Config(
38
  use_uuid_as_run_id=False,
39
  visible_open_output_dir_button=True,
40
  allow_only_openrouter_models=False,
 
41
  )
42
  CONFIG_HUGGINGFACE_SPACES = Config(
43
  use_uuid_as_run_id=True,
44
  visible_open_output_dir_button=False,
45
  allow_only_openrouter_models=True,
 
46
  )
47
 
48
  CONFIG = CONFIG_HUGGINGFACE_SPACES if IS_HUGGINGFACE_SPACES else CONFIG_LOCAL
@@ -481,8 +485,14 @@ with gr.Blocks(title="PlanExe") as demo_text2plan:
481
  outputs=[openrouter_api_key_text, model_radio, speedvsdetail_radio, session_state]
482
  )
483
 
484
- if __name__ == "__main__":
 
 
 
485
  # print("Environment variables Gradio:\n" + get_env_as_string() + "\n\n\n")
486
 
487
  print("Press Ctrl+C to exit.")
488
  demo_text2plan.launch()
 
 
 
 
20
  from src.plan.plan_file import PlanFile
21
  from src.plan.speedvsdetail import SpeedVsDetailEnum
22
  from src.prompt.prompt_catalog import PromptCatalog
23
+ from src.purge.purge_old_runs import start_purge_scheduler
24
  from src.utils.get_env_as_string import get_env_as_string
25
  from src.utils.is_huggingface_spaces import is_huggingface_spaces
26
  from src.utils.time_since_last_modification import time_since_last_modification
 
34
  use_uuid_as_run_id: bool
35
  visible_open_output_dir_button: bool
36
  allow_only_openrouter_models: bool
37
+ enable_purge_old_runs: bool
38
 
39
  CONFIG_LOCAL = Config(
40
  use_uuid_as_run_id=False,
41
  visible_open_output_dir_button=True,
42
  allow_only_openrouter_models=False,
43
+ enable_purge_old_runs=False,
44
  )
45
  CONFIG_HUGGINGFACE_SPACES = Config(
46
  use_uuid_as_run_id=True,
47
  visible_open_output_dir_button=False,
48
  allow_only_openrouter_models=True,
49
+ enable_purge_old_runs=True,
50
  )
51
 
52
  CONFIG = CONFIG_HUGGINGFACE_SPACES if IS_HUGGINGFACE_SPACES else CONFIG_LOCAL
 
485
  outputs=[openrouter_api_key_text, model_radio, speedvsdetail_radio, session_state]
486
  )
487
 
488
+ def run_app_text2plan():
489
+ if CONFIG.enable_purge_old_runs:
490
+ start_purge_scheduler(run_dir=os.path.abspath(RUN_DIR), purge_interval_seconds=60*60, prefix=RUN_ID_PREFIX)
491
+
492
  # print("Environment variables Gradio:\n" + get_env_as_string() + "\n\n\n")
493
 
494
  print("Press Ctrl+C to exit.")
495
  demo_text2plan.launch()
496
+
497
+ if __name__ == "__main__":
498
+ run_app_text2plan()
src/purge/purge_old_runs.py CHANGED
@@ -39,11 +39,11 @@ def purge_old_runs(run_dir: str, max_age_hours: float = 1.0, prefix: str = "myru
39
  except Exception as e:
40
  logger.error(f"Error processing {item} in {run_dir}: {e}")
41
 
42
- def start_purge_scheduler(run_dir: str, purge_interval_seconds: float=3600, prefix: str = "myrun_") -> None:
43
  """
44
  Start the purge scheduler in a background thread.
45
  """
46
- logger.info(f"Starting purge scheduler for {run_dir} every {purge_interval_seconds} seconds...")
47
 
48
  if not os.path.isabs(run_dir):
49
  raise ValueError(f"run_dir must be an absolute path: {run_dir}")
 
39
  except Exception as e:
40
  logger.error(f"Error processing {item} in {run_dir}: {e}")
41
 
42
+ def start_purge_scheduler(run_dir: str, purge_interval_seconds: float = 3600, prefix: str = "myrun_") -> None:
43
  """
44
  Start the purge scheduler in a background thread.
45
  """
46
+ logger.info(f"Starting purge scheduler for {run_dir} every {purge_interval_seconds} seconds. Prefix: {prefix}")
47
 
48
  if not os.path.isabs(run_dir):
49
  raise ValueError(f"run_dir must be an absolute path: {run_dir}")