Universite-Gustave-Eiffel / geodev-logicout

Student project analyzing the mutualization of agricultural product delivery routes
European Union Public License 1.2
1 stars 2 forks source link

Graphe des dépendances #32

Open nicolas-roelandt opened 1 year ago

nicolas-roelandt commented 1 year ago

Avant de me lancer dans le lancement des scripts, j'en ai profité pour faire un graphe de dépendances (avec la bibliothèque Mermaid).

Il n'est pas parfait et ne correspond pas vraiment à un script d'exécution mais ça donne une idée.

flowchart TD
    A[prep_Data.py] -->|Process raw data| B[use_data.py]
    C[api_logicout.py]
    D[api_itinerary.py]
    B --> E[IsInclude.py]
    B --> F[histogramme.py]
    E --> F
    B-->G[indexes.py]
    B-->H[mutualisation.py]
    C-->H
    B-->I[list_mutualisations_index.py]
    E-->I
    G-->I
    B-->J[main.py]
    H-->J

Quelques questions:

Simplification des dépendances

Est-il possible que use_data ne soit pas appelé histogramme.py, list_mutualisations_index.py et main.py si il est déjà appelé par d'autres dépendances ?

Usage d'api_itinerary.py

Ce module n'est appelé par un aucun autre, est-il toujours utile/utilisé ?

Quelle est la différence entre list_mutualisations_index.py et mutualisation.py ?

Pourquoi l'un est appelé par main.py et pas l'autre ?

artdfcp commented 1 year ago

1 - Simplification des dépendances :

Personnellement, je ne sais pas comment cela fonctionne. Si je supprime l'import, le code ne fonctionne plus, mais je vais me renseigner

2 - Oui, le fichier api_itinerary.py pourrait être suprrime. Nous l'avons gardé juste au cas au il y avait quelque problème avec les autres APIs.

3 - En ce qui concerne les fichiers "list_mutualisations_index.py" ,"mutualisation.py" et "main.py" : Le premier crée un fichier csv avec tous les candidats à la mutualisation pour chaque balle dans la base de données, triés par leur indice de distance.

Le second prend un tour A et un autre tour B, calcule la route mutualisée C et fait une requête à l'API Logicout. Il calcule ensuite les gains de l'itinéraire C par rapport à l'itinéraire A + B,

Le script main.py prend le fichier csv géneré par "list_mutualisations_index.py" et éxecute la fonction principale du script "mutualisation.py" 1 fois pour chaque tournée, ayant comme itineraire B le mieux candidat selon notre indice.