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/
- 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
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é
# Avec pip
pip install pyopenbadges
# Avec poetry (recommandé)
poetry add pyopenbadgesfrom 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)Pour plus de détails sur l'utilisation de cette librairie, consultez le tutoriel et la documentation complète.
LGPL