123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- from typing import Optional
- import gradio as gr
- def extension__tts_generation_webui():
- scan_cache_ui()
- return {
- "package_name": "extension_huggingface_cache_manager",
- "name": "Huggingface Cache Manager",
- "version": "0.0.1",
- "requirements": "git+https://github.com/rsxdalv/extension_huggingface_cache_manager@main",
- "description": "Huggingface Cache Manager allows managing the Huggingface cache.",
- "extension_type": "interface",
- "extension_class": "tools",
- "author": "rsxdalv",
- "extension_author": "rsxdalv",
- "license": "MIT",
- "website": "https://github.com/rsxdalv/extension_huggingface_cache_manager",
- "extension_website": "https://github.com/rsxdalv/extension_huggingface_cache_manager",
- "extension_platform_version": "0.0.1",
- }
- from huggingface_hub import scan_cache_dir, HFCacheInfo
- from extensions.builtin.extension_huggingface_cache_manager.scan_cache import (
- get_headers_quiet,
- get_rows_quiet,
- get_headers_verbose,
- get_rows_verbose,
- get_headers_json,
- get_rows_json,
- render_as_markdown,
- )
- hf_cache_info: Optional[HFCacheInfo] = None
- def scan_cache():
- global hf_cache_info
- hf_cache_info = scan_cache_dir()
- table = render_as_markdown(
- # get_rows_quiet(hf_cache_info), get_headers_quiet()
- get_rows_verbose(hf_cache_info), get_headers_verbose()
- )
- return table
- def scan_cache_json():
- global hf_cache_info
- hf_cache_info = scan_cache_dir()
- import json
- headers = get_headers_json()
- data = {
- "headers": headers,
- "rows": [
- {
- header: row[i]
- for i, header in enumerate(headers)
- }
- for row in get_rows_json(hf_cache_info)
- ]
- }
- return json.dumps(data)
- def delete_revisions(revision_id):
- global hf_cache_info
- if hf_cache_info is None:
- hf_cache_info = scan_cache_dir()
- strategy = hf_cache_info.delete_revisions(revision_id)
- strategy.execute()
- def scan_cache_ui():
- gr.Markdown("Scan the Huggingface cache directory and print the results.")
- scan_cache_button = gr.Button("Scan cache", variant="primary")
- cache_table = gr.Markdown("Press Scan cache to load the list")
- scan_cache_button.click(
- fn=scan_cache,
- outputs=[cache_table],
- api_name="scan_huggingface_cache",
- )
- scan_cache_json_api = gr.JSON(visible=False)
- scan_cache_button_api = gr.Button("API_SCAN_CACHE", visible=False)
- scan_cache_button_api.click(
- fn=scan_cache_json,
- outputs=[scan_cache_json_api],
- api_name="scan_huggingface_cache_api",
- )
- gr.Markdown("Delete revisions")
- delete_revision_id = gr.Dropdown(
- label="Revision ID",
- choices=[""],
- value="",
- show_label=True,
- interactive=True,
- )
- refresh_revision_id_button = gr.Button("Refresh", variant="secondary")
- def refresh_revision_id_button_fn():
- global hf_cache_info
- if hf_cache_info is None:
- hf_cache_info = scan_cache_dir()
- revision_ids = [
- revision.commit_hash
- for repo in hf_cache_info.repos
- for revision in repo.revisions
- ]
- return gr.Dropdown(choices=revision_ids)
-
- refresh_revision_id_button.click(
- fn=refresh_revision_id_button_fn,
- outputs=[delete_revision_id],
- api_name="refresh_huggingface_cache_revisions",
- )
- delete_button = gr.Button("Delete", variant="stop")
- delete_button.click(
- fn=delete_revisions,
- # inputs=[cache_table],
- inputs=[delete_revision_id],
- api_name="delete_huggingface_cache_revisions",
- )
- if __name__ == "__main__":
- if "demo" in locals():
- demo.close()
- with gr.Blocks() as demo:
- with gr.Tab("Scan Cache"):
- scan_cache_ui()
- demo.queue().launch(
- server_port=7770,
- )
|