Éléments des contrôleurs de l’API

Fonctions du module contrôleurs

Module de gestion des requêtes SQL utilisées par l’API.

class QueryBuilder(from_relation, schema=None)

Bases : object

Classe permettant de construire des requêtes SQL complexes à l’aide de méthodes simples. L’intérêt principal est de pouvoir gérer automatiquement les alias des relations.

add_complex_filter(tables, values=None, expression=None)

exemple d’expression à remplir : “{0}.id = ${{}} or {1}.id = ${{}}”

add_complex_having(tables, values=None, expression=None)
add_filter(table, column, value, schema=None, operator='=', index=0, as_param=True)
add_groupby(table, column, schema=None, index=0)
add_join(table, schema=None, jointype='join', on='', index=0, use_join_alias=False)
add_orderby(table, column, schema=None, index=0)
add_select(expression=None, schema=None, table=None, column=None, index=0)
get_alias(table, index=0)

Récupère l’alias créé pour la table et l’index correspondant index > 0 si plusieurs références à la même table

property query
async add_to_data_history(region, schema, user, action, data_name, details='')

Adds action to data history table for current region.

Paramètres
  • region (string) – current region key

  • schema (string) – the schema in which to insert the event

  • user (object) – the user object

  • action (string) – the action performed

  • data_name (string) – the data name or a string representing the data

  • details (string, optional) – additionnal details, either pure string or formatted json, by default «  »

async chercher_fichier_des_communes(chemin, nom, l93=True)

Retourne le chemin absolu vers le fichier COMMUNES.shp au sein d’une arborescence dont la racine est à indiquer en paramètre

Paramètres

chemin (str) – Chemin d’accès au répertoire depuis lequel lancer la recherche

compute_formula(raw_formula)

Retourne la définition de l’indicateur (colonne data) décomposée dans un dictionnaire

Type renvoyé

dict

conversion_binaire_en_chaine(binaire)

Décode une chaîne de caractères en binaire.

Paramètres

chaine (chaîne de caractères en binaire) – chaîne de caractères décodée

Renvoie

Chaîne de caractères décodée et donc lisible

Type renvoyé

Chaîne de caractères

conversion_chaine_en_binaire(chaine)

convertit une chaine de caractères en binaire (un octet par lettre).

Paramètres

chaine (chaîne de caractères) – chaîne de caractères à convertir en binaire

Renvoie

Chaîne de caractères au format binaire : suite d’octets séparés à chaque fois par une espace

Type renvoyé

Chaîne de caractères

async copy_to_table(schema, table, source, columns=None, replace=True)

Copie des données tabulaires issues d’un fichier (.csv) dans une table.

La table doit exister.

Paramètres
  • schema (str) – Nom du schéma

  • table (str) – Nom de la table où vont être copiées les données

  • source (Path) – Nom du fichier CSV

  • columns (list) – Colonnes à préciser si en-tête à un ordre différent de l’ordre des colonnes

  • replace (boolean) – Efface les données de la table avant la copie. Si Faux, ajoute les données

Renvoie

Nombre de lignes insérées

Type renvoyé

int

async execute(*args)

Exécute une requete en utilisant le pool de connection.

Paramètres

args (list) – liste des arguments de la fonction asyncpg execute

Type renvoyé

None

async fetch(*args)

Fonction permettant de récupérer les données en base en utilisant le pool de connection.

Paramètres

args (list) – liste des arguments de la fonction asyncpg fetch

Type renvoyé

une promesse de résultat

async get_categories_full_contents(region)

Récupère la liste des catégories pour une région donnée.

Paramètres

region (str) – Nom de la région sous la forme “nom-de-la-region”.

Renvoie

dict {name: [all data]}

Type renvoyé

dict

async get_common_dataset_table(global_region, table_name)

Retrieve the content from a table of common data set.

Paramètres
  • global_region (str) – Global region key used to load data from.

  • table_name (str) – The table name that we wish to retrieve

Renvoie

  • pd.DataFrame – the dataframe of all existing rows (if the table exists)

  • boolean – False if the table is not found in common PostgreSQL schema

async get_data_table(region, table_name)

Get the full content of a table.

Paramètres
  • region (str) – Name of the region written in the form “name-of-the-region”.

  • table_name (str) – Table name in the region

Renvoie

[list of rows]

Type renvoyé

dict

async get_data_tables_headers(region, list_tables)

Get the first 5 rows of each data table for a given region.

Paramètres

region (str) – Name of the region written in the form “name-of-the-region”.

Renvoie

dict {nom: [list modalite ids]}

Type renvoyé

dict

get_pg_engine()

Return the sqlAlchemy engine to access the postgresql database

async get_update_date(region, list_tables)

Get update date of each data table for a given region.

Paramètres
  • region (str) –

  • list_tables (list) –

Type renvoyé

dict

async list_categories(region)

Récupère la liste des catégories pour une région donnée.

Paramètres

region (str) – Nom de la région sous la forme “nom-de-la-region”.

Renvoie

dict {nom: [list modalite ids]}

Type renvoyé

dict

async list_categories_modalites(region)

Récupère la liste des catégories et des modalites pour une région donnée.

Paramètres

region (str) – Nom de la région sous la forme “nom-de-la-region”.

Renvoie

dict {nom: [list categories modalites ids]}

Type renvoyé

dict

async list_tables(region)

Récupère la liste des tables de données (indicateurs) pour une région donnée.

Paramètres

region (str) – Nom de la région sous la forme “nom-de-la-region”.

Renvoie

dict {nom: [list modalite ids]}

Type renvoyé

dict

async liste_tables_jdd_communs(region)

Récupère la liste des tables de données (indicateurs) pour une région donnée.

Paramètres

region (str) – Nom de la région sous la forme “nom-de-la-region”.

Renvoie

dict {nom: [list modalite ids]}

Type renvoyé

dict

async move_table_from_france_to_region(region, table, maj)

Copies a data table from the “france” schema to the regional schema. Keeps only the communes of the specified region.

A commune belongs to a region if the first two characters of its code correspond to a department code in <region>.departement. With this definition, even the communes of the region that do not exist in the current perimeter (in <region>.commune) are kept.

If the table contains a “commune_dest” column (flow data), the filtering is also done on this second column.

Paramètres
  • region (str) – normalized region name (ex : auvergne-rhone-alpes, occitanie)

  • table (str) – table name

  • maj (any) – Truthy if updating an existing table, falsy if importing a new table

async table_datatypes(schema, table)

Récupère les noms et types des champs d’une table donnée.

Si le résultat renvoie un dictionnaire vide, la table n’existe sans doute pas (ou inaccessible en lecture par le pguser).

Paramètres
  • schema (str) –

  • table (str) –

Renvoie

nom du champs: type

Type renvoyé

dict

Submodules du module contrôleurs

actions module (controller)

Fonctions et requêtes SQL pour l’impact énergie des actions

async diagnostic_polluants_atmospheriques(region, zone, zone_id)
async export_excel(region, impact_energie, polluants, output_filepath, ges_export_excel)

Génère un fichier Excel au format ADEME pour les PCAET.

Récupère à la fois les dernières données disponibles ainsi que les résultats des stratégies territoriales pour les émissions GES, conso énergie, production EnR, polluants atmosphériques et remplit les feuilles de calcul du fichier Excel au format ADEME.

Paramètres
  • impact_energie (dict) – dictionnaire des impacts ges, énergie, production EnR

  • polluants (dict) – dictionnaire des données de polluants atmosphériques

  • output_filepath (str) –

async export_excel_conso_ges_enr(region, impact_energie, wb, ges_export_excel)

Remplit un fichier Excel au format ADEME pour la conso énergie, émission GES et prod EnR à partir des résultats des actions : conso énergie, émission GES, etc.

Paramètres
  • impact_energie (dict) – Impacts sur la production des EnR causés par la saisie de paramètres dans les actions de production d’énergie renouvelable

  • wb (openpyxl.workbook.Workbook) –

export_excel_polluants_atmospheriques(polluants, wb)

Remplit un fichier Excel au format ADEME sur les polluants atmosphériques.

Paramètres
  • polluants (dict) – Données sur les polluants atmosphériques par secteur pour chaque type de polluant.

  • wb (openpyxl.workbook.Workbook) –

async get_list(region)
async get_percent_equipement_chauffage_residentiel_tertiaire(region, zone, zone_id, action, provenance, advanced_params={})
retourne les répartitions des équipements de chauffage dans le secteur résidentiel / tertaire

pour l’année de référence (la dernière année de la disponibilité des données dans la BD TS).

Paramètres
  • region (str) – Nom de la région (schéma)

  • zone (str) – Nom du territoire

  • zone_id (str) – Identifiant du territoire

  • action (float) – numéro de l’action

  • provenance (str) –

  • advanced_params (dict) – les paramètres avancés

Renvoie

dict – Avec l’ensemble des répartitions des équipements de chauffage

Type renvoyé

%

async impact_energie_production_renouvelable(csv_params, region, zone, zone_id, action_year, action_params, params_advanced, regional_config={})

Impact de production d’énergie, recette fiscale et facture.

Pour les émissions GES évitées par la production d’énergie renouvelable, les différentes fonctions spécifiques à chaque action continuent de le calculer. Néanmoins, on décide de ne pas le prendre en compte pour l’instant. Il faut pour cela une nouvelle modélisation et la capacité à relier un type de production à un secteur ou type d’énergie. cf https://gitlab.com/terristory/terristory/issues/501

async impact_energie_reduction_consommation(csv_params, region, zone, zone_id, actions, action_params, params_advanced, advanced_params_years={}, regional_config={})

Fonction pour l’économie d’énergie via action 1, 2, 7 (rénovation & mobilité durable)

async impact_total(region, zone, zone_id, years, action_year, action_params, advanced_params, advanced_params_years={}, regional_config={})

Impact énergétique et émission GES pour les actions.

Paramètres
  • region (str) – Nom de la région (schéma)

  • zone (str) – Nom du territoire

  • zone_id (str) – Identifiant du territoire

  • years (set) – Ensemble des années

  • action_year (dict) – List des identifiants des actions par année

  • action_params (dict) – Paramètres des actions

  • advanced_params (dict) – Paramètres avancés des actions

Renvoie

Avec l’ensemble des simulations des actions (conso énergie, prod enr, émission ges, recette fiscale)

Type renvoyé

dict

interpolation_advanced_params_years(advanced_params_years)

Returns the interpolated values of the other advanced parameters with years for actions 16 and 17: conversion of heating equipment for residential and tertiary

interpolation_user_values_conversion_chauffage(anum, action_params, action_reference_params, **kwargs)
retourne paramètres des actions avec les valeurs interpolées pour les actions 16 et 17conversion des équipement

de chauffage pour le résidentiel et le tertaire

Paramètres
  • anum (str) – numéro de l’action

  • action_params (dict) – Paramètres des actions

  • action_reference_params (dict) – Répartitions des équipements de chauffage par rapport à l’année de référence

Renvoie

paramétres des actions avec l’ensemble des paramétres interpolés pour l’action 16 et 17

