Intégration du code open-source
Le format ISOF est ouvert et documenté. Cette page présente le package Python officiel, les règles d'implémentation pour un lecteur tiers, et les ressources disponibles.
Le format ISOF est un standard ouvert. IsoFind SAS publie les outils nécessaires à son intégration dans des logiciels tiers, sans nécessiter de licence IsoFind ni d'accord commercial.
Le package Python isof
Le package isof est publié sur PyPI sous licence MIT. Il permet de lire, vérifier et exporter des fichiers .isof depuis n'importe quel environnement Python.
Source : github.com/ColinFerrari/isof : licence MIT, contributions bienvenues.
Fonctions principales
| Fonction / méthode | Description |
|---|---|
| isof.load(path) | Charge un fichier .isof depuis le disque. |
| isof.loads(json_str) | Charge depuis une chaîne JSON (API, base de données). |
| report.verify() | Retourne un objet VerificationResult avec valid, level, signer, signed_at, reason. |
| report.is_authentic() | Retourne True si la signature est valide (niveau 1 ou 2). |
| report.to_pandas() | Retourne un DataFrame tidy (une ligne par mesure isotopique). |
| report.to_csv(path) | Exporte les données en CSV. |
| report.samples | Liste des échantillons (dicts). |
| report.methods | Dictionnaire des méthodes analytiques. |
| report.created_by | Métadonnées de création (logiciel, opérateur, organisation). |
Exceptions
| Exception | Cause |
|---|---|
| ISOfParseError | JSON invalide ou structure ISOF non reconnue. |
| ISOfVersionError | Version du format non supportée par cette version du package. |
| ISOfSignatureError | Erreur lors de la vérification de signature (distinct d'une signature invalide). |
Implémenter un lecteur ISOF
N'importe quel logiciel peut implémenter un lecteur ISOF sans dépendance au package Python. Le format est du JSON standard avec les règles suivantes :
Les champs isof_version, created_at et samples sont les seuls obligatoires. Tous les autres champs sont optionnels. Les champs inconnus doivent être ignorés (extensibilité future). L'encodage est UTF-8 obligatoire. Les nombres flottants suivent la représentation JSON standard (pas de virgule décimale locale, pas de guillemets).
Vérification niveau 1 en 4 lignes Python
Spécification technique
La spécification complète du format ISOF v1.0 est disponible sur isofind.tech/isof-spec. Elle couvre la structure JSON, les types de données, le format des blocs samples, methods, purification et signature, les règles de canonicalisation, et la feuille de route des versions futures.