Download scripts/push_to_hf.py from Amitkumar001/Law_Slm: direct link, hf CLI and curl.
- Browser
- Download file 3.2 kB
-
https://huggingface.co/Amitkumar001/Law_Slm/resolve/main/scripts/push_to_hf.py
- Command line
-
hf download hf://Amitkumar001/Law_Slm/scripts/push_to_hf.py
-
curl -L -o push_to_hf.py https://huggingface.co/Amitkumar001/Law_Slm/resolve/main/scripts/push_to_hf.py
3.2 kB
| """ | |
| Hugging Face Hub Uploader Script for LawSLM. | |
| Uploads model weights, tokenizer, configs, and repository card (README.md & MODEL_CARD.md) | |
| to Hugging Face Hub while filtering out build/node artifacts. | |
| """ | |
| import argparse | |
| import os | |
| import sys | |
| try: | |
| from huggingface_hub import HfApi, create_repo | |
| except ImportError: | |
| print("Package 'huggingface_hub' is required. Install using: pip install huggingface_hub") | |
| sys.exit(1) | |
| def push_to_huggingface(repo_id: str, local_dir: str = ".", token: str = None, private: bool = False) -> str: | |
| """ | |
| Pushes project repository and model card to Hugging Face Hub. | |
| """ | |
| # Clean token string if wrapped in quotes | |
| if token: | |
| token = token.strip('"').strip("'").strip() | |
| else: | |
| token = os.getenv("HF_TOKEN") | |
| if token: | |
| token = token.strip('"').strip("'").strip() | |
| if "your-username" in repo_id: | |
| print("\n[ERROR] 'your-username' is a placeholder!") | |
| print("Please replace 'your-username' with your real Hugging Face account username.") | |
| print("Example: python scripts/push_to_hf.py --repo_id Amit123103/Law_model_slm --token hf_XXXXX\n") | |
| sys.exit(1) | |
| api = HfApi(token=token) | |
| # Auto-resolve username if only repo name is supplied | |
| if "/" not in repo_id and token: | |
| try: | |
| user_info = api.whoami(token=token) | |
| username = user_info.get("name") | |
| if username: | |
| repo_id = f"{username}/{repo_id}" | |
| print(f"Auto-resolved Hugging Face repository ID to: '{repo_id}'") | |
| except Exception: | |
| pass | |
| print(f"Creating/verifying Hugging Face repository '{repo_id}'...") | |
| create_repo(repo_id=repo_id, repo_type="model", private=private, exist_ok=True, token=token) | |
| # Patterns to ignore when uploading to HF Hub (prevents unsafe file warnings) | |
| ignore_patterns = [ | |
| "node_modules/*", | |
| "**/node_modules/*", | |
| "dist/*", | |
| "**/dist/*", | |
| ".oxlintrc.json", | |
| ".pytest_cache/*", | |
| "__pycache__/*", | |
| "**/__pycache__/*", | |
| "*.pyc", | |
| ".env", | |
| ".git/*", | |
| "*.log" | |
| ] | |
| print(f"Uploading repository '{local_dir}' to Hugging Face Hub ({repo_id})...") | |
| url = api.upload_folder( | |
| folder_path=local_dir, | |
| repo_id=repo_id, | |
| repo_type="model", | |
| ignore_patterns=ignore_patterns, | |
| token=token | |
| ) | |
| print(f"\nSuccessfully pushed model repository to Hugging Face!") | |
| print(f"Repository URL: {url}") | |
| return url | |
| def main(): | |
| parser = argparse.ArgumentParser(description="Push LawSLM code, config, and Model Card to Hugging Face Hub.") | |
| parser.add_argument("--repo_id", type=str, required=True, help="Hugging Face repo ID (e.g., 'Amit123103/Law_model_slm')") | |
| parser.add_argument("--token", type=str, default=os.getenv("HF_TOKEN"), help="Hugging Face User Access Token (Write permission)") | |
| parser.add_argument("--private", action="store_true", help="Create as private repository") | |
| args = parser.parse_args() | |
| push_to_huggingface(repo_id=args.repo_id, token=args.token, private=args.private) | |
| if __name__ == "__main__": | |
| main() | |