Code source de app.home.content_gen.index_renderer

"""
© GRID Team, 2021
"""

import pandas
import plotly
import plotly.graph_objs as go

import pandas
import numpy
import json
from agri_data import data_import

[docs]class Scoring: """Cette classe donne les données nécessaires au rendu des gauges indiquant les scores ESG """ def __init__ (self): self.data = data_import.ReadData('scoring').read_json()
[docs] def bin (self): """Génère les intervalles autour de la valeur moyenne """ self.data['min'] = 0.0 self.data['low_avg'] = 0.9*self.data['average'] self.data['high_avg'] = 1.1*self.data['average']
[docs] def main (self): """ :return: liste de listes (une par indicateur) contenant pour chaque: sa valeur, la valeur max de l'echelle, une liste avec les intervalles de couleurs :rtype: list """ self.bin() list_output = [] for indic in self.data.index: indic_val = [self.data.loc[indic, 'value']] indic_val.append(self.data.loc[indic, 'max']) indic_val.append([self.data.loc[indic, 'min'], self.data.loc[indic, 'low_avg'], self.data.loc[indic, 'high_avg'], float(self.data.loc[indic, 'max'])]) list_output.append(indic_val) return list_output
[docs]class CriticalAlert: """Cette classe donne las liste des indicateurs considérés comme critique. """ def __init__(self): self.data = pandas.read_csv('https://raw.githubusercontent.com/Green-Investement-Dashboard/data/main/data_eg/liste_indic.csv') self.data = self.data.set_index('Code input')
[docs] def main(self): """ :return: liste de listes (une par indicateur) contenant pour chaque la liste des indicateurs critiques :rtype: list """ list_env = [] list_soc = [] list_gouv = [] for an_id in self.data[self.data['Critique']==1].index: if 'E' in an_id: list_env.append(self.data.loc[an_id, 'Phénomène dangereux']) if 'S' in an_id: list_soc.append(self.data.loc[an_id, 'Phénomène dangereux']) if 'G' in an_id: list_gouv.append(self.data.loc[an_id, 'Phénomène dangereux']) return [list_env, list_soc, list_gouv]