Spaces:
				
			
			
	
			
			
					
		Running
		
			on 
			
			CPU Upgrade
	
	
	
			
			
	
	
	
	
		
		
					
		Running
		
			on 
			
			CPU Upgrade
	Schedule Space restart to update list of models
Browse files- app.py +7 -0
 - requirements.txt +1 -1
 - src/hub.py +9 -1
 
    	
        app.py
    CHANGED
    
    | 
         @@ -1,4 +1,5 @@ 
     | 
|
| 1 | 
         
             
            import gradio as gr
         
     | 
| 
         | 
|
| 2 | 
         | 
| 3 | 
         
             
            import src.constants as constants
         
     | 
| 4 | 
         
             
            from src.details import (
         
     | 
| 
         @@ -12,6 +13,7 @@ from src.details import ( 
     | 
|
| 12 | 
         
             
                update_task_description_component,
         
     | 
| 13 | 
         
             
            )
         
     | 
| 14 | 
         
             
            from src.env_impact import plot_env_impact
         
     | 
| 
         | 
|
| 15 | 
         
             
            from src.model_tree import load_model_tree
         
     | 
| 16 | 
         
             
            from src.results import (
         
     | 
| 17 | 
         
             
                clear_results,
         
     | 
| 
         @@ -298,4 +300,9 @@ with gr.Blocks(fill_height=True, fill_width=True) as demo: 
     | 
|
| 298 | 
         
             
                    ],
         
     | 
| 299 | 
         
             
                )
         
     | 
| 300 | 
         | 
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 301 | 
         
             
            demo.launch()
         
     | 
| 
         | 
|
| 1 | 
         
             
            import gradio as gr
         
     | 
| 2 | 
         
            +
            from apscheduler.schedulers.background import BackgroundScheduler
         
     | 
| 3 | 
         | 
| 4 | 
         
             
            import src.constants as constants
         
     | 
| 5 | 
         
             
            from src.details import (
         
     | 
| 
         | 
|
| 13 | 
         
             
                update_task_description_component,
         
     | 
| 14 | 
         
             
            )
         
     | 
| 15 | 
         
             
            from src.env_impact import plot_env_impact
         
     | 
| 16 | 
         
            +
            from src.hub import restart_space
         
     | 
| 17 | 
         
             
            from src.model_tree import load_model_tree
         
     | 
| 18 | 
         
             
            from src.results import (
         
     | 
| 19 | 
         
             
                clear_results,
         
     | 
| 
         | 
|
| 300 | 
         
             
                    ],
         
     | 
| 301 | 
         
             
                )
         
     | 
| 302 | 
         | 
| 303 | 
         
            +
            # Start scheduler
         
     | 
| 304 | 
         
            +
            scheduler = BackgroundScheduler()
         
     | 
| 305 | 
         
            +
            scheduler.add_job(restart_space, "interval", hours=1)  # Restart every 1h
         
     | 
| 306 | 
         
            +
            scheduler.start()
         
     | 
| 307 | 
         
            +
             
     | 
| 308 | 
         
             
            demo.launch()
         
     | 
    	
        requirements.txt
    CHANGED
    
    | 
         @@ -1,2 +1,2 @@ 
     | 
|
| 
         | 
|
| 1 | 
         
             
            plotly
         
     | 
| 2 | 
         
            -
             
     | 
| 
         | 
|
| 1 | 
         
            +
            apscheduler
         
     | 
| 2 | 
         
             
            plotly
         
     | 
| 
         | 
    	
        src/hub.py
    CHANGED
    
    | 
         @@ -1,9 +1,10 @@ 
     | 
|
| 1 | 
         
             
            import asyncio
         
     | 
| 2 | 
         
             
            import io
         
     | 
| 3 | 
         
             
            import json
         
     | 
| 
         | 
|
| 4 | 
         | 
| 5 | 
         
             
            import httpx
         
     | 
| 6 | 
         
            -
            from huggingface_hub import HfFileSystem, ModelCard, hf_hub_url
         
     | 
| 7 | 
         
             
            from huggingface_hub.utils import build_hf_headers
         
     | 
| 8 | 
         | 
| 9 | 
         
             
            import src.constants as constants
         
     | 
| 
         @@ -39,6 +40,7 @@ class Client: 
     | 
|
| 39 | 
         
             
                                return
         
     | 
| 40 | 
         | 
| 41 | 
         | 
| 
         | 
|
| 42 | 
         
             
            client = Client()
         
     | 
| 43 | 
         
             
            fs = HfFileSystem()
         
     | 
| 44 | 
         | 
| 
         @@ -87,3 +89,9 @@ async def list_models(filtering=None): 
     | 
|
| 87 | 
         
             
                if r is None:
         
     | 
| 88 | 
         
             
                    return
         
     | 
| 89 | 
         
             
                return r.json()
         
     | 
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
| 
         | 
|
| 1 | 
         
             
            import asyncio
         
     | 
| 2 | 
         
             
            import io
         
     | 
| 3 | 
         
             
            import json
         
     | 
| 4 | 
         
            +
            import os
         
     | 
| 5 | 
         | 
| 6 | 
         
             
            import httpx
         
     | 
| 7 | 
         
            +
            from huggingface_hub import HfApi, HfFileSystem, ModelCard, hf_hub_url
         
     | 
| 8 | 
         
             
            from huggingface_hub.utils import build_hf_headers
         
     | 
| 9 | 
         | 
| 10 | 
         
             
            import src.constants as constants
         
     | 
| 
         | 
|
| 40 | 
         
             
                                return
         
     | 
| 41 | 
         | 
| 42 | 
         | 
| 43 | 
         
            +
            api = HfApi()
         
     | 
| 44 | 
         
             
            client = Client()
         
     | 
| 45 | 
         
             
            fs = HfFileSystem()
         
     | 
| 46 | 
         | 
| 
         | 
|
| 89 | 
         
             
                if r is None:
         
     | 
| 90 | 
         
             
                    return
         
     | 
| 91 | 
         
             
                return r.json()
         
     | 
| 92 | 
         
            +
             
     | 
| 93 | 
         
            +
             
     | 
| 94 | 
         
            +
            def restart_space():
         
     | 
| 95 | 
         
            +
                space_id = os.getenv("SPACE_ID")
         
     | 
| 96 | 
         
            +
                if space_id:
         
     | 
| 97 | 
         
            +
                    api.restart_space(repo_id=space_id, token=os.getenv("HF_TOKEN"))
         
     |