Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
| from typing import Optional | |
| from huggingface_hub import HfApi | |
| from app.config import HF_TOKEN, API | |
| from app.core.cache import cache_config | |
| from app.core.formatting import LogFormatter | |
| import logging | |
| logger = logging.getLogger(__name__) | |
| class HuggingFaceService: | |
| def __init__(self): | |
| self.api = API | |
| self.token = HF_TOKEN | |
| self.cache_dir = cache_config.models_cache | |
| async def check_authentication(self) -> bool: | |
| """Check if the HF token is valid""" | |
| if not self.token: | |
| return False | |
| try: | |
| logger.info(LogFormatter.info("Checking HF token validity...")) | |
| self.api.get_token_permission() | |
| logger.info(LogFormatter.success("HF token is valid")) | |
| return True | |
| except Exception as e: | |
| logger.error(LogFormatter.error("HF token validation failed", e)) | |
| return False | |
| async def get_user_info(self) -> Optional[dict]: | |
| """Get information about the authenticated user""" | |
| try: | |
| logger.info(LogFormatter.info("Fetching user information...")) | |
| info = self.api.get_token_permission() | |
| logger.info(LogFormatter.success(f"User info retrieved for: {info.get('user', 'Unknown')}")) | |
| return info | |
| except Exception as e: | |
| logger.error(LogFormatter.error("Failed to get user info", e)) | |
| return None | |
| def _log_repo_operation(self, operation: str, repo: str, details: str = None): | |
| """Helper to log repository operations""" | |
| logger.info(LogFormatter.section(f"HF REPOSITORY OPERATION - {operation.upper()}")) | |
| stats = { | |
| "Operation": operation, | |
| "Repository": repo, | |
| } | |
| if details: | |
| stats["Details"] = details | |
| for line in LogFormatter.tree(stats): | |
| logger.info(line) |