# 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/` (`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/` 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 : ```powershell .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. Pour la documentation en anglais, voir : [README_en.md](README_en.md)