1.8 KiB
1.8 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/ipmpour que le code applicatif importe depuisapp.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
- Copier les binaires dans le bon dossier (ex.
app/ipm/lib/windows/refifc.dll). - 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.
Pour la documentation en anglais, voir : README_en.md