Client IASO
La bibliothèque Python iaso-client s'authentifie auprès d'une instance IASO et récupère les unités d'organisation, types d'unités d'organisation, formulaires, versions de formulaires et soumissions de formulaires, avec pagination automatique.
La bibliothèque est maintenue par l'équipe IASO : consultez le dépôt iaso-client pour son code source et sa documentation complète.
openhexa.toolbox.iaso est déprécié
La classe IASO de openhexa.toolbox.iaso n'est plus maintenue. Utilisez iaso-client pour les nouveaux pipelines et notebooks, et migrez le code existant lorsque c'est possible (voir Migrer depuis openhexa.toolbox.iaso).
Installation¶
iaso-client est préinstallé dans les images de notebooks et de pipelines OpenHEXA. Pour l'utiliser ailleurs (ou pour fixer une version spécifique dans le requirements.txt d'un pipeline) :
Usage¶
Connexion à une instance¶
Créez un IasoClient avec l'URL de base de l'instance IASO (sans slash final), puis appelez login(). Le jeton est conservé et réutilisé pour toutes les requêtes suivantes.
Dans un workspace OpenHEXA, stockez les identifiants dans une connexion IASO et lisez-les avec le SDK :
from openhexa.sdk import workspace
from iaso_client import IasoClient
con = workspace.iaso_connection("identifiant-connexion-iaso")
client = IasoClient(base_url=con.url.rstrip("/"))
client.login(con.username, con.password)
Lire des données¶
Chaque ressource expose des méthodes *_list() et *_retrieve(). *_list() récupère toutes les pages et renvoie tous les éléments correspondants sous forme de liste. Les filtres sont passés en arguments nommés.
# Unités d'organisation
org_units = client.org_units_list(org_unit_type_id=5, project=149)
org_unit = client.org_units_retrieve(org_unit_id=781)
# Types d'unités d'organisation
org_unit_types = client.org_unit_types_list(project=149)
# Formulaires et versions de formulaires
forms = client.forms_list(projects_ids=[149])
form = client.forms_retrieve(form_id=276)
form_versions = client.form_versions_list(form_id=276)
# Soumissions de formulaires (instances)
instances = client.instances_list(form_id=276, date_from="2025-01-01")
instance = client.instances_retrieve(instance_id=12345)
Obtenir un DataFrame pandas¶
*_list() renvoie une liste de dictionnaires, qui peut être chargée dans un DataFrame :
Consultez le dépôt iaso-client pour la liste complète des filtres.
Migrer depuis openhexa.toolbox.iaso¶
openhexa.toolbox.iaso | iaso-client |
|---|---|
IASO(url, username, password) | client = IasoClient(base_url=url) client.login(username, password) |
iaso.get_org_units(...) | client.org_units_list(...) |
iaso.get_forms(org_units=[...], projects=[...]) | client.forms_list(org_unit_id=..., projects_ids=[...]) |
iaso.get_form_instances(..., as_dataframe=True) | pd.json_normalize(client.instances_list(...)) |