iaos-sdk (0.1.0)
Installation
pip install --index-url https://git.it.iaos.cc/api/packages/mapfarm/pypi/simple/ --extra-index-url https://pypi.org/simple iaos-sdkAbout this package
SDK Python des produits pour le noyau iaos — connecteurs et notifier (ADR-078 §11 P2.16).
iaos-sdk — SDK Python des produits pour le noyau iaos
ADR-078 §11 P2.16 (« SDK publiés sur la forge ») : une source au lieu de copies vendorées produit par produit. Version 0.1.0 :
| Module | Ce qu'il fait | Remplace |
|---|---|---|
iaos_sdk.connecteurs |
appels de connecteurs par le noyau (POST /api/connectors/<nom>/call : DataForSEO, Keepa, Google Trends, Arctic Shift), run courant transmis, erreurs claires (NoyauConnecteurError) |
graphs/common/core/iaos_gateway.py de harvest et fdm |
iaos_sdk.notifier |
courriel et Slack d'exploitation par la capacité « notifier » (POST /api/iaos/v1/notifier), une seule fois (cle_idempotence), categorie transactionnel / diffusion |
graphs/common/core/iaos_notifier.py de harvest et fdm |
Pas encore dans le SDK : le client corpus (les copies de harvest, fdm et de la factory
divergent et dépendent de modules du produit — entities, node_events_client) ; le
client de lecture de la factory (iaos_read_client.py) ; les clients de mapbox et
d'iaos-apps. Ils rejoindront le SDK une fois leurs dépendances au produit rendues
injectables.
Installation — référence directe, jamais par nom
Le registre PyPI de la forge publie le paquet (.gitea/workflows/publish-iaos-sdk.yml,
déclenchement manuel). On l'installe par URL + empreinte, jamais par nom avec
--extra-index-url (dependency confusion : un tiers pourrait publier iaos-sdk sur
pypi.org) :
iaos-sdk @ https://git.it.iaos.cc/api/packages/mapfarm/pypi/files/iaos-sdk/0.1.0/iaos_sdk-0.1.0-py3-none-any.whl#sha256=<empreinte de la page simple/iaos-sdk/>
Monter de version = changer l'URL ET l'empreinte (outil : ~/.cache/iaos-outils/epingler_forge.py).
Adoption dans un produit sans toucher aux appelants
L'ancien module devient un ALIAS du module du SDK ; les imports existants et les
monkeypatch des tests visent le même objet module :
# graphs/common/core/iaos_gateway.py — désormais fourni par iaos-sdk
import sys
import iaos_sdk.connecteurs as _sdk
sys.modules[__name__] = _sdk
Configuration (environnement)
IAOS_API_URL (défaut http://iaos-api:8000), IAOS_PROJECT_KEY (clé projet, X-Iaos-Key),
IAOS_CONNECTOR_TENANT (défaut historique harvest), CONNECTEURS_VIA_NOYAU,
IAOS_NOTIFIER_COMPANY (défaut hold), MESSAGES_VIA_NOYAU — voir l'en-tête de chaque module.
Développement
pip install -e ".[test]" ruff
ruff check src tests && ruff format --check src tests && pytest -q