Type renvoyé

dict

analyse module

Module de gestion des requêtes SQL pour les analyses.

async activer_analysis(analyse_id: int)

Activation d’une analyse

Paramètres

analyse_id (int) – identifiant d’analyse

async analysis(region: str, analyse_id: Optional[int] = None, only_active: bool = True, with_territorialsynthesis: bool = False)

Récupération de la liste des analyses et de leurs métadonnées (paramètres de visualisations)

Paramètres
  • region (str) – Nom de la région (schéma en base)

  • analyse_id ([optional] int) – identifiant d’analyse

  • only_active ([optional] bool) – pour préciser si on veut récupérer toutes les analyses y compris celles non activées (sans effet si analyse_id a été spécifié)

async analysis_ui_themes(region: str)

Récupération de la liste des thèmes des indicateurs (paramètres de visualisations)

Paramètres

region (str) – Nom de la région (schéma en base)

async check_year_in_data_table(region, zone, zone_id, table_name, year)
async delete_analysis(region, id)

Delete an indicator from the database.

Paramètres
  • region (str) – region key

  • id (int) – indicator id

async delete_category(region, category_name, related_indicators=[], related_dashboards_groups=[])

Delete a category from the database. Also disable related indicators, and delete all associations between these indicators and charts for this category.

Paramètres
  • region (str) – region key

  • category_name (str) – category name (used as key inside queries)

  • related_indicators (list, optional) – related indicators that must be disabled to prevent bugs, by default []

async delete_data_table(region, table_name)

Delete a data table from the database. Also disables related indicators and remove any association inside meta.perimetre_geographique table.

Paramètres
  • region (str) – region key

  • table_name (str) – table name corresponding to both the real PostgreSQL table and the value inside meta.perimetre_geographique and indicateur formula.

async desactiver_analysis(analyse_id: int)

Désactivation d’une analyse

Paramètres

analyse_id (int) – identifiant d’analyse

async get_export_dataframe(zone: str, maille: str, zone_id: str, analysis_meta: dict, year: int | None, estimated_years: list) pd.DataFrame

Return a pandas Dataframe representing the analysis data to export to csv/excel. If year is not specified, every available year for the analysis will be included. If the data is confidential, the territory code is set to « 00000 »

async get_global_irradiation(region, zone, zone_id)

Récupère les valeurs d’irradiations moyennes pour le territoire concerné

get_historical_trajectory(df: pd.DataFrame) list | None
async get_history_by_category(region: str, zone_type: str, zone_id: str, table_name: str, category: str) list[dict[str]]
async get_pcaet_ademe(region: str, zone_type: str, zone_id: str) pd.DataFrame | None

Fonction qui renvoie les valeurs associées au pcaet ademe.

Renvoie

  • pd.DataFrame with columns ({) – « trajectory »: str, « year »: int, « category »: int, « is_ref »: bool, « value »: float,

  • }

  • or None if there is no PCAET associated to our zone_id

async get_pcaet_by_category(region: str, zone_type: str, zone_id: str, table_key: DataSet, category: str, enable_relative_pcaet: bool) list[dict[str]] | None
async get_pcaet_initial_trajectory(region: str, zone_type: str, zone_id: str, vals_observatoire: dict, observatory_year: int, enable_relative_pcaet: bool) dict[str, dict[str, float]] | None

Fonction qui renvoie les valeurs des trajectoires cibles initiales venant des PCAET. La première année correspond à la dernière année de l’observatoire disponible

Paramètres

enable_relative_pcaet (bool) – Si on veut les PCAET relatifs ou bruts

async get_pcaet_objectives(region: str, zone: str, zone_id: str, enable_relative_pcaet: bool) dict[str, dict[str]] | None

Fonction qui renvoie les valeurs des trajectoires PCAET complètes.

Paramètres

enable_relative_pcaet (bool) – Si on veut les PCAET relatifs ou bruts

async get_protected_tables(region)

Get protected tables for all modules in current region.

Check territorialsynthesis, supra-regional goals and territorial strategy modules.

Paramètres

region (str) – regional key

Renvoie

protected tables names

Type renvoyé

set

async get_relative_pcaet_ademe(region: str, zone_type: str, zone_id: str) pd.DataFrame | None

Fonction qui renvoie les valeurs associées au pcaet ademe relatif (proportion de baisse), multipliées par la valeur observée à l’année de référence.

Renvoie

  • pd.DataFrame with columns ({) – « trajectory »: str, « year »: int, « category »: int, « is_ref »: bool, « value »: float,

  • }

  • or None if there is no PCAET associated to our zone_id

async get_territorial_strategy_protected_tables(region)

Retrieve protected tables for territorial strategy module inside current region.

Paramètres

region (str) – regional key

Renvoie

protected tables names

Type renvoyé

set

get_total_from_historical_trajectory(key: str, data_loader: DataLoader) float | None
async get_unit_from_analysis(region, unit_id, indicator_id, zone=None)

Get unit from analysis and ID

Paramètres
  • region (str) – regional key

  • unit_id (int) – unit ID

  • indicator_id (int) – indicator ID

Renvoie

the content related to this unit

Type renvoyé

dict

async is_protected_analysis(region, analysis_id)

Get protected analyses in current region

Check territorialsynthesis module.

Paramètres

region (str) – regional key

Renvoie

protected tables names

Type renvoyé

set

async list_categories(region)

Retoune la liste des catégories

Paramètres
  • region (chaîne de caractères) – Région dont le nom est normalisé (exemples : auvergne-rhone-alpes, paysdelaloire, occitanie)

  • Retourne

  • --------

  • liste – Liste des catégories disponibles

async list_confid_layers(region: str)

Retrieve confid layers parameters for current region.

Paramètres

region (str) – key used for regional schema

async obtenir_code_region(region)
async recup_num_siren_mailles(region, zone, zone_id)

Renvoie le numéro de siren de la maille concernée

Simple : sans ratio ou sans part

Paramètres
  • region (str) –

  • zone (str) – Territoire

  • zone_id (int) – Identifiant du territoire

Type renvoyé

str

regulation_valeur_pcaet(dict_pcaet: dict[str, dict[str, float]]) dict[str, dict[str, float]]

Si la consommation d’énergie ou l’émission de GES est supérieure à l’objectif d’évolution, le pourcentage d’évolution est de 0%. Si la production d’ENR est inférieure à l’objectif d’évolution, le pourcentage d’évolution est de 0%.

async rename_analysis_ui_theme(old_name, new_name, region)

Rename indicators” category.

Paramètres
  • old_name (str) – Old category name

  • new_name (str) – New category name

  • region (str) – Region name

async update_analysis_ui_theme(data, region)

Mise à jour de l’ordre et du thème d’un indicateur

Paramètres

data (json) – {themes : {id_analyse: ordre} … }

async update_themes_ui_theme(data, region: str)

Mise à jour de l’ordre des themes

Paramètres

data (json) – {themes : {id_analyse: ordre} … }

async valeurs_initiales_trajectoire_cible(region, zone, zone_id, actions, enable_pollutants=False, enable_history=True)

Récupérer les valeurs initiales des trajectoires cibles (partie plan d’action)

Paramètres
  • region (str) –

  • zone (str) –

  • zone_id (str) –

Type renvoyé

dict

async valeurs_trajectoire_cible_reference(region, zone, zone_id)

Récupérer les valeurs des trajectoires cibles par défaut entrés via les interfaces admins (partie plan d’action)

Paramètres
  • region (str) –

  • zone (str) –

  • zone_id (str) –

Type renvoyé

dict

territorial synthesis module (controller)

Fonctions et requêtes SQL pour les notes et analyses territorialsynthesis

async get_territorialsynthesis_notes(schema: str, zone: str, zone_id: str, code: bool = False)

Récupération des notes d’un territoire et des statistiques sur tous les indicateurs territorialsynthesis

Paramètres
  • schema (str) – région (schéma en base)

  • zone (str) – type de territoire (scot, pnr…)

  • zone_id (str|int) – identifiant de territoire (peut être soit int soit str suivant le code utilisé)

  • code (bool) – si code = True alors on fait la requête via le code territoire (insee) à la place de son identifiant

Renvoie

list[Dict] – identifiant de l’analyse numero de l’analyse thème de l’analyse valeur du territoire unité de l’indicateur note du territoire note de la médiane sur tous les territoires du même type valeur médiane valeur min valeur max

Type renvoyé

liste des indicateurs avec

async update_territorialsynthesis_notes(region, notes)

Insertion des notes CESBA pour les couples types territoire / analyse

async update_territorialsynthesis_stats(region, terr, aid, vmin, vmax, medi, median_note)

Insertion des données de statisiques des indicateurs territorialsynthesis sur un type de territoire donné et une analyse donnée

donnees_pour_representation module

Module pour les classes dont le rôle est de formatter la donnée pour les visualiser selon une représentation spécifique

class DonneesPourRepresentationCartoIndicateurAutreMaille(caracteristiques_indicateur, maille, type_territoire, code_territoire, specific_year=None, specific_unit_params={})

Bases : DonneesPourRepresentations

async obtenir_donnees(provenance)
class DonneesPourRepresentationCartoIndicateurClimat(caracteristiques_indicateur, maille, type_territoire, code_territoire, specific_year=None, specific_unit_params={})

Bases : DonneesPourRepresentations

async define_periods(max_min_year)

Cette fonction permet de calculer les périodes ancienne et récente d’un jeu de données climat

Paramètres

max_min_year – [{min_year : annee_minimal, max_year : annee_maximal}]

async min_max_year()

Selection des années minimale et maximale de disponibilité de données climat

async obtenir_donnees(provenance)
Cette fonction permet de:
  • calculer l’évolution global de l’indicateur climat par territoire

  • retourner les données map de l’indicateur

  • retourner les données des stations de mesures

  • retourner les données charts par station sur une période allant de l’année minimale jusqu’à l’année maximal

class DonneesPourRepresentationCartoIndicateurDataRatio(caracteristiques_indicateur, maille, type_territoire, code_territoire, specific_year=None, specific_unit_params={})

Bases : DonneesPourRepresentations

Retourne les données spécifiquement structurées pour les indicateurs qui consistent à diviser un indicateur par un autre

Cf. Documentation des attributs de la classe mère Representations. À faire : définir deux attributs supplémentaires : - Les données associées à l’indicateur courant, - Les données associées à l’indicateur par lequel on divise Puis factoriser ensuite la gestion de la confidentialité.

async obtenir_donnees(provenance, filtres_categorie={})

Retourne les données pour les indicateurs de type “data_ratio”

Renvoie

donnees_carto – {« map »: données retournées par _obtenir_donnees_par_territoire, confid: {“charts”: Type de confidentialité “A”, “B”, “C”, ou “D”}, total: {“val”: total, “divider”: None}, min_max_valeurs: {“min”: minimum, “max”: maximum} }

Type renvoyé

dict

class DonneesPourRepresentationCartoIndicateurFiltre(caracteristiques_indicateur, maille, type_territoire, code_territoire, specific_year=None, specific_unit_params={})

