File size: 2,711 Bytes
970eef1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
"""
Script de test pour vérifier l'upload vers Hugging Face Hub
Ce script crée un dataset simple et tente de l'uploader vers le Hub
en utilisant le token et l'organisation définis dans les variables d'environnement.
"""
import os
import sys
import datasets
from huggingface_hub import HfApi, login
from datasets import Dataset
from dotenv import load_dotenv
from pathlib import Path

def test_hf_upload():
    # Charger les variables d'environnement depuis le fichier .env
    dotenv_path = Path('.env')
    load_dotenv(dotenv_path=dotenv_path)
    
    # Récupérer le token et l'organisation des variables d'environnement
    hf_token = os.getenv("HF_TOKEN")
    org_name = os.getenv("HF_ORGANIZATION", "yourbench")
    
    if not hf_token:
        print("Erreur: La variable HF_TOKEN n'est pas définie dans le fichier .env.")
        sys.exit(1)
    
    dataset_name = "test_dataset_upload"
    repo_id = f"{org_name}/{dataset_name}"
    
    print(f"Tentative d'upload vers {repo_id} avec le token {hf_token[:5]}... (token tronqué pour la sécurité)")
    
    try:
        # Se connecter à l'API Hugging Face
        print("Connexion à l'API Hugging Face...")
        login(token=hf_token)
        api = HfApi(token=hf_token)
        
        # Créer un dataset simple
        print("Création d'un dataset de test...")
        data = {
            "text": ["Ceci est un test", "Un autre exemple", "Troisième exemple"],
            "label": [1, 0, 1]
        }
        dataset = Dataset.from_dict(data)
        
        # Vérifier si le repo existe déjà et le supprimer si nécessaire
        try:
            api.delete_repo(repo_id=repo_id, repo_type="dataset")
            print(f"Repo existant {repo_id} supprimé.")
        except Exception:
            print(f"Le repo {repo_id} n'existait pas encore.")
        
        # Uploader le dataset
        print(f"Upload du dataset vers {repo_id}...")
        dataset.push_to_hub(
            repo_id=repo_id,
            token=hf_token,
            private=True,
            commit_message="Test d'upload de dataset"
        )
        
        print(f"Succès! Dataset uploadé vers https://huggingface.co/datasets/{repo_id}")
        return True
    
    except Exception as e:
        print(f"Erreur lors de l'upload: {str(e)}")
        print("\nTraceback complet:")
        import traceback
        traceback.print_exc()
        return False

if __name__ == "__main__":
    print("=== Test d'upload vers Hugging Face Hub ===")
    success = test_hf_upload()
    if success:
        print("\n✅ Le test a réussi! L'upload fonctionne correctement.")
    else:
        print("\n❌ Le test a échoué. Vérifiez les erreurs ci-dessus.")