Je viens de publier sur Pipy une pré-version d’une bibliothèque Python que j’ai commencé il y a un an et demie. C’était ma première fois. Je pense qu’il y a encore pas mal de choses à ajuster dans le packaging et a minima la liste des dépendances.
Hasard du calendrier, je viens de retomber sur le mail d’inscription à QualifEbics, qui est daté du 30 avril 2011 : presque 5 ans jour pour jour ! Ce serveur de qualification est gracieusement mis à disposition par Valerian (groupe Elcimaï) et je les en remercie.
Que fait-elle ?
Je sais que ce n’est pas très sexy mais ebicsPy permet d’implémenter facilement un client pour le protocole de communication bancaire EBICS. Il permet basiquement de recevoir les fichiers de relevés de comptes et d’envoyer les fichiers de virement.
Pour les plus anciens, c’est EBICS qui remplace ETEBAC3 et ETEBAC5 depuis la fermeture du réseau Transpac par feu France Telecom et la disparition du protocole X25. Désormais le transport de ces fichiers est assuré par le réseau internet (HTTPS/TCP/IP). Leur confidentialité et leur intégrité sont protégés par EBICS qui met en oeuvre une infrastructure de chiffrement et de signature à clés publiques (PKI en abrégé).
Où la trouver ?
Comme indiqué dans le titre, le package est disponible sur Pipy, le dépôt standard des bibliothèques Python. Vous pouvez télécharger l’archive ou utiliser des outils comme pip ou setuptools pour l’installer sur votre machine.
Je ne sais pas si j’aurai le courage de mettre à jour le package à chaque modification du code. Aussi vous pourrez trouver la version la plus à jour sur mon dépôt Launchpad. Là aussi vous pouvez télécharger l’archive ou utiliser Bazar pour cloner la branche. Je pense que je migrerai le dépôt sur Github un jour…
Qu’en faire ?
Comme toute bibliothèque, elle permet au développeur de créer des fonctionnalités le plus simplement possible. En l’espèce, ebicsPy peut aider à développer :
- un script simple peu user-friendly mais redoutablement efficace
- une IHM graphique sous semie-graphique
- un outils appelable en ligne de commande par n’importe quel programme tiers
- un serveur REST ou XMLRPC appelable par n’importe quel programme distant
- un module EBICS pour n’importe quel outil de gestion d’entreprise codé en Python
J’ai choisi de concrétiser cette dernière possibilité en développant un module pour l’outil de gestion d’entreprise libre Odoo (ex-OpenERP). Il n’est pas encore packagé sur l’AppStore Odoo mais les sources sont disponibles sur mon dépôt Github.
C’est utilisable mais il y a encore un peu de boulot pour rendre le code plus présentable. Je pense qu’on pourra très bientôt utiliser EBICS directement dans Odoo :-).
Pourquoi avoir passé autant de temps là dessus ?
- Pour tromper l’ennuie durant mon second semestre en Espagne
- Pour apporter à Odoo une fonctionnalité sympa
- Pour devenir (j’ai encore du boulot XD) un point de référence sur un domaine fonctionnel Odoo
- Pour améliorer ma façon de coder en Python tout en faisant quelque chose d’utile et structuré
- Peut-être un jour le vendre sur l’AppStore Odoo(double licence AGPL et LGPL ?) et gagner une pièce si ce que j’ai développé est utile. Le risque de la LGPL est de voir mon travail intégré dans un programme propriétaire sans mon accord… C’est ça ou empêcher mes potentiels clients d’utiliser les modules propriétaires sexy présents sur l’AppStore… question très difficile.