É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é
- 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: str, table: str, source, columns: list[str] | None = None, is_national: bool = False, replace: bool = True, recreate_table_query: str | None = None) int ¶
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é
- 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 executemany(*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.
- async get_common_dataset_table(global_region, table_name)¶
Retrieve the content from a table of common data set.
- async get_data_table(region, table_name)¶
Get the full content of a table.
- async get_data_tables_headers(region, list_tables)¶
Get the first 5 rows of each data table for a given region.
- async get_last_update_date(region, list_tables)¶
Get update date of each data table for a given region.
- 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.
- async list_categories(region)¶
Récupère la liste des catégories pour une région donnée.
- async list_categories_modalites(region)¶
Récupère la liste des catégories et des modalites pour une région donnée.
- async list_tables(region)¶
Récupère la liste des tables de données (indicateurs) pour une région donnée.
- async liste_tables_jdd_communs(region)¶
Récupère la liste des tables de données (indicateurs) pour une région donnée.
- 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.
- 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).
Submodules du module contrôleurs¶
actions module (controller)¶
analyse module¶
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
- 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¶
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) –
indicateur_tableau_bord module¶
mesure_audience module¶
- class MesureDAudience(region: str)¶
Bases :
object
Obtention et insersion en base des données de navigation des utilisateur.rices.
- Paramètres
- async commune()¶
Retourne le nom de la commune depuis laquelle l’utilisateur.trice utilise TerriSTORY
- async inserer_donnees_localisation(is_excluded: bool = False)¶
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
- class MesureDAudienceIndicateurs(provenance: str, region: str, code_territoire: str, type_territoire: str, id_indicateur)¶
Bases :
MesureDAudienceTerritoriale
Insère les données de navigation dans la table propre à la consultation des indicateurs
- Paramètres
- async inserer_donnees_consultations(id_utilisateur)¶
Insère les données de navigation propres aux indicateurs
- class MesureDAudiencePoi(region: str, code_territoire: str, type_territoire: str, nom_couche: str, cochee: str)¶
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: str, code_territoire: str, type_territoire: str, donnees_ip: str | None = '')¶
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.
pcaet_ademe module¶
perimeters module¶
- command_exists(name)¶
- 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 integrate_ign_data(year)¶
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.
- 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
- async get_poi_contributions(region, layers: str | list = '*', edit_id=None)¶
Retrieve contributions list for current region
- Paramètres
region (str) – region key
- 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.
- 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
- async update_poi_contribution(region, user, layer, record_id, properties, geom)¶
Mise à jour d’un objet dans une couche POI
- async update_poi_edition_rights(region, layer, droit, user)¶
Mise à jour des droits (modifiable) pour une couche POI
pop_up_accueil module¶
- liste_images_carousel_avec_path(path, all_images, region)¶
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é
- 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 check_is_valid_region(schema_name)¶
- 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_non_national_regions(env)¶
- async get_poi_contributions_managers(region, layer)¶
Returns the list of users who are supposed to manage POIs contributions.
- async get_sankeys_configuration(id=None)¶
- async get_seo_configuration(region)¶
Returns the regional SEO configuration from the database.
- async is_national_feature_enabled()¶
Check if the national feature is enabled.
- async update_configuration(region, key, value)¶
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 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
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, is_national, 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é
- 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)
- async get_scenario(scenario_id)¶
Récupère les paramètres pour un scénario donné.
- Paramètres
- Renvoie
Avec le titre, la description, la date et une clé « params » avec toutes les valeurs des paramètres.
- Type renvoyé
- async region_scenarios(region)¶
Get all the scenarios for a given region
Partager un scénario avec d’autres utilisateurs
- 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é
- async user_scenario(region, login)¶
Récupère tous les scénarii d’un·e utilisateur·rice.
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é
- 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
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>
- flatten_dict(nested_dict, ignore_keys=())¶
Flattens a dictionary recursively. Ignores key if specified.
- 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:
¶ 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
- 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 }, ... }
- 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
- async check_year_in_mobility_table(region, zone, zone_id, year, buffer=0)¶
- 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.
- 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_data_trajectory_with_categories(region, jeu_de_donnees, type_territoire, code_territoire, categorie)¶
Retourne les données historiques d’une analyse par catégorie.
- async get_page_parameters(region, env, page)¶
Get the page graph types enabled.
- async get_pages_enabled(env, region=None)¶
Get the analyses enabled pages list
- historique_et_impact_emission_ges(region, zone, zone_id, reference_year, final_year, resultat_impact, passage_table, is_national, 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, reference_year, final_year, resultat_impact, pollutant, passage_table, is_national, 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: str, zone: str, zone_id: str, reference_year: int, final_year: int, resultat_impact: Impacts, passage_table: PassageTable, remove_passage_data: bool = True)¶
- historique_et_impact_reduction_conso(region, zone, zone_id, reference_year, final_year, resultat_impact, passage_table, is_national, 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.
- async obtenir_annee_max_indicateur(region, donnees, data_ratio)¶
- 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
- 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é
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
- 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
- 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é
- async get_dashboard(region, tableau_id, utilisateur, type_territoire, code_insee_territoire)¶
Récupère les données pour un tableau donné.
- async is_dashboard_owner(usermail, tableau_id, region)¶
Vérifie si le tableau spécifié par son identifiant appartient bien à l’utilisateur·rice
- 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é
- async liste_tableau(user, region)¶
Récupère l’ensemble des tableaux pour un·e utilisateur·rice et région données
- 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
Share a dashboard with other users by their email
- 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, territoire, acces_indicateurs_desactives, global_admin, prenom, nom, organisation, fonction, territoire_predilection, utiliser_territoire_predilection, code_postal, can_validate_poi_contributions, poi_contributions, national_region)¶
Bases :
NamedTuple
- to_dict()¶
- async activate_user(region, login, password)¶
Active le compte associé au login.
- auth_user(request, region)¶
Returns information about the authenticated user
- async create_user(prenom, nom, password, mail, organisation, fonction, territoire_predilection, utiliser_territoire_predilection, territoire, region, profil, actif, rgpd="Pas d'accord", is_national=False)¶
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.
- async get_regions_national_user(usermail)¶
Returns information about the authenticated user
- 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.
- 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 is_user_in_national_region(usermail, region)¶
Checks whether a user is associated to a national region.
- 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.
- async store_refresh_token(region, login, token)¶
Stocke le refresh token JWT associé à un login.
- 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 user(region, login)¶
Récupère toutes les infos d’un.e utilisateur/utilisatrice.
zone module¶
- async all_regions()¶
Fonction qui renvoie une liste de l’ensemble des régions proposées dans terristorry.
- Type renvoyé
- async all_territorial_levels(region: str)¶
Fonction qui renvoie une liste de toutes les mailles existantes.
- async all_territories_codes_for_level(region: str, level)¶
Fonction qui renvoie une liste de tous les codes uniques pour un niveau territorial donné.
- 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é.
- async change_order_zone(region: str, name, current_position, new_position)¶
Fonction qui modifie une zone.
- async liste_mailles_regions()¶
Fonction qui renvoie un dict de l’ensemble des régions et des mailles associées.
- Type renvoyé