Bases : DonneesPourRepresentations

Cf. Documentation de la classe mère DonneesPourRepresentationCarto

async obtenir_donnees(provenance, filtre=0, filtres_categorie={})

Retourne les données finales par territoire en ajoutant la confidentialité pour les graphiques et autres informations nécessaires

Paramètres
  • filtre (entier) – valeur de seuil avec laquelle on filtre les valeurs d’une des colonnes de la table à partir de laquelle on construit l’indicateur

  • filtres_categorie – Cf. la documentation de la méthode _construire_requetes_filtres_categories

Renvoie

{« map »: données retournées par _obtenir_donnees_par_territoire, confid: {“charts”: Type de confidentialité “A”, “B”, “C”, ou “D”}, total: {“val”: total, “val_proportion”: proportion pour le territoire sélectionné, “divider”: None}, min_max_valeurs: {“min”: minimum, “max”: maximum}, bornes_filtre: {“min”: minimum, “max”: maximum} Cf. documentation de la méthode _moyenne_proportion }

Type renvoyé

Dictionnaire

class DonneesPourRepresentationCartoIndicateurFlux(caracteristiques_indicateur, maille, type_territoire, code_territoire, specific_year=None, specific_unit_params={})

Bases : DonneesPourRepresentations

async obtenir_donnees(provenance, filtre, filtres_categorie={})

Retourne les données finales par territoire pour les données de flux (exemple : migrations pendulaires)

Paramètres

filtres_categorie – Cf. la documentation de la méthode _construire_requetes_filtres_categories

Renvoie

{« map »: [{“val”: 392.0, “orig”: [x_origine, y_origine], “dest”: [x_dest, y_dest], “country_dest”: “99999”, “lab_o”: nom du territoire de départ, “lab_d”: Nom du territoire d’arrivée}, …, {}], confid: {“charts”: Type de confidentialité “A”, “B”, “C”, ou “D”}, total: {“val”: total, “divider”: None}, min_max_valeurs: {“min”: minimum, “max”: maximum} }

Type renvoyé

Dictionnaires

class DonneesPourRepresentationCartoIndicateurSimple(caracteristiques_indicateur, maille, type_territoire, code_territoire, specific_year=None, specific_unit_params={})

Bases : DonneesPourRepresentations

async obtenir_donnees(provenance, filtres_categorie={})

Retourne les données finales par territoire en ajoutant la confidentialité pour les graphiques et autres informations nécessaires

Paramètres

filtres_categorie – Cf. la documentation de la méthode _construire_requetes_filtres_categories

Renvoie

{« map »: données retournées par _obtenir_donnees_par_territoire, total: {“val”: total, “divider”: None}, min_max_valeurs: {“min”: minimum, “max”: maximum} }

Type renvoyé

Dictionnaire

class DonneesPourRepresentationCartoMoyennePonderee(caracteristiques_indicateur, maille, type_territoire, code_territoire, specific_year=None, specific_unit_params={})

Bases : DonneesPourRepresentations

Cette classe permet d’obtenir les données cartographiques (par territoire) pour un indicateur de type moyenne pondérée

Cf. Documentation des attributs de la classe mère Representations.

async obtenir_donnees(provenance, filtres_categorie)

Obtention des données moyenne pondérée (d’une colonne par l’autre)

Paramètres
  • provenance (str) – page depuis laquelle l’indicateur est lancé (ex : carto, suivi_energetique etc.) )

  • filtres_categorie (dictionnaire) – Cf. la documentation de la méthode _construire_requetes_filtres_categories

Type renvoyé

Dictionnaire comprenant un tableau de valeurs par territoire

class DonneesPourRepresentationCourbesEmpilees(*args, **kwargs)

Bases : DonneesPourRepresentations

Obtention des données formattées pour créer des diagrammes circulaires.

Paramètres
  • indicateur_tableau_bord (IndicateurTableauBord) – Objet IndicateurTableauBord dont les attributs permettent de définir l’indicateur à représenter

  • maille (str) – Nom de la maille territoriale telle qu’écrite en base

  • type_territoire (str) – Zone territoriale telle qu’écrite en base

  • code_territoire (str) – Code du territoire

force_years(years)
async obtenir_donnees(filtres_categorie)

Retourne les données formattées pour les courbes empilées.

Renvoie

Un dictionnaire avec deux clés : unite et analyse. La valeur associée à la clé analyse est en fait un dictionnaire qui contient les données formattées par catégorie.

Type renvoyé

dict

class DonneesPourRepresentationCourbesHistoriques(caracteristiques_indicateur, maille, type_territoire, code_territoire, specific_year=None, specific_unit_params={})

Bases : DonneesPourRepresentations

Obtention des données formatées pour créer des courbes historiques.

async obtenir_donnees(provenance, filtre_categorie={})
class DonneesPourRepresentationDiagramme(caracteristiques_indicateur, maille, type_territoire, code_territoire, specific_year=None, specific_unit_params={})

Bases : DonneesPourRepresentations

Obtention des données formattées pour créer des diagrammes circulaires.

async obtenir_donnees(provenance, filtre=0, filtres_categorie={})

Retourne les données par catégories (nom de la catégorie, valeurs, libellés des modalités etc.)

Paramètres
  • filtre (entier) – valeur de seuil avec laquelle on filtre les valeurs d’une des colonnes de la table à partir de laquelle on construit l’indicateur

  • filtres_categorie – Cf. la documentation de la méthode _construire_requetes_filtres_categorie

class DonneesPourRepresentationDiagrammeCategoriesIndependantes(caracteristiques_indicateur, maille, type_territoire, code_territoire, specific_year=None, specific_unit_params={})

Bases : DonneesPourRepresentationDiagramme

Retourne les données par catégories pour les indicateurs pour lesquelles les catégories sont indépendantes les unes par rapport aux autres

Paramètres

Representations (Cf. Documentation des attributs de la classe mère) –

async obtenir_donnees(provenance, filtres_categorie)

Obtention des données moyenne pondérée (d’une colonne par l’autre) pour chaque catégorie

Paramètres
  • provenance (str) – page depuis laquelle l’indicateur est lancé (ex : carto, suivi_energetique etc.) )

  • filtres_categorie (dictionnaire) – Cf. la documentation de la méthode _construire_requetes_filtres_categories

Type renvoyé

Dictionnaire comprenant un tableau de valeurs par catégorie

class DonneesPourRepresentationHistogramme(caracteristiques_indicateur, maille, type_territoire, code_territoire, specific_year=None, specific_unit_params={})

Bases : DonneesPourRepresentations

Obtention des données formatées pour créer des proportionnels en forme des histogrammes.

async obtenir_donnees()

Retourne les données formattées pour l’histogramme cumulé.

class DonneesPourRepresentationHistogrammeDataRatio(caracteristiques_indicateur, maille, type_territoire, code_territoire, specific_year=None, specific_unit_params={})

Bases : DonneesPourRepresentations

Obtention des données formatées pour créer des proportionnels en forme des histogrammes.

async obtenir_donnees(provenance, filtre_categorie={})
class DonneesPourRepresentationHistogrammeIndicateurUnique(caracteristiques_indicateur, maille, type_territoire, code_territoire, specific_year=None, specific_unit_params={})

Bases : DonneesPourRepresentations

Obtention des données formatées pour créer des proportionnels en forme des histogrammes.

async obtenir_donnees(filtre_categorie={})

Retourne les données formatées d’un seul indicateur pour la construction d’un histogramme.

class DonneesPourRepresentationJauge(caracteristiques_indicateur, maille, type_territoire, code_territoire, specific_year=None, specific_unit_params={})

Bases : DonneesPourRepresentations

Obtention des données formattées pour créer des pictos proportionnels en forme du territoire sélectionné.

Paramètres
  • indicateur_tableau_bord (IndicateurTableauBord) – Objet IndicateurTableauBord dont les attributs permettent de définir l’indicateur à représenter

  • maille (str) – Nom de la maille territoriale telle qu’écrite en base

  • type_territoire (str) – Zone territoriale telle qu’écrite en base

  • code_territoire (str) – Code du territoire

async obtenir_donnees()

Retourne les données formattées pour les jauges de territoires.

Type renvoyé

dict

class DonneesPourRepresentationJaugeCirculaire(caracteristiques_indicateur, maille, type_territoire, code_territoire, specific_year=None, specific_unit_params={})

Bases : DonneesPourRepresentations

Obtention des données formattées pour créer des proportionnels en forme des diagrammes semi circulaire.

Paramètres
  • indicateur_tableau_bord (IndicateurTableauBord) – Objet IndicateurTableauBord dont les attributs permettent de définir l’indicateur à représenter

  • maille (str) – Nom de la maille territoriale telle qu’écrite en base

  • type_territoire (str) – Zone territoriale telle qu’écrite en base

  • code_territoire (str) – Code du territoire

async obtenir_donnees()

Retourne les données formattées (pourcentage) pour les jauges semi circulaire.

class DonneesPourRepresentationMarqueurSVG(caracteristiques_indicateur, maille, type_territoire, code_territoire, specific_year=None, specific_unit_params={})

Bases : DonneesPourRepresentations

Obtention des données formatées pour créer des Marqueurs SVG

Paramètres
  • indicateur_tableau_bord (IndicateurTableauBord) – Objet IndicateurTableauBord dont les attributs permettent de définir l’indicateur à représenter

  • maille (str) – Nom de la maille territoriale telle qu’écrite en base

  • type_territoire (str) – Zone territoriale telle qu’écrite en base

  • code_territoire (str) – Code du territoire

async obtenir_donnees(filters)

Retourne les données formatées(Total).

class DonneesPourRepresentationNomSimple(caracteristiques_indicateur, maille, type_territoire, code_territoire, specific_year=None, specific_unit_params={})

Bases : DonneesPourRepresentations

Obtention des données formatées pour créer des étiquettes avec le nom d’indicateurs

Paramètres
  • indicateur_tableau_bord (IndicateurTableauBord) – Objet IndicateurTableauBord dont les attributs permettent de définir l’indicateur à représenter

  • maille (str) – Nom de la maille territoriale telle qu’écrite en base

  • type_territoire (str) – Zone territoriale telle qu’écrite en base

  • code_territoire (str) – Code du territoire

async obtenir_donnees()

Retourne les données formatées(Nom, unité, id, total).

class DonneesPourRepresentationPixels(caracteristiques_indicateur, maille, type_territoire, code_territoire, specific_year=None, specific_unit_params={})

Bases : DonneesPourRepresentations

Obtention des données formatées pour une carte de pixels

Paramètres
  • indicateur_tableau_bord (IndicateurTableauBord) – Objet IndicateurTableauBord dont les attributs permettent de définir l’indicateur à représenter

  • maille (str) – Nom de la maille territoriale telle qu’écrite en base

  • type_territoire (str) – Zone territoriale telle qu’écrite en base

  • code_territoire (str) – Code du territoire

async get_stats_on_indicator()

Retourne les valeurs minimale et maximale de l’indicateur pour le territoire sélectionné

Paramètres

resultats (dictionnaire) – Résultats retournés par _donnees_par_territoire de la classe fille DonneesPourRepresentationCarto

Renvoie

{« min » : valeur minimale, « max » : valeur maximale}

Type renvoyé

dictionnaire

async obtenir_donnees()

Retourne les données finales par territoire en ajoutant la confidentialité pour les graphiques et autres informations nécessaires

Paramètres
  • filtre (entier) – valeur de seuil avec laquelle on filtre les valeurs d’une des colonnes de la table à partir de laquelle on construit l’indicateur

  • filtres_categorie – Cf. la documentation de la méthode _construire_requetes_filtres_categories

Renvoie

{« map »: données retournées par _obtenir_donnees_par_territoire, confid: {“charts”: Type de confidentialité “A”, “B”, “C”, ou “D”}, total: {“val”: total, “val_proportion”: proportion pour le territoire sélectionné, “divider”: None}, min_max_valeurs: {“min”: minimum, “max”: maximum}, bornes_filtre: {“min”: minimum, “max”: maximum} Cf. documentation de la méthode _moyenne_proportion }

Type renvoyé

Dictionnaire

class DonneesPourRepresentationPixelsCategory(caracteristiques_indicateur, maille, type_territoire, code_territoire, specific_year=None, specific_unit_params={})

Bases : DonneesPourRepresentations

Obtention des données formatées pour une carte de pixels qualitatifs

Paramètres
  • indicateur_tableau_bord (IndicateurTableauBord) – Objet IndicateurTableauBord dont les attributs permettent de définir l’indicateur à représenter

  • maille (str) – Nom de la maille territoriale telle qu’écrite en base

  • type_territoire (str) – Zone territoriale telle qu’écrite en base

  • code_territoire (str) – Code du territoire

async get_distinct_values()

Retourne les valeurs distinctes des catégories pour le territoire sélectionné

Paramètres

resultats (dictionnaire) – Résultats retournés par _donnees_par_territoire de la classe fille DonneesPourRepresentationCarto

Renvoie

{« min » : valeur minimale, « max » : valeur maximale}

Type renvoyé

dictionnaire

async obtenir_donnees()

Retourne les données finales par territoire en ajoutant la confidentialité pour les graphiques et autres informations nécessaires

Paramètres
  • filtre (entier) – valeur de seuil avec laquelle on filtre les valeurs d’une des colonnes de la table à partir de laquelle on construit l’indicateur

  • filtres_categorie – Cf. la documentation de la méthode _construire_requetes_filtres_categories

Renvoie

{« map »: données retournées par _obtenir_donnees_par_territoire, confid: {“charts”: Type de confidentialité “A”, “B”, “C”, ou “D”}, total: {“val”: total, “val_proportion”: proportion pour le territoire sélectionné, “divider”: None}, min_max_valeurs: {“min”: minimum, “max”: maximum}, bornes_filtre: {“min”: minimum, “max”: maximum} Cf. documentation de la méthode _moyenne_proportion }

Type renvoyé

Dictionnaire

class DonneesPourRepresentations(caracteristiques_indicateur, maille, type_territoire, code_territoire, specific_year=None, specific_unit_params={})

Bases : Representations

Hérite des attributs et méthodes de Representation grâce auxquelles la méthode de cette classe retourne les données dont on a besoin pour afficher la visualisation cartographique des indica- teurs. Instancie également dynamiquement les classes filles selon la situation.

async donnees_finales(provenance, filtre, filtres_categorie, reinitialiser_filtres=False)

Permet d’obtenir les données qu’on souhaite restituer à l’interface cartographique On y intègre les données relatives à la confidentialité des graphiques et des territoires

Paramètres
  • filtre (entier) – Seuil qu’on définit au moyen d’une réglette et avec lequel on filtre les valeurs sur une colonne à spécifier

  • filtres_categorie (dict) – Cf. documentation de la méthode _construire_requetes_filtres_categories

class FabriqueRepresentations(caracteristiques_indicateur, maille, type_territoire, code_territoire, specific_year=None, specific_unit_params={})

Bases : Representations

Instancie dynamiquement les classes filles de Representations En fonction de l’indicateur sélectionné par l’utilisateur.rice, on a besoin d’instancier la classe appropriée

Paramètres

Représentations. (Cf. Documentation de la classe mère) –

abstract donnees_finales()
class FabriqueRepresentationsTableauBord(indicateur_tableau_bord, maille, type_territoire, code_territoire, representation, **kwargs)

Bases : FabriqueRepresentations

Instancie dynamiquement les représentations d’indicateurs pour les afficher dans les tableaux de bord

Paramètres
  • mère (Cf. attributs de la classe) –

  • representation (str) – Représentation sélectionnée par l’utilisateur.rice (courbes empilées, diagrammes circulaires, jauge etc.)

async donnees_finales(provenance, filtres_categorie={})

Retourne les données restituées dans les tableaux de bord

Paramètres

filtres_categorie (dict) – Cf. documentation de la méthode _construire_requetes_filtres_categories

Renvoie

Données retournées par les méthodes obtenir_donnees associées à chaque classe fille instanciées dans cette méthode.

Type renvoyé

Dictionnaire

property afficher_indicateur_maille
class Representations(caracteristiques_indicateur, maille, type_territoire, code_territoire, specific_year=None, specific_unit_params={})

Bases : ABC

Obtention des données formattées en fonction de la manière dont on souhaite les représenter. On peut représenter les données : - De manière cartographique ; - Sous formes de graphiques restitués avec react-chart-js

Cette classe contient une méthode abstraite obtenir_donnees redéfinies dans les classes filles et des méthodes dont on ne se sert que dans la méthode finale (considérée comme privée).

Parmi les méthodes annexes, certaines permettent de générer les bouts de requêtes grâce auxquels on gère la confidentialité ou encore les filtres.

Paramètres
  • indicateur_tableau_bord (IndicateurTableauBord) – Objet IndicateurTableauBord dont les attributs permettent de définir l’indicateur à représenter

  • maille (str) – Nom de la maille territoriale telle qu’écrite en base

  • type_territoire (str) – Zone territoriale telle qu’écrite en base

  • code_territoire (str) – Code du territoire

  • specific_year (integer, optional) – Specific year to retrieve, if not specified will take max of available years, default None.

  • specific_unit_params (dict, optional) – Specific unit to use, default {}.

async get_columns_concerned_by_confid()
async obtenir_donnees_par_categorie(donnees, liste_categories, total_ratio)

Agrège les données par territoires et catégorie afin de ne conserver que les données par catégorie

Paramètres
  • donnees (Liste) – Liste de dictionnaires contenant les données par territoire et catégorie

  • liste_categories (Liste) – Liste des catégories disponibles pour l’indicateur exécuté

Type renvoyé

Liste de dictionnaires avec uniquement les données par catégorie

obtenir_donnees_par_territoire(donnees, liste_categories)

Agrège les données par territoires et catégorie afin de ne conserver que les données par territoires

Paramètres
  • donnees (Liste) – Liste de dictionnaires contenant les données par territoire et catégorie

  • liste_categories (Liste) – Liste des catégories disponibles pour l’indicateur exécuté

Type renvoyé

Liste de dictionnaires avec uniquement les données par territoire

obtenir_liste_categories()
property afficher_indicateur_maille
property unit_factor

gestion_images module

class SuppressionElement(path_folder)

Bases : object

Classe pour supprimer un ou plusieurs éléments d’un dossier.

Paramètres

path_folder (le chemin du dossier) –

class SuppressionUniqueFichierDossier(path_folder)

Bases : SuppressionElement

Classe pour supprimer un élément d’un dossier.

Paramètres

path_folder (le chemin du dossier) –

supprimer_unique_fichier_dossier(path_file)

Fonction qui supprime un élément précis d’un dossier

ecriture_image_base64(image, output_path)

Fonction qui écrit des images en base 64 sur le serveur.

Paramètres
  • image (image en base64) –

  • output_path (le chemin de sortie) –

list_path_file(path_folder, extension_file)

Fonction qui renvoie une liste de path file.

Paramètres
  • path_folder (le chemin du dossier) –

  • extension_image (l'extension du type d'image qu'on recherche) –

Type renvoyé

list

indicateur_tableau_bord module

Module qui contient la classe dont le rôle est de retourner toutes les caractéristiques d’une analyse (métadonnées, représentations possibles)

class IndicateurTableauBord(region, id_indicateur)

Bases : object

Obtention des métadonnées d’un indicateur et définition des représentations possibles

Paramètres
  • region (str) – Nom de la région (schéma en base)

  • id_indicateur (int) – identifiant de l’indicateur

async meta_donnees_indicateur(caracteristiques_indicateur=None)
property schema

mesure_audience module

class MesureDAudience(region)

Bases : object

Obtention et insersion en base des données de navigation des utilisateur.rices.

Paramètres
  • region (str) – Nom de la région sans majuscule ni accent (ex : auvergne-rhone-alpes)

  • ip (str) – Adresse ip du client

async commune()

Retourne le nom de la commune depuis laquelle l’utilisateur.trice utilise TerriSTORY

async inserer_donnees_localisation()

Insère les données de localisation de l’utilisateur.rice

property date
property ip_anonymisee
property nom_schema
class MesureDAudienceActions(region, code_territoire, type_territoire, liste_actions, liste_trajectoires_cibles, type_action)

Bases : MesureDAudienceTerritoriale

Insère les données de navigation dans la table propre à la consultation des actions et trajectoires cibles

Paramètres
  • liste_actions (liste) – liste des actions cochées

  • liste_trajectoires_cibles (liste) – liste des trajectoires cibles modifiées par l’utilisateur.rice

  • type_action (str) – Précision quant à la manière dont les calculs sont lancés : lancement de calculs ou export ADEME ?

async inserer_donnees_consultations(id_utilisateur)

Insère les données de navigation propres aux actions et trajectoires cibles

class MesureDAudienceAnalysesTerritoriales(region, code_territoire, type_territoire, page)

Bases : MesureDAudienceTerritoriale

Insère les données de navigation propres aux pages d’analyses territoriales

Paramètres

page (str) – Page consultée (suivi des indicateurs territoriaux ou analyses territoriales)

async inserer_donnees_consultations(id_utilisateur)

Insère les données de navigation propres aux analyses territoriales

class MesureDAudienceAutresPages(region, page, details='')

Bases : MesureDAudience

Insère les données de navigation propres aux autres pages qui ne sont pas déjà gérées par d’autres classes (A propos, contact, etc.).

Paramètres
  • region (str) – Région sélectionnée

  • page (str) – Page consultée

  • details (str (default='')) – Détails sur la page consultée

async inserer_donnees_consultations(id_utilisateur)

Insère les données de navigation propres aux analyses territoriales

Paramètres

id_utilisateur (int) – Le token de l’utilisateur qui visite

class MesureDAudienceIndicateurs(provenance, region, code_territoire, type_territoire, id_indicateur)

Bases : MesureDAudienceTerritoriale

Insère les données de navigation dans la table propre à la consultation des indicateurs

Paramètres
  • provenance (str) – Page depuis laquelle l’indicateur est consulté (depuis l’inteface carto ou la page de création des tableau de bord)

  • id_indicateur (int) – Identifiant unique de l’indicateur consulté

async inserer_donnees_consultations(id_utilisateur)

Insère les données de navigation propres aux indicateurs

class MesureDAudiencePoi(region, code_territoire, type_territoire, nom_couche, cochee)

Bases : MesureDAudienceTerritoriale

Insère les données de consultation des couches POI

Paramètres
  • nom_couche (str) – Nom de la couche POI. Est préféré à l’ID pour ne pas être dépendant de l’état de la BDD à un instant donné

  • cochee (booléen) – Renvoie True si la couche a été activée et False si elle a été désactivée

async inserer_donnees_consultations(id_utilisateur)

Insère les données de navigation propres aux couches d’entités ponctuelles

class MesureDAudienceTableauxBords(region, code_territoire, type_territoire, tableau_bord_id, tableau_bord_nom)

Bases : MesureDAudienceTerritoriale

Insère les données de consultation des tableaux de bords

Paramètres
  • tableau_bord_id (id) – ID du tableau de bord visionné

  • tableau_bord_nom (str) – Nom du tableau de bord

async inserer_donnees_consultations(id_utilisateur)

Insère les données de navigation propres aux couches d’entités ponctuelles

class MesureDAudienceTerritoriale(region, code_territoire, type_territoire, donnees_ip='')

Bases : MesureDAudience

Classe intermédiaire pour l’ensemble des mesures d’audience qui s’appuient sur des territoires et nécessitent donc de spécifier le type et le code de territoire lors de la consultation.

Paramètres
  • code_territoire (str) – Code du territoire sélectionné

  • type_territoire (str) – Type de territoire sélectionné

  • donnees_ip (str) – Données sur l’IP (géolocalisation approximative)

pcaet_ademe module

Fonctions pour l’insertion automatisée des PCAET disponibles sur le site de l’Ademe.

exception PcaetError

Bases : Exception

class BasePcaet(csv_chemin: str)

Bases : object

Base class for all PCAET DataFrame manipulation classes

create_final_df()

Get the final dataframe for the specified PCAET

define_reference_years()

Rename or reference years columns to annee_compta_{trajectory}.

drop_empty_values(df: pandas.DataFrame) pandas.DataFrame

Remove lines containins NA or zeros values when necessary

get_df_with_new_columns() pandas.DataFrame
get_input_columns() list[str]

Liste des colonnes du DataFrame au format initial ADEME.

get_regex_list() list[str]

Liste des expressions régulière qu’on va utiliser pour sélectionner les colonnes du df.

get_trajectories() list[str]

Liste des types de trajectoires qu’on va utiliser pour notre df final.

read_csv()
sort_out_older_duplicates()

Met à jour le dataframe en ne conservant que la version la plus récente pour chaque territoire.

class PcaetEnr(csv_chemin: str)

Bases : BasePcaet

Renvoie un dataframe avec les données du PCAET Enr.

define_reference_years()

Défini l’année maximal du diagnostique.

get_input_columns()

Liste des colonnes du DataFrame au format initial ADEME.

get_regex_list()

Liste des expressions régulière qu’on va utiliser pour sélectionner les colonnes du df.

get_trajectories()

Liste des types de trajectoires qu’on va utiliser pour notre df final.

class PcaetPecSeq(csv_chemin: str)

Bases : BasePcaet

Renvoie un dataframe avec les données du PCAET Pec seq.

define_reference_years()

Rename or reference years columns to annee_compta_{trajectory}.

get_input_columns()

Liste des colonnes du DataFrame au format initial ADEME.

get_regex_list()

Liste des expressions régulière qu’on va utiliser pour sélectionner les colonnes du df.

get_trajectories()

Liste des types de trajectoires qu’on va utiliser pour notre df final.

class PcaetPolluant(csv_chemin: str)

Bases : BasePcaet

Renvoie un dataframe avec les données du PCAET Polluants atmosphériques.

define_reference_years()

Rename or reference years columns to annee_compta_{trajectory}.

get_input_columns()

Liste des colonnes du DataFrame au format initial ADEME.

get_regex_list()

Liste des expressions régulière qu’on va utiliser pour sélectionner les colonnes du df.

get_trajectories()

Liste des types de trajectoires qu’on va utiliser pour notre df final.

async add_siren_val(schema: str, maille: str, siren: str, code: str)

Ajoute les numéro de siren à la maille souhaitée.

Paramètres
  • schema (str) – Nom de la région (schéma en base)

  • maille (str) – Maille associé à la région

  • siren (str) – Numéro de siren

  • code (str) – Code de la maille

async attribution_code_siren()
create_pcaet_dataframe(region: str) pandas.DataFrame

Returns the PCAET dataframe created from all trajectory sources (pec_seq, enr and polluant). The columns of the dataframe are : siren, trajectory, category, year, value, variation and is_ref.

delete_pcaet_files(region: str)

Supprime les fichiers pcaet au format csv.

download_updated_pcaet(csv_url: str, type_fichier: str, region: str)

Cette fonction récupère les dernières versions de PCAET sur le site de l’Ademe: https://www.territoires-climat.ademe.fr/opendata Et les stocke dans des fichiers locaux

Parameters
csv_urlstr

URL vers le fichier CSV avec le numéro de version entre accolades et dans cette accolade la valeur “val”. Ex : https://www.territoires-climat.ademe.fr/opendata/Demarches_PCAET_V{val}_pec_seq.csv

type_fichier: str

Type de pcaet à récupérer. Peut être « pec_seq », « enr », « polluants »…

regionstr

Region transmise lors de l’appel de la fonction MAJ PCAET par l’URL

get_pcaet_paths(region: str) list[str]

Returns the list of paths corresponding to each existing version of each trajectory. Earlier version are place prior to later ones. [pec_seq_V1, pec_seq_V2, enr_V1, …]

async get_siren_numbers() list[str]

Renvoie la liste des numéros de siren des pcaet de la table pcaet_ademe.

Type renvoyé

list

async get_zone_id_associated_to_commune(schema: str, zone_type: str, commune: str) str | None
async mettre_a_jour_la_table_pcaet(region: str, csv_url_pec_seq: str, csv_url_enr: str, csv_url_polluant: str)
retrieve_web_information(siren_numbers: list[str]) dict[str, list]

Renvoie les numéros de siren de la table pcaet ademe associés à leur type de maille.

async update_db_with_new_pcaet(pcaet_df: pandas.DataFrame)

Insert PCAET dataframe into the database.

perimetres module

async convert_archive_to_folder(input_path, output_path)

Télécharge les données communales admin express de l’IGN

Paramètres
  • annee (entier) – Année dont datent les données à télécharger

  • input_path (chaîne de caractères) – Chemin d’accès au répertoire où déposer ces données

async integration_donnees_ign(schema)

Intègre la table des communes dans le schéma régional à partir des données IGN téléchargée automatiquement

Paramètres

schema (str) – Nom du schéma régional

async liste_donnees_perimetres(region)

poi module

Gestion des couches de Point d’Intérêt aka POI

  • Installation méthanisation

  • Installation réseaux de chaleur

  • bornes d’infra de recherche de véhicules électriques (IRVE)

async create_poi(region, user, layer, properties, geom)

Création d’une POI dans une couche donnée

Paramètres
  • region (str) – region key

  • user (terriapi.controller.user.User) – Utilisateur

  • layer (str) – Nom de la couche POI (i.e. nom de la table)

  • properties (dict) – Données attributaires (JSON)

  • geom (tuple) – Coordonnées x (lon), y (lat)

async create_poi_contribution(region, user, layer, properties, geom)

Création d’une POI dans une couche donnée

Paramètres
  • region (str) – region key

  • user (terriapi.controller.user.User) – Utilisateur

  • layer (str) – Nom de la couche POI (i.e. nom de la table)

  • properties (dict) – Données attributaires (JSON)

  • geom (tuple) – Coordonnées x (lon), y (lat)

async delete_poi_layer(schema, layer, table_name)

Delete a POI layer.

Paramètres
  • region (str) – region key

  • layer (int) – poi layer key inside regional poi layer table

  • table_name (str) – poi layer table name

async delete_poi_object(region, user, layer, id)

Suppression d’une POI dans une couche donnée

Paramètres
  • region (str) – region key

  • user (terriapi.controller.user.User) – Utilisateur

  • layer (str) – Nom de la couche POI (i.e. nom de la table)

  • id (integer) – ID de l’objet à supprimer

async delete_poi_object_contribution(region, user, layer, record_id)

Suppression d’une POI dans une couche donnée

Paramètres
  • region (str) – region key

  • user (terriapi.controller.user.User) – Utilisateur

  • layer (str) – Nom de la couche POI (i.e. nom de la table)

  • id (integer) – ID de l’objet à supprimer

async get_layers_constraints(region: str, layers: str | list)

Get POI themes for a region.

Paramètres

region (str) – Region name

async get_poi_contribution(region, edit_id)

Retrieve a specific contribution for current region

Paramètres
  • region (str) – region key

  • edit_id (int) – contribution ID

async get_poi_contributions(region, layers: str | list = '*', edit_id=None)

Retrieve contributions list for current region

Paramètres

region (str) – region key

async get_themes(region: str)

Get POI themes for a region.

Paramètres

region (str) – Region name

async historique_poi(region)

Récupère et traite l’historique des modifications des couches POI

Paramètres

region (str) – region key

linear_dict(dic)

Flattens a dict to a list of strings.

async obtenir_installation_et_geom(schema, liste_tables, main_schema='', zone=None, zone_id=None)

Permet d’obtenir la liste des propriétés et des geométries des équipement

Paramètres
  • schema (chaîne de caractères) – schéma régional consacré aux équipements

  • liste_tables (liste) – liste de couches qui contiennent des données équipements

  • main_schema (chaîne de caractères) – shéma régional

  • zone (chaîne de caractères) – type de zone dans laquelle récupérer les équipements

  • zone_id (chaîne de caractères) – id de la zone. Si aucune zone n’est spécifiée, tous les équipements de la région sont retournés

Type renvoyé

Dictionnaire contenant les géométries et les propriétés des couches

async obtenir_tables_equipements_autres_que_points(schema)

Obtention des nom des tables qui contiennent des données d’équipements dont la géométrie n’est pas le point

Paramètres

schema (Chaîne de caractères) – Nom du schéma régional

Type renvoyé

Liste des tables qui contiennent les données des équipements représentés par d’autres géométries que le point.

async rename_theme(old_name, new_name, region)

Rename indicators” theme.

Paramètres
  • old_name (str) – Old theme name

  • new_name (str) – New theme name

  • region (str) – Region name

async update_contribution(region, edit_id, action)

Update a contribution status inside meta table

Paramètres

region (str) – region key

async update_order_within_themes(data, region)

Update layers” order within their theme.

Paramètres

data (json) – {themes : {id_analyse: ordre} … }

async update_poi(region, user, layer, record_id, properties, geom)

UPDATE a POI object in a layer

Paramètres
  • region (str) – region key

  • user (terriapi.controller.user.User) – Utilisateur

  • layer (str) – Nom de la couche POI (i.e. nom de la table)

  • record_id (int) – Identifiant de l’élément à modifier

  • properties (dict) – Données attributaires (JSON)

  • geom (tuple) – Coordonnées x (lon), y (lat)

async update_poi_contribution(region, user, layer, record_id, properties, geom)

Mise à jour d’un objet dans une couche POI

Paramètres
  • region (str) – region key

  • user (terriapi.controller.user.User) – Utilisateur

  • layer (str) – Nom de la couche POI (i.e. nom de la table)

  • record_id (int) – Identifiant de l’élément à modifier

  • properties (dict) – Données attributaires (JSON)

  • geom (tuple) – Coordonnées x (lon), y (lat)

async update_poi_edition_rights(region, layer, droit, user)

Mise à jour des droits (modifiable) pour une couche POI

Paramètres
  • region (str) – region key

  • layer (str) – Nom de la couche POI (i.e. nom de la table)

  • droit (boolean) – Modifiable ou non

async update_theme_order(data, region: str)

Update themes order inside a region.

Paramètres

data (json) – {themes : {id_analyse: ordre} … }

async validate_contribution(constraints: list, properties: dict)

Get POI themes for a region.

Paramètres

region (str) – Region name

pop_up_accueil module

Fonction qui trie les images à défiler dans le carousel dans l’ordre et par groupe d’images.

Paramètres
  • region (la région à mettre à jour) –

  • str

  • path (le chemin vers le dossier) –

  • str

  • all_images (la liste des noms d'images) –

  • list

Type renvoyé

list

suppression_images_region_pop_up_accueil(region, path_folder)

Fonction qui supprime les images qu’une région avait choisi pour son carousel.

Paramètres
  • region (la région à mettre à jour) –

  • str

  • path (le chemin vers le dossier) –

  • str

async update_actu_pop_up(region, texte_markdown)

Fonction qui met à jour le contenu de la fenêtre d’actu.

Paramètres
  • region (la région à mettre à jour) –

  • texte_markdown (le texte en langage markdown) –

regions_configuration module

Fonctions et requêtes SQL sur la gestion des configurations des régions

async get_configuration(id=None, with_private=False)

Return main regions configuration from database.

async get_data_units(region)

Returns the list of units available in current region.

async get_impacts_configurations(region)

Returns the regional strategy impacts configuration from the database.

async get_poi_contributions_managers(region, layer)

Returns the list of units available in current region.

async get_sankeys_configuration(id=None)
async get_seo_configuration(region)

Returns the regional SEO configuration from the database.

saisie_objectifs module

async ajout_objectif(region: str, donnees: dict, supra_goal_id: int | None = None)

Ajoute un objectif en base de données

Paramètres
  • region (str) – nom normalisé de la région (ex : auvergne-rhone-alpes, occitanie)

  • donnees (liste) – Liste de dictionnaires qui comportent chacun toutes les données de l’objectif à intégrer en base de données exemple : {“obj”: [{“annee”: 2020, “valeur”: 20}, {“annee”: 2050, “valeur”: 70}], “params”: {“graphiques”: « Production d’énergie », “annee”: 2018, “titre”: “EnR”}}

async allow_supra_goal_display_for_territory(region: str, supra_goal_id: int, type_territoire: str, code_territoire: str, nom_territoire: str, tout_type_territoire: bool)

Autorise l’affichage de l’objectif en mode valeur pour une échelle géographique / territoire spécifique à indiquer en paramètre

Paramètres
  • region (str) – nom normalisé de la région (ex : auvergne-rhone-alpes, occitanie)

  • type_territoire (str) – Type de territoire sélectionné par l’utilisateur

  • code_territoire (str) – code du territoire sélectionné par un utilisateur (si on autorise pour un type de territoire, le code du territoire est vide)

  • nom_territoire (str) – Nom du territoire sélectionné par un utilisateur (si on autorise pour un type de territoire, le nom du territoire est vide)

  • tout_type_territoire (Booléen) – Indique si on désactive l’affichage pour un type de territoire ou pour un territoire spécifique

async check_goal_exists(region: str, supra_goal_id: int) bool
async liste_affectation_maille_affichage_objectifs_valeur(region: str, supra_goal_id: int)

Retourne la liste des territoires / types de territoires pour lesquels on autorise l’affichage d’un objectif en mode valeur

Paramètres
  • region (str) – nom normalisé de la région (ex : auvergne-rhone-alpes, occitanie)

  • titre (str) – Titre du graphique pour lequel on liste les territoires / types territoires concernés par l’autorisation

  • graphique – Nom de la table à partir de laquelle on obtient les données de références la trajectoire qui définit l’objectif

Type renvoyé

Dictionnaire dont une clé est associée à la liste des affectations et une autre qui correspond au statut.

async suppression_affectation_maille_affichage_objectifs_valeur(region: str, supra_goal_id: int, type_territoire: str, code_territoire: str, nom_territoire: str, tout_type_territoire: bool)

Désactive l’affichage de l’objectif en mode valeur pour les échelles géographiques / territoire spécifique à indiquer en paramètre

Paramètres
  • region (str) – nom normalisé de la région (ex : auvergne-rhone-alpes, occitanie)

  • type_territoire (str) – Type de territoire sélectionné par l’utilisateur

  • code_territoire (str) – code du territoire sélectionné par un utilisateur (si on autorise pour un type de territoire, le code du territoire est vide)

  • nom_territoire (str) – Nom du territoire sélectionné par un utilisateur (si on autorise pour un type de territoire, le nom du territoire est vide)

  • tout_type_territoire (Booléen) – Indique si on désactive l’affichage pour un type de territoire ou pour un territoire spécifique

async supprimer_objectif(region: str, supra_goal_id: int)

Supprime en base de données un objectif

Paramètres
  • region (str) – nom normalisé de la région (ex : auvergne-rhone-alpes, occitanie)

  • titre (str) – Titre de l’objectif à supprimer

  • graphique (str) – Nom du graphique auquel s’appliquait l’objectif à supprimer

scenario module

Fonctions et requêtes SQL sur la gestion des scénarios utilisateur·rice·s

async change_public_state_scenario(region, scenario_id, publique)

Change l’état de publication d’un scénario.

Paramètres
  • scenario_id (int) – L’identifiant du scénario.

  • publique (boolean) – État actuel de la publication

async create_scenario(titre, mail, description, zone_type, zone_id, nom_territoire, region, actions, params, advanced_params, trajectoires_cibles)

Créer un scénario pour un·e utilisateur·rice spécifique.

Paramètres
  • titre (str) – Titre du scénario.

  • mail (str) – Login du compte qui crée le scénario.

  • description (str) – Description du scénario. Peut être None.

  • zone_type (str) – Type de la zone courante

  • zone_id (int) – Id de la zone courante

  • nom_territoire (str) – Nom du territoire

  • region (str) – Nom standardisé de la région

  • actions (list) – Liste de str du numéro des actions activées (i.e. cochées)

  • params (dict) – Clé/valeur de tous les paramètres action_params à enregistrer. Clé : id de l’action param.

  • advanced_params (dict) – Clé/valeur de tous les paramètres avancés pour chaque catégorie d’actions

  • trajectoires_cibles (dict[dict]) – Clé/valeur des 3 trajectoires cibles “energie_produite”, “emission_ges”, “energie_economisee”

Renvoie

L’ID du scénario.

Type renvoyé

int

async delete_scenario(region, scenario_id)

Supprime un scénario.

Paramètres

scenario_id (int) – L’identifiant du scénario.

async disable_scenario(region, user, scenario_id)

Désactiver le partage d’un scénario (par un bénéficiaire)

Paramètres
  • user (str) – L’identifiant du user qui désactive

  • scenario_id (int) – L’identifiant du scénario.

async get_scenario(scenario_id)

Récupère les paramètres pour un scénario donné.

Paramètres
  • scenario_id (int) – L’identifiant du scénario.

  • partage (list) – Liste de mails des identifiants bénéficiaires.

  • partage_par (str) – Identifiant du compte qui partage ce scénario.

Renvoie

Avec le titre, la description, la date et une clé « params » avec toutes les valeurs des paramètres.

Type renvoyé

dict

async region_scenarios(region)

Get all the scenarios for a given region

Paramètres

region (str) – Normalized region name.

Renvoie

List of the scenarios for the region

Type renvoyé

list

async share_scenario(region, scenario_id, emails)

Partager un scénario avec d’autres utilisateurs

Paramètres
  • scenario_id (int) – L’identifiant du scénario.

  • emails (list) – La liste des emails.

async update_scenario(scenario_id, titre, description, actions, params, advanced_params, trajectoires_cibles)

Récupère les paramètres pour un scénarion donné.

Paramètres
  • scenario_id (int) – L’identifiant du scénario.

  • titre (str) – Titre du scénario.

  • description (str) – Description du scénario. Peut être None.

  • params (list) – Liste de dict avec tous les paramètres action_params à enregistrer.

  • advanced_params (dict) – Clé/valeur de tous les paramètres avancés pour chaque catégorie d’actions

  • trajectoires_cibles (list[dict]) – Clé/valeur des 3 trajectoires cibles “energie_produite”, “emission_ges”, “energie_economisee”

Renvoie

Avec le titre, la description, la date et une clé « params » avec toutes les valeurs des paramètres.

Type renvoyé

dict

async user_scenario(region, login)

Récupère tous les scénarii d’un·e utilisateur·rice.

Paramètres

login (str) – L’identifiant du compte (i.e. mail).

Renvoie

Liste de scénarii dont toutes les valeurs sont dans un dict.

Type renvoyé

list

async verifie_scenario(scenario_id)

On vérifie l’existence et le droit de lecture pour une stratégie donnée

Paramètres

scenario_id (int) – L’identifiant du scénario

Type renvoyé

dict

stations_mesures module

Fonctions et requêtes SQL sur les stations de mesures des indicateurs climat

async get_stations_mesures(region, jeu_de_donnees)

Selection des données des stations de mesure qui ont des données pour l’indicateur selectionné

Paramètres
  • region (str) – Nom de la région (schéma en base)

  • jeu_de_donnees (str) – Nom de l’indicateur climat

async get_value_par_station(region, jeu_de_donnees, stations_mesures, min_year, max_year)

Selection des données des stations de mesure par station : Cette fonction permet de parcourir la liste des stations qui ont des données pour l’indicateur selectionné et récupérer tous les valeurs et libelle_mois pour chaque station depuis l’année minimal jusqu’à la date maximale de disponibilité de données

Paramètres
  • region (str) – Nom de la région (schéma en base)

  • jeu_de_donnees (str) – Nom de l’indicateur climat

strategy_export module

append_regional_info(data, level)
export_excel_results(region, parameters, results, trajectories, output_filepath, metadata)

Generate an Excel file with input parameters, trajectories and results.

This function requires the presence of an Excel file located in ressources/export-impacts-strategie-territoriale-<region>.xlsx

This excel file can be filled with various parameters that will be replaced with corresponding values, either from input parameters, reference trajectories or results.

Existing tokens that can be replaced are currently the following:

  • General information:

    • <Nom_Territoire>

    • <Nom_Strategie>

    • <Date_Export>

    • <Mail_Contact>

    • <Source_Donnees>

  • Input parameters:

    • <Input_Parameters>

    • <Input_AdvancedParameters>

  • Results:

    • <Impacts_GES_par_energie> and <Impacts_GES_par_secteur>

    • <Impacts_ConsoNRG_par_energie> and <Impacts_ConsoNRG_par_secteur>

    • <Impacts_Pollutant_par_energie> and <Impacts_Pollutant_par_secteur> where Pollutant is any of following list:

      • COVNM

      • NH3

      • NOX

      • PM10

      • PM25

      • SOX

    • <Impacts_ProdENR_par_energie>

    • <Impacts_Nb_Emplois_Region>

    • <Impacts_VA_Region>

    • <Impacts_Nb_Emplois_Territoire>

    • <Impacts_VA_Territoire>

    • <Impacts_Inv>

    • <Impacts_Retomb_fisc>

    • <Impacts_Baisse_facture>

  • Trajectories

    • <Trajectoire_GES_Off_PCAET>

    • <Trajectoire_ConsoNRG_Off_PCAET>

    • <Trajectoire_ProdENR_Off_PCAET>

    • <Trajectoire_Pollutant_Cible> where Pollutant is any of following list:

      • COVNM

      • NH3

      • NOX

      • PM10

      • PM25

      • SOX

    • <Trajectoire_GES_Cible>

    • <Trajectoire_ConsoNRG_Cible>

    • <Trajectoire_ProdENR_Cible>

    • <Trajectoire_GES_Off>: this parameter requires a variable name corresponding

      to the trajectory that must be specified after a # sign. For example, by writing <Trajectoire_GES_Off>#SRADDET in a cell, the corresponding values of the trajectory which name contains SRADDET will be used (if it exists). Same applies to the two following tokens.

    • <Trajectoire_ConsoNRG_Off>: same than <Trajectoire_GES_Off>

    • <Trajectoire_ProdENR_Off>: same than <Trajectoire_GES_Off>

Paramètres
  • impact_energie (dict) – dictionnaire des impacts ges, énergie, production EnR

  • polluants (dict) – dictionnaire des données de polluants atmosphériques

  • output_filepath (str) –

flatten_dict(nested_dict, ignore_keys=())

Flattens a dictionary recursively. Ignores key if specified.

Paramètres
  • nested_dict (dict) – the dictionary to flatten

  • ignore_keys (tuple, optional) – the keys to ignore, by default ()

Renvoie

the dictionary flattened with nested keys in tuple key

Type renvoyé

dict

nested_dict_to_df(values_dict, ignore_keys=())

Converts a nest dictionary to a flattened dataframe with nested keys as tuples.

E.g., from:

{
    "2019": {
        "direct": {
            "region": {
                "potentiel": {
                    "nb_emploi_total": 10.0,
                    "va_totale": 10.0,
                }
            }
        }
    },
    ...
}

to:

pandas.DataFrame

year

direct

level

type

nb_emploi_total

va_totale

2019

direct

region

perenne

0.0

10.5

2019

direct

region

ponctuel

2.4

16.25

Paramètres
  • values_dict (dict) – the nested dictionary to convert

  • ignore_keys (tuple, optional) – keys that should be ignored when flattening to remove elements, by default ()

Renvoie

the dataframe resulting from the operation

Type renvoyé

pd.DataFrame

prepare_data_for_jobs(data)

Prepare the results data for pdf export by flattening the nested input dictionary and going from:

{
    "2019": {
        "direct": {
            "region": {
                "potentiel": {
                    "nb_emploi_total": 10.0,
                    "va_totale": 10.0,
                }
            }
        }
    },
    ...
}

to a tuple of two dictionaries looking like:

{
    "2019": {
        "total": 0.0,
        "direct": 0.0,
        "indirect": 0.0
    },
    ...
}
Paramètres

data (dict) – the input data concerning jobs

Renvoie

two dictionaries corresponding to jobs and added value data

Type renvoyé

tuple

put_data_in_excel_sheet_at_cell(sheet, cell, data, prepend_name=True, remove_tags=True, empty_value=' ')

Put data inside an excel sheet at the spot given by the cell coordinates Doesn’t do anything to the formatting.

Paramètres
  • sheet (openpyxl worksheet) – the sheet to edit (edited inplace)

  • cell (tuple) – the coordinates (row, column) in integers, (1,1) corresponding to the top left corner of the worksheet.

  • data (pd.DataFrame or list or dict) –

    the list of data to insert. It must be structured as follows:

    [
        {
            'nom': 'Sector name', 'couleur': '#1fa22E',
            'confidentiel': 'non',
            'data': [
                {'annee': 1990, 'valeur': 9022.62},
                {'annee': 2000, 'valeur': 9424.92},
                ...
            ]
        },
        {
            'nom': 'Other sector', 'couleur': '#933588',
            'confidentiel': 'non',
            'data': [
                {'annee': 1990, 'valeur': 3792.3},
                {'annee': 2000, 'valeur': 4107.48},
                ...
            ]
        }
    ]
    

    or:

    {
        "2019": nested_value,
        ...
    }
    

    with nested_value either directly a value (float, etc.) or a dictionary containing multiple values that will be spreaded on different rows in the final document.

replace_value_in_sheet(sheet, tokens, search=[])

Replace the values of tokens keys by tokens values in sheet

Paramètres
  • sheet (openpyxl sheet) – the worksheet opened through openpyxl

  • tokens (dict) – the keys to replace by the values

async update_strategy_export_template_file(region, env)

suivi_trajectoire module

Module pour les fonctions et requêtes SQL de la page suivi de trajectoire

i.e. historique de certaines analyses comme la consommation énergétique, la production d’énergie renouvelable (aka prod enr)

async categories_metadata(region, categorie)

Retourne les couleurs associées à chaque type d’une table des catégories

Paramètres
  • region (str) – Nom de la région (nom officiel complet en minuscule, sans accent, e.g. auvergne-rhone-alpes)

  • categorie (str) – Nom d’une table des catégories (table en base)

Type renvoyé

dict

async check_year_in_mobility_table(region, zone, zone_id, year, buffer=0)
async deprecated_couleurs_categorie(region, categorie)

Retourne les couleurs associées à chaque type d’une table des catégories

Paramètres
  • region (str) – Nom de la région (nom officiel complet en minuscule, sans accent, e.g. auvergne-rhone-alpes)

  • categorie (str) – Nom d’une table des catégories (table en base)

Type renvoyé

dict

deprecated_fusion_historique_et_future(historique, future, couleurs, soustraire=True)

Fusionne les séries temporelles historiques avec la réduction future.

On extrapole à droite la séries temporelles issues des données historiques jusqu’à l’année max fournie dans future. On déduit ces valeurs avec les valeurs calculées de réduction de conso d’énergie (resp. émission GES).

Paramètres
  • historique (pd.DataFrame) –

  • future (pd.DataFrame) – Résultats issus des actions (index : modalité, columns : annee)

Type renvoyé

pd.DataFrame

deprecated_historique_et_impact_emission_ges(region, zone, zone_id, resultat_impact)

Données historique d’émissions GES + impact pour actions réductions de conso. Retourne une coroutine

deprecated_historique_et_impact_polluants_atmo(region, zone, zone_id, resultat_impact, analyse)

Données historique d’émissions des polluants atmosphériques + impact pour actions réductions de conso. Retourne une coroutine

deprecated_historique_et_impact_reduction_conso(region, zone, zone_id, resultat_impact, colonne_conso_nrj='conso_energetique')

Données historique de conso + impact pour actions réductions de conso. Retourne une coroutine

async distance_moyenne_par_actif_en_voiture(region, zone, zone_id, year=None, buffer=0)

Renvoie la distance moyenne parcouru par les actifs en voiture dans le cadre de leur trajet domicile-travail.

Paramètres
  • region (str) – Nom de la région (schéma en base)

  • zone (str) – Zone géographique sélectionnée

  • zone_id (str) – Identifiant de la zone géographique

  • buffer (int) – Détermine le nombre d’actif dans un rayon donnée en km

Type renvoyé

float

fusion_historique_et_future(history, future, metadata, by_column, final_year, soustraire=True)

Fusionne les séries temporelles historiques avec la réduction future.

On extrapole à droite la séries temporelles issues des données historiques jusqu’à l’année max fournie dans future. On déduit ces valeurs avec les valeurs calculées de réduction de conso d’énergie (resp. émission GES).

Paramètres
  • history (pd.DataFrame) –

  • future (pd.DataFrame) – Résultats issus des actions (index : modalité, columns : annee)

Type renvoyé

pd.DataFrame

fusion_historique_et_future_prod(history, future, metadata_prod, metadata_vector, by_column_prod, by_column_vector, final_year, soustraire=True)

Fusionne les séries temporelles historiques avec la réduction future.

On extrapole à droite la séries temporelles issues des données historiques jusqu’à l’année max fournie dans future. On déduit ces valeurs avec les valeurs calculées de réduction de conso d’énergie (resp. émission GES).

Paramètres
  • history (pd.DataFrame) –

  • future (pd.DataFrame) – Résultats issus des actions (index : modalité, columns : annee)

Type renvoyé

pd.DataFrame

async get_page_parameters(region, env, page)

Get the page graph types enabled.

Paramètres
  • region (str) – Region name (e.g., auvergne-rhone-alpes)

  • env (str) – Environment considered (e.g., dev)

  • page (str) – Page name (e.g., suivi_energetique)

Renvoie

for each graph type, a boolean indicating whether the graph is enabled.

Type renvoyé

dict

async get_pages_enabled(env, region=None)

Get the analyses enabled pages list

Paramètres
  • region (str) – Region name (e.g., auvergne-rhone-alpes)

  • env (str) – Environment considered (e.g., dev)

Renvoie

pages names

Type renvoyé

list

historique_et_impact_emission_ges(region, zone, zone_id, final_year, resultat_impact, passage_table, remove_passage_data: bool = True)

Données historique d’émissions GES + impact pour actions réductions de conso. Retourne une coroutine

historique_et_impact_polluants_atmo(region, zone, zone_id, final_year, resultat_impact, pollutant, passage_table, remove_passage_data: bool = True)

Données historique d’émissions des polluants atmosphériques + impact pour actions réductions de conso. Retourne une coroutine

async historique_et_impact_prod(region, zone, zone_id, final_year, resultat_impact, passage_table, remove_passage_data: bool = True)
historique_et_impact_reduction_conso(region, zone, zone_id, final_year, resultat_impact, passage_table, remove_passage_data: bool = True)

Données historique de conso + impact pour actions réductions de conso. Retourne une coroutine

async nombre_actifs_en_voiture(region, zone, zone_id, year=None, buffer=0)

Renvoie le nombre d’actif en voiture.

Paramètres
  • region (str) – Nom de la région (schéma en base)

  • zone (str) – Zone géographique sélectionnée

  • zone_id (str) – Identifiant de la zone géographique

  • buffer (int) – Détermine le nombre d’actif dans un rayon donnée en km

Type renvoyé

float

async obtenir_annee_max_indicateur(region, donnees, data_ratio)
async prod_enr_mapping(region)

Retourne un dictionnaire qui associe les actions avec les productions EnR qu’elles impactent

Paramètres

region (str) – Nom de la région (nom officiel complet en minuscule, sans accent, e.g. auvergne-rhone-alpes)

Type renvoyé

dict

async secteur_mapping(region)

Retourne un dictionnaire qui associe les actions avec les secteurs qu’elles impactent

Paramètres

region (str) – Nom de la région (nom officiel complet en minuscule, sans accent, e.g. auvergne-rhone-alpes)

Type renvoyé

dict

async suivi_trajectoire(region, zone, zone_id)

Données pour la page de suivi de trajectoire

i.e. les données historiques de consommation & production d’énergie renouvelable pour un territoire donné.

Paramètres
  • region (str) – Nom de la région (schéma en base)

  • zone (str) – Zone géographique sélectionnée

  • zone_id (str) – Identifiant de la zone géographique

Renvoie

  • Données de barplot conso vs. production énergie

  • Données pour stacked plot de conso & production énergie renouvelable par catégories

  • chiffres-clé pour le territoire sélectionné

Type renvoyé

dict

tableau_bord module

Module dédié aux fonctions d’intéraction avec la base de données pour les tableaux de bord

async assign_zone(tableau_id, zone, code_insee_territoire)

Affecte une zone à un tableau

Paramètres
  • tableau_id (int) –

  • zone (str) – “departement”, “epci”, etc.

async check_is_valid_dashboard(region, user, thematiques)
async check_write_rights_on_dashboard(region, dashboard_id, usermail)
clean_blocks(graphs)
async create_dashboard(titre, user, description, region, thematiques)

Créer un nouveau tableau de bord

Paramètres
  • titre (str) –

  • usermail (str) –

  • description (str) –

  • region (str) –

  • thematiques (list) –

Renvoie

Nouvel identifiant

Type renvoyé

dict

async delete_dashboard(dashboard_id: int, current_user, region: str)

Delete a dashboard from database with the given id and the current user.

Renvoie

dashboard ID or False if the dashboard does not exist (or couldn’t be deleted)

Type renvoyé

dict

async duplicate_dashboard(region: str, user, dashboard_id: int, title: str)
async get_dashboard(region, tableau_id, utilisateur, type_territoire, code_insee_territoire)

Récupère les données pour un tableau donné.

Paramètres

tableau_id (int) –

Type renvoyé

dict

async is_dashboard_owner(usermail, tableau_id, region)

Vérifie si le tableau spécifié par son identifiant appartient bien à l’utilisateur·rice

Paramètres
  • usermail (str) –

  • tableau_id (int) –

Type renvoyé

bool

async list_dashboard_assignments(tableau_id)
async list_public_dashboards(region, type_territoire, code_insee_territoire)

Récupère l’ensemble des tableaux publiés pour un type de territoire ou territoire spécifique donné

Paramètres
  • usermail (str) –

  • region (str) –

Renvoie

Liste de dict

Type renvoyé

list

async liste_tableau(user, region)

Récupère l’ensemble des tableaux pour un·e utilisateur·rice et région données

Paramètres
  • user (Utilisateur) –

  • region (str) –

Renvoie

Liste de dict

Type renvoyé

list

async remove_dashboard_assignment(tableau_id, type_territoire, code_insee_territoire)
async remove_dashboard_sharing(dashboard_id: int, region: str, user, is_readonly_share=False)

Remove the current user form the list of shared user for the specified dashboard

async share_dashboard(tableau_id, emails, is_readonly_share=False)

Share a dashboard with other users by their email

Paramètres
  • tableau_id (int) – The dashboard identifier.

  • emails (list[str]) – The list of emails.

async update_dashboard(dashboard_id, titre, user, description, region, thematiques)

user module (controller)

Module de gestion des utilisateurs

class User(user_id, exp, mail, profil, publication, est_admin, region, acces_indicateurs_desactives, global_admin, prenom, nom, organisation, fonction, territoire_predilection, utiliser_territoire_predilection, code_postal, can_validate_poi_contributions, poi_contributions)

Bases : NamedTuple

to_dict()
acces_indicateurs_desactives: bool

Alias for field number 7

can_validate_poi_contributions: bool

Alias for field number 16

code_postal: str

Alias for field number 15

est_admin: bool

Alias for field number 5

exp: int

Alias for field number 1

fonction: str

Alias for field number 12

global_admin: bool

Alias for field number 8

mail: str

Alias for field number 2

nom: str

Alias for field number 10

organisation: str

Alias for field number 11

poi_contributions: list

Alias for field number 17

prenom: str

Alias for field number 9

profil: str

Alias for field number 3

publication: str

Alias for field number 4

region: str

Alias for field number 6

territoire_predilection: str

Alias for field number 13

user_id: str

Alias for field number 0

utiliser_territoire_predilection: bool

Alias for field number 14

async activate_user(region, login, password)

Active le compte associé au login.

Paramètres
  • login (str) – Login (i.e. mail) du compte.

  • password (str) – Mot de passe générer de manière aléatoire. Le mot de passe est hashé dans cette fonction.

async admins()

Récupère la liste de tous les admins

Type renvoyé

dict

auth_user(request, region)

Returns information about the authenticated user

Paramètres

region (str) – region key

Renvoie

object with user information from database

Type renvoyé

User

async create_user(prenom, nom, password, mail, organisation, fonction, territoire_predilection, utiliser_territoire_predilection, code_postal, region, profil, actif, rgpd="Pas d'accord")

Crée un·e utilisateur·rice en base de données.

Paramètres
  • prenom (str) – Prénom.

  • nom (str) – Nom.

  • password (str) – Mot de passe. Il est hashé dans cette fonction. Peut être None.

  • mail (str) – Email.

  • organisation (str) – Structure / organisation.

  • territoire_predilection (str) – Territoire représenté par un json { zoneType, zoneId, zoneMaille }.

  • utiliser_territoire_predilection (bool) – Utiliser le territoire comme territoire par défaut à la connexion.

  • code_postal (str) – Code postal

  • profil (str) – “admin” ou “utilisateur”.

  • actif (boolean) – Compte actif ou non.

  • rgpd (string) – Case cochée ou non.

async deactivate_user(region, login)

Désactive le compte associé au login.

Paramètres

login (str) – Login (i.e. mail) du compte

async delete_refresh_token(region, login)

Efface le refresh token JWT associé à un login.

Quand le token est invalidé par sa date d’expiration par exemple, on l’efface. Pour ensuite en créer un nouveau avec une nouvelle date.

Paramètres

login (str) – Login (i.e. mail) du compte

async delete_user(region, login)

Efface le compte associé au login.

Paramètres

login (str) – Login (i.e. mail) du compte

async get_refresh_token(region, login)

Récupère le refresh token JWT associé à un login.

Paramètres

login (str) – Login (i.e. mail) du compte

Renvoie

keys: token, creation_date

Type renvoyé

dict

async get_user_password(region: str, login: str)

Récupère le hash du mot de passe d’un·e utilisateur·trice en fonction de son login.

Paramètres

login (str) – Login de l’utilisateur / utilisatrice, i.e. son email

Type renvoyé

str (ou None si l’utilisateur n’a pas été trouvé)

hash_pass(password)

Return a hashed password

async is_active_user(region: str, login: str) bool

Check is the specified login corresponds to an active user in the database

async send_mail(sender, sender_label, reply_to: str | None, receiver, subject, content, settings, typemail='plain', encoding='utf-8', content_plain='')

Envoi de mail asynchrone

Renvoie

un message de statut

async set_user_password(region, login, password)

Stocke un nouveau mot de passe associé au login.

Paramètres
  • login (str) – Login (i.e. mail) du compte.

  • password (str) – Mot de passe générer de manière aléatoire. Le mot de passe est hashé dans cette fonction.

async store_refresh_token(region, login, token)

Stocke le refresh token JWT associé à un login.

Paramètres
  • login (str) – Login (i.e. mail) du compte

  • token (str) – Token généré par sanic-jwt.

async update_connexion_info(region, login)

Met à jour les données de connexion associées à un compte.

Paramètres

loging (str) – Login (i.e. mail) du compte

async update_user(region: str, login: str, userdata: dict)
async user(region, login)

Récupère toutes les infos d’un.e utilisateur/utilisatrice.

Paramètres

login (str) – Login de l’utilisateur / utilisatrice, i.e. son email

Type renvoyé

dict

async users(region='')

Récupère toutes les infos de tous les utilisateurs/utilisatrices.

Type renvoyé

dict

zone module

async add_zone(region: str, name, zone, maille, order)

Fonction qui modifie une zone.

Paramètres
  • region (str) – Nom de la région (schéma en base)

  • old_name (str) – old zone key

  • new_data (dict) – new zone data

async all_regions()

Fonction qui renvoie une liste de l’ensemble des régions proposées dans terristorry.

Type renvoyé

list

async all_territorial_levels(region: str)

Fonction qui renvoie une liste de toutes les mailles existantes.

Paramètres

region (str) – Nom de la région (schéma en base)

Type renvoyé

list

async all_territories_codes_for_level(region: str, level)

Fonction qui renvoie une liste de tous les codes uniques pour un niveau territorial donné.

Paramètres
  • region (str) – Nom de la région (schéma en base)

  • level (str) – Maille territoriale

Type renvoyé

list

async all_zones(region: str, with_order=False)

Fonction qui renvoie une liste de dict des mailles et des sous mailles associées ainsi que leur libellé.

Paramètres

region (str) – Nom de la région (schéma en base)

Type renvoyé

list

async change_order_zone(region: str, name, current_position, new_position)

Fonction qui modifie une zone.

Paramètres
  • region (str) – Nom de la région (schéma en base)

  • old_name (str) – old zone key

  • new_data (dict) – new zone data

async delete_zone(region: str, name, current_position)

Delete a zone.

Paramètres
  • region (str) – Nom de la région (schéma en base)

  • name (dict) – zone name

async edit_zone(region: str, old_name, new_name, zone, maille)

Fonction qui modifie une zone.

Paramètres
  • region (str) – Nom de la région (schéma en base)

  • old_name (str) – old zone key

  • new_data (dict) – new zone data

async liste_mailles_regions()

Fonction qui renvoie un dict de l’ensemble des régions et des mailles associées.

Type renvoyé

dict

async toggle_zone(region: str, name)

Hide/show a zone.

Paramètres
  • region (str) – Nom de la région (schéma en base)

  • name (dict) – zone name