Feat/validator pipeline
⚠ Grosse PR 🐘
tentative de résolution de https://datahub.incubateur.tech/infrastructure/meta/-/issues/240
Afin de permettre à insitu d'executer plusieurs validateurs à la suite (par exemple, d'abord splitter une liste de départements puis déterminer leur code insee, ce qui était un besoin dans la première version des données de reporting de l'incubateur), voilà une proposition de refacto des validateurs (et donc, marginalement, de l'importeur).
J'ai créé une classe ValidatorsPipeline
qui est toujours définie au niveau de la colonne et applique une suite de transformations ou de vérifications à chaque valeur de la colonne.
Ca m'a permit de simplifier pas mal de choses et de faire un peu de ménage dans l'import dont le comportement est maintenant complètement défini par l'objet ValidatorsPipeline.
En creusant le code, je me suis un peu replongé dans les histoires de nullable et de null_on_error, et même si je pense ne rien avoir cassé (c'est vraiment tellement confortable de dev avec des tests
Preneur de retour sur cette PR avant de mettre plus d'énergie dedans de toute façon :)
TODO:
-
ajouter des tests end-to-end pour illustrer le nouveau comportement -
vérifier l'ordre d'execution de la pipeline (ordereddict?)une pipeline prend une liste (qui est ordonnée) -
clarifier le nullable vs. null_on_error