Skip to content

Latest commit

 

History

History
91 lines (70 loc) · 2.92 KB

File metadata and controls

91 lines (70 loc) · 2.92 KB

PyOpenBadges

🇬🇧 English version Tests Coverage

Une librairie Python moderne pour la création, la validation et la gestion des badges numériques conformes à la spécification OpenBadge v3.0 de l'IMS Global.

Plus d'info sur les OpenBadges : https://openbadges.info/

Caractéristiques

  • Implémentation complète de la spécification OpenBadge v3.0
  • Modèles Pydantic avec validation intégrée
  • Conversion vers/depuis JSON-LD
  • Utilitaires de validation avancés
  • Compatibilité avec les Verifiable Credentials

Verifiable Credentials

Les Verifiable Credentials sont comme des cartes d'identité numériques qu'on peut vérifier :

  • Ce sont des documents numériques qui prouvent quelque chose sur quelqu'un
  • Ils sont signés par une entité de confiance (l'émetteur)
  • Ils peuvent être vérifiés pour s'assurer qu'ils sont authentiques et n'ont pas été falsifiés

Dans PyOpenBadges, les badges numériques sont implémentés comme des Verifiable Credentials :

  • L'émetteur du badge est l'émetteur du credential
  • Le destinataire du badge est le sujet du credential
  • Le badge lui-même est représenté comme un Achievement
  • Le credential peut être vérifié cryptographiquement pour son authenticité

Installation

# Avec pip
pip install pyopenbadges

# Avec poetry (recommandé)
poetry add pyopenbadges

Utilisation rapide

from pyopenbadges.models import Profile, Achievement, OpenBadgeCredential, AchievementSubject
from datetime import datetime

# Créer un émetteur (Profile)
issuer = Profile(
    id="https://example.org/issuers/1",
    type="Profile",
    name="Mon Organisation",
    description="Organisation qui délivre des badges",
    url="https://example.org"
)

# Créer un badge (Achievement)
badge = Achievement(
    id="https://example.org/badges/1",
    type="Achievement",
    name="Badge Python",
    description="Pour la maîtrise de Python",
    issuer=issuer
)

# Créer une attribution de badge (Credential)
credential = OpenBadgeCredential(
    id="https://example.org/credentials/1",
    type=["VerifiableCredential", "OpenBadgeCredential"],
    issuer=issuer,
    issuanceDate=datetime.now(),
    credentialSubject=AchievementSubject(
        id="did:example:recipient123",
        type="AchievementSubject",
        name="Jean Dupont",
        achievement=badge
    )
)

# Convertir en JSON-LD
json_ld = credential.to_json_ld()
print(json_ld)

Documentation

Pour plus de détails sur l'utilisation de cette librairie, consultez le tutoriel et la documentation complète.

Licence

LGPL