| from huggingface_hub import get_hf_file_metadata, hf_hub_url, hf_hub_download, scan_cache_dir, whoami, list_models | |
| def get_my_model_names(token): | |
| try: | |
| author = whoami(token=token) | |
| model_infos = list_models(author=author["name"], use_auth_token=token) | |
| return [model.modelId for model in model_infos], None | |
| except Exception as e: | |
| return [], e | |
| def download_file(repo_id: str, filename: str, token: str): | |
| """Download a file from a repo on the Hugging Face Hub. | |
| Returns: | |
| file_path (:obj:`str`): The path to the downloaded file. | |
| revision (:obj:`str`): The commit hash of the file. | |
| """ | |
| md = get_hf_file_metadata(hf_hub_url(repo_id=repo_id, filename=filename), token=token) | |
| revision = md.commit_hash | |
| file_path = hf_hub_download(repo_id=repo_id, filename=filename, revision=revision, token=token) | |
| return file_path, revision | |
| def delete_file(revision: str): | |
| """Delete a file from local cache. | |
| Args: | |
| revision (:obj:`str`): The commit hash of the file. | |
| Returns: | |
| None | |
| """ | |
| scan_cache_dir().delete_revisions(revision).execute() | |
| def get_pr_url(api, repo_id, title): | |
| try: | |
| discussions = api.get_repo_discussions(repo_id=repo_id) | |
| except Exception: | |
| return None | |
| for discussion in discussions: | |
| if ( | |
| discussion.status == "open" | |
| and discussion.is_pull_request | |
| and discussion.title == title | |
| ): | |
| return f"https://huggingface.co/{repo_id}/discussions/{discussion.num}" |