#!/usr/bin/env python3 """ Contoh: Upload file langsung ke Hugging Face menggunakan huggingface_hub Cara jalankan: python3 examples/direct-hf-upload.py """ import os import sys from pathlib import Path from huggingface_hub import login, upload_file, upload_folder # Konfigurasi HF_TOKEN = os.getenv('HF_TOKEN', 'your_hf_token_here') REPO_ID = os.getenv('HF_REPO_ID', 'username/dataset-name') FILE_PATH = './examples/sample-data.csv' FOLDER_PATH = './examples' def upload_single_file(): """Upload single file""" print('šŸš€ Direct Upload - Single File') print('=' * 50) # Validasi file if not Path(FILE_PATH).exists(): print(f'āŒ File tidak ditemukan: {FILE_PATH}') print('šŸ“ Membuat file contoh...') with open(FILE_PATH, 'w') as f: f.write('id,name,value\n') f.write('1,Alice,100\n') f.write('2,Bob,200\n') try: # Authenticate print('šŸ” Authenticating...') login(token=HF_TOKEN) # Upload file print(f'šŸ“¤ Uploading {FILE_PATH}...') info = upload_file( path_or_fileobj=FILE_PATH, path_in_repo=f'u/{Path(FILE_PATH).name}', repo_id=REPO_ID, repo_type='dataset', commit_message='Upload sample data' ) print('āœ… Upload berhasil!') print(f'šŸ“Š URL: https://huggingface.co/datasets/{REPO_ID}/blob/main/u/{Path(FILE_PATH).name}') print(f'šŸ“Š Commit: {info}') except Exception as e: print(f'āŒ Error: {str(e)}') sys.exit(1) def upload_folder_contents(): """Upload entire folder""" print('\nšŸš€ Direct Upload - Folder') print('=' * 50) if not Path(FOLDER_PATH).exists(): print(f'āŒ Folder tidak ditemukan: {FOLDER_PATH}') sys.exit(1) try: # Authenticate print('šŸ” Authenticating...') login(token=HF_TOKEN) # Upload folder print(f'šŸ“¤ Uploading folder {FOLDER_PATH}...') info = upload_folder( folder_path=FOLDER_PATH, repo_id=REPO_ID, repo_type='dataset', path_in_repo='u/examples', commit_message='Upload examples folder' ) print('āœ… Upload berhasil!') print(f'šŸ“Š URL: https://huggingface.co/datasets/{REPO_ID}/tree/main/u/examples') print(f'šŸ“Š Commit: {info}') except Exception as e: print(f'āŒ Error: {str(e)}') sys.exit(1) if __name__ == '__main__': print('šŸ“˜ Contoh Upload Langsung ke Hugging Face') print('=' * 50) print() if len(sys.argv) > 1 and sys.argv[1] == 'folder': upload_folder_contents() else: upload_single_file() print('\nšŸ’” Tip: Jalankan dengan "folder" untuk upload folder') print(' python3 examples/direct-hf-upload.py folder')