"""Reutilisation des briques deja livrees (workflow #5 · zero duplication). L'integration e-CF DGII partage l'idiome anti-invention du reste du mandat. On importe — jamais on ne duplique — : - `is_filled` : la notion de « champ reellement rempli » (un placeholder ou un `null` n'est pas rempli) commune au generateur Faisabilite. - `CANONICAL` : les parametres canoniques CLAUDE.md #9/#10 (USD+DOP notamment). AUCUN taux ITBIS / RNC / TipoCambio n'y figure → aucun n'est fabrique ici. - `validate` : le validateur JSON-Schema maison du Publiciste (draft-07, sous-ensemble), pour valider le bundle SANS installation pip (le gate CI Gitea Actions tourne sans reseau · CLAUDE.md #2). Import par `sys.path` (comme `commlib/deps.py`) — une seule source de verite. """ from __future__ import annotations import os import sys _HERE = os.path.dirname(os.path.abspath(__file__)) # fiscal/ecf_dgii/ecflib → 05_deliverables_mvp _DELIVERABLES = os.path.normpath(os.path.join(_HERE, "..", "..", "..")) _GEN = os.path.join(_DELIVERABLES, "faisabilite", "generator") _PUB = os.path.join(_DELIVERABLES, "publiciste") for _p in (_GEN, _PUB): if _p not in sys.path: sys.path.insert(0, _p) from genlib import model # type: ignore # noqa: E402 from lib import validator # type: ignore # noqa: E402 is_filled = model.is_filled CANONICAL = model.CANONICAL TEMPLATE_VERSION = model.TEMPLATE_VERSION validate = validator.validate __all__ = ["is_filled", "CANONICAL", "TEMPLATE_VERSION", "validate"]