| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- import importlib.util
- import os
- import subprocess
- import sys
- from functools import lru_cache
- from pathlib import Path
- from typing import Iterable
- import gradio as gr
- from gradio.themes.base import Base
- from gradio.themes.utils import colors, fonts, sizes
- GIT = (
- (Path(os.environ.get("GIT_HOME", "")) / "git").resolve()
- if sys.platform == "win32"
- else "git"
- )
- GIT = str(GIT)
- def is_module_installed(module_name: str) -> bool:
- spec = importlib.util.find_spec(module_name)
- return spec is not None
- @lru_cache()
- def commit_hash():
- try:
- return subprocess.check_output(
- [GIT, "log", "-1", "--format='%h %s'"], shell=False, encoding="utf8"
- ).strip()
- except Exception:
- return "<none>"
- def versions_html():
- import torch
- python_version = ".".join([str(x) for x in sys.version_info[0:3]])
- commit = commit_hash()
- hash = commit.strip("'").split(" ")[0]
- return f"""
- version: <a href="https://github.com/fishaudio/fish-speech/commit/{hash}">{hash}</a>
-  • 
- python: <span title="{sys.version}">{python_version}</span>
-  • 
- torch: {getattr(torch, '__long_version__',torch.__version__)}
-  • 
- gradio: {gr.__version__}
-  • 
- author: <a href="https://github.com/fishaudio">fishaudio</a>
- """
- def version_check(commit):
- try:
- import requests
- commits = requests.get(
- "https://api.github.com/repos/fishaudio/fish-speech/branches/main"
- ).json()
- if commit != "<none>" and commits["commit"]["sha"] != commit:
- print("--------------------------------------------------------")
- print("| You are not up to date with the most recent release. |")
- print("| Consider running `git pull` to update. |")
- print("--------------------------------------------------------")
- elif commits["commit"]["sha"] == commit:
- print("You are up to date with the most recent release.")
- else:
- print("Not a git clone, can't perform version check.")
- except Exception as e:
- print("version check failed", e)
- class Seafoam(Base):
- def __init__(
- self,
- *,
- primary_hue: colors.Color | str = colors.emerald,
- secondary_hue: colors.Color | str = colors.blue,
- neutral_hue: colors.Color | str = colors.blue,
- spacing_size: sizes.Size | str = sizes.spacing_md,
- radius_size: sizes.Size | str = sizes.radius_md,
- text_size: sizes.Size | str = sizes.text_lg,
- font: fonts.Font | str | Iterable[fonts.Font | str] = (
- fonts.GoogleFont("Quicksand"),
- "ui-sans-serif",
- "sans-serif",
- ),
- font_mono: fonts.Font | str | Iterable[fonts.Font | str] = (
- fonts.GoogleFont("IBM Plex Mono"),
- "ui-monospace",
- "monospace",
- ),
- ):
- super().__init__(
- primary_hue=primary_hue,
- secondary_hue=secondary_hue,
- neutral_hue=neutral_hue,
- spacing_size=spacing_size,
- radius_size=radius_size,
- text_size=text_size,
- font=font,
- font_mono=font_mono,
- )
- super().set(
- button_primary_background_fill="linear-gradient(90deg, *primary_300, *secondary_400)",
- button_primary_background_fill_hover="linear-gradient(90deg, *primary_200, *secondary_300)",
- button_primary_text_color="white",
- button_primary_background_fill_dark="linear-gradient(90deg, *primary_600, *secondary_800)",
- slider_color="*secondary_300",
- slider_color_dark="*secondary_600",
- block_title_text_weight="600",
- block_border_width="3px",
- block_shadow="*shadow_drop_lg",
- # button_shadow="*shadow_drop_lg",
- button_small_padding="0px",
- button_large_padding="3px",
- )
|