from typing import TypeVar _T = TypeVar("_T") def assert_not_none(value: _T | None, message: str) -> _T: """Narrowing de type explicite : lève un AssertionError clair si `value` est None, renvoie `value` (type non-Optional) sinon. Centralise ici l'unique suppression Bandit/Ruff de ce type dans tout le moteur - un `assert` direct à chaque site d'appel dupliquait le même commentaire de suppression à chaque fois (voir CODE_QUALITY.md, Sonar python:S7632 : Sonar ne reconnaît pas deux commentaires # empilés sur une ligne, même si Ruff et Bandit les acceptent chacun très bien).""" assert value is not None, message # nosec B101 # noqa: S101 - narrowing de type, seule assert du genre ici return value