Construire des outils et applications avec ddi-l¶
Ce guide est destiné aux développeurs qui souhaitent utiliser ddi-l comme
base pour leurs propres produits : tableaux de bord, services web, utilitaires
CLI ou pipelines de données.
Prérequis
- Python 3.11+ avec
ddi-linstallé. - Connaissance du guide d'utilisation.
Lire et interroger des documents¶
import ddi_l as ddi
doc = ddi.open_ddi("etude.xml")
for q in doc.questions:
print(q.identifier)
item = doc.find("un-identifiant")
Créer des documents par programme¶
doc = ddi.new_study(title="Enquete generee", agency="app.org")
questions = ["Age", "Genre", "Revenu"]
for texte in questions:
q = doc.add_question(text=f"Quel est votre {texte.lower()} ?")
doc.add_variable(name=texte, question=q)
doc.save("enquete-generee.xml")
Intégrer la validation¶
doc = ddi.open_ddi("entree.xml", validate=True)
issues = doc.validate()
if issues:
for issue in issues:
print(f"[{issue.severity}] {issue.message}")
Utiliser la couche de modèles avancée¶
Pour un contrôle fin, utilisez directement les classes de modèles :
from ddi_l.document import DDIDocument
from ddi_l.models.logicalproduct import Variable
instance = DDIDocument.from_xml("study.xml")
# Accéder au XML brut
root = instance.root
# Construire un index pour résoudre les références croisées
index = instance.build_index()
Intégration CLI¶
Conseils d'architecture¶
- Utilisez
ddi.new_study()etddi.open_ddi()pour la plupart des flux de travail. Ne descendez versDDIDocumentque si vous avez besoin de l'arbre XML brut. - Les méthodes génériques
add_item()/items()couvrent les 30 types d'éléments DDI, ce qui permet d'écrire du code indépendant du type. - Toutes les classes de modèles préservent le XML inconnu dans
other_elements: les allers-retours restent donc sans perte, même pour du contenu que la bibliothèque ne modélise pas.