Spaces:
Running
Running
| """Hugging Face API utilities""" | |
| import re | |
| from typing import Optional | |
| from huggingface_hub import HfApi | |
| from huggingface_hub.errors import RepositoryNotFoundError | |
| from huggingface_hub.utils import validate_repo_id | |
| try: | |
| from huggingface_hub import repo_exists as hf_repo_exists | |
| _use_official_repo_exists = True | |
| except ImportError: | |
| hf_repo_exists = None | |
| _use_official_repo_exists = False | |
| def extract_quantization(filename: str) -> str: | |
| """Extract quantization from GGUF filename""" | |
| match = re.search(r"((?:B?F16)|Q[0-9]+(?:_[0-9]+)?(?:_[A-Z]+)*)", filename, re.IGNORECASE) | |
| return match.group(1) if match else "Unknown" | |
| def check_repo_exists(repo_id: str, api: HfApi) -> bool: | |
| """Check if a Hugging Face repository exists""" | |
| if _use_official_repo_exists and hf_repo_exists: | |
| return hf_repo_exists(repo_id, token=getattr(api, "token", None)) | |
| try: | |
| api.list_repo_files(repo_id) | |
| return True | |
| except RepositoryNotFoundError: | |
| return False | |
| except Exception: | |
| return False | |
| def get_gguf_files_from_repo(repo_id: str, api: HfApi) -> list: | |
| """Get list of .gguf files from a repository""" | |
| try: | |
| return [ | |
| path | |
| for path in api.list_repo_files(repo_id) | |
| if isinstance(path, str) and path.endswith(".gguf") | |
| ] | |
| except Exception: | |
| return [] | |
| def extract_username(user_info: object) -> Optional[str]: | |
| """Extract username from HF user info object""" | |
| if isinstance(user_info, dict): | |
| return user_info.get("name") or user_info.get("username") | |
| return getattr(user_info, "name", None) or getattr(user_info, "username", None) | |