Uniformiser le mode de transfert des résultats (Path ou DF) entre étapes de calcul
Objectif
- faire un choix sur le type de retour d'une étape de calcul (un/des path vers le csv, un/des DF, les 2 )
- clarifier comment on fait : est ce que l'on recharge le dataframe ? est ce qu'on le passe directement pour gagner du temps d'exec ?
- le mettre en place pour l'eau
- voir comment cela s'intègre dans un contexte d'utilisation d'un outil de workflow (type dask ou dbt)
The following discussion from !206 (merged) should be addressed:
-
@benjam started a discussion: (+2 comments) QUEST: si on exporte, on retourne pas le df si? Ya toujours ce risque de ne pas avoir les memes resultats apres selon qu'on ait chargé le fichier ou recalculé en direct
Solution
- chaque module prend explicitement en paramètre la liste des fichiers sources dont il a besoin, sous forme de Path. Il a donc la responsabilité de charger lui même les sources pour créer les df (évite les pb de conversion de type ou d'arrondi si on ne repasse pas toujours par le format fichier)
- exceptions possibles à cette règle : le df territoire qui est chargé une fois, et passé en tant que tel, et si besoin on peut reproduire ce pattern
- un module retourne un objet contenant le chemin du fichier généré, et le df correspondant. Par ex :
class Resultat:
fichier: Path
df: DataFrame
def __init__(self, fichier: Path, df: DataFrame):
self.fichier = fichier
self.df = df
- le fait de retourner le df peut etre utile dans les pipelines si on souhaite exporter des stats, diag ou cartes
- alternative : on pourrait aussi retourner un tuple (fichier, df)
- alternative : ou retourner uniquement le Path
Edited by Lionel