diagram_ph/app/ipm/README_fr.md

1.7 KiB

Intégration IPM native (app.ipm)

Ce dossier contient le wrapper Python qui appelle les bibliothèques natives (refifc).

Objectifs

  • Centraliser le wrapper Python dans app/ipm pour que le code applicatif importe depuis app.ipm.simple_refrig_api.
  • Fournir un emplacement clair pour les binaires natifs (DLL pour Windows, .so pour Linux).

Où placer les binaires

  • Windows (local/dev) : placez vos DLL dans app/ipm/lib/windows/.
  • Linux (container/production) : placez vos .so dans app/ipm/lib/linux/.

Le wrapper app/ipm/simple_refrig_api.py recherche automatiquement, en priorité, le répertoire app/ipm/lib/<platform> (windows ou linux) puis retombe sur le répertoire du package s'il ne trouve rien.

Ne pas committer les binaires

Les fichiers natifs ne doivent pas être committés dans Git (poids, licence, portabilité). Le dépôt inclut une règle .gitignore qui exclut app/ipm/lib/windows/*.dll et app/ipm/lib/linux/*.so.

CI/CD

  • Stockez les binaires dans un artefact sécurisé (release, storage interne, S3, etc.).
  • Lors du pipeline, téléchargez-les et copiez-les dans app/ipm/lib/<platform> avant l'étape de build ou de déploiement.

Test rapide local

  1. Copier les binaires dans le bon dossier (ex. app/ipm/lib/windows/refifc.dll).
  2. Tester en local :
.venv\Scripts\python -c "import app.ipm.simple_refrig_api as s; r=s.Refifc('R290'); print('hsl_px exists', hasattr(r,'hsl_px'))"

Bonnes pratiques

  • Ne stockez pas les binaires dans Git.
  • Documentez la provenance et la version des fichiers natifs dans vos notes de release.
  • Préparez un script scripts/copy-ipm-libs.* pour automatiser la copie des binaires dans les environnements de build.