# Totem2XML Script Python permettant de convertir une liste de fichiers de budget au format Totem XML, en fichiers CSV conformes au schéma national du SCDL pour les données budgétaires. Utilisation: ``` > python run.py file1.xml [file2.xml file2.xml ... filen.xml] ``` Les fichiers générés sont localisés au même endroit que chaque fichier XML et aura le même nom. Ainsi, `./mon/fichier1.xml` sera converti en `./mon/fichier1.csv`. ## A noter Ce script s'appuie sur les plans de compte diffusés sur http://odm-budgetaire.org/composants/normes/. Il n'utilise pas de XSL pour convertir les fichiers, mais converti le XML en dictionaire Python pour traiter les informations. Il réalise la même opération que l'outil "DataClic" proposé par OpenDataFrance: https://dataclic.fr/budget. Les calculs sont basés sur le script https://gitlab.com/datafin/totem/-/blob/master/totem2csv/xsl/totem2xmlcsv.xsl. Il se limite cependant à la conversion des lignes de budget et ne réalise pars l'anonymisation du fichier Totem XML. ## Modules utilisés Ce script fonctionne avec Python 3. Il a été testé avec Python 3.9. Les principaux modules utilisés sont: * https://github.com/martinblech/xmltodict * https://github.com/jmespath/jmespath.py # Installation Récupérer le dépôt Git. ``` $ git clone https://gitea.datagrandest.net/guillaume_ryckelynck/totem2csv.git ``` Créer un environnement virtuel et installer les modules (ici sous Windows). ``` $ cd totem2csv $ python -m venv venv $ .\venv\Scripts\activate # 'source ./venv/bin/activate' sur linux $ python -m pip install -r requirements.txt ``` Lancer le script. ``` $ python run.py monfichier.xml ``` ## Ressoures * Schéma SCDL des données budgétaires: https://schema.data.gouv.fr/scdl/budget/ * Outil national de conversion des fichiers Totem en CSV "DataClic": https://dataclic.fr/budget * Outil national de validation des données budgétaires au format CSV "Validata": https://validata.fr/table-schema?schema_name=schema-datagouvfr.scdl%2Fbudget&schema_ref= * Code source de l'application nationale "DataClic" pour le budget: https://gitlab.com/datafin/totem * Code source de l'application nationale "Validata": https://git.opendatafrance.net/validata * Liste des plans de compte au format XML: http://odm-budgetaire.org/composants/normes/