Simon Strandgaard
commited on
Commit
·
c434d74
1
Parent(s):
19654e9
Purge old data hourly.
Browse files- app.py +2 -2
- src/plan/app_text2plan.py +11 -1
- src/purge/purge_old_runs.py +2 -2
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
|
7 |
-
|
|
|
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 |
-
|
|
|
|
|
|
|
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}")
|