Éléments du module d’intégration¶
Fonctions du module intégration¶
- async convert_single_table_to_new_perimeter(schema, table, initial_year, target_year, aggregation_function)¶
Converts a single table to a new perimeter. It is assumed that the original data has already been migrated to the table <schema>_ancien_perimetre.<table>. The converted table replaces the existing table <schema>.<table>
- async convert_tables_to_new_perimeter(region, schema, user_info, tables, target_year)¶
_summary_
- Paramètres
region (str) – The regional key
schema (str) – The regional schema
user_info (object) – The user object. Used to log the conversions.
tables (List(dict)) – The list of tables to convert with their aggregation function (ex : [{« table »: « table1 », « aggregation_function »: « sum »}, {« table »: « table2 », « aggregation_function »: « mean »}])
target_year (int) – The conversion target year
aggregation_function (str) – The aggregation function to use for the conversion.
- Renvoie
The list of tables and wether or not the conversion were successful
- Type renvoyé
List(dict)
- async convertir_dans_nouveau_perimetre(schema, liste_donnees_a_convertir, annee_nouveau_perimetre)¶
Converti les données transmises en argument dans un nouveau périmètre géographique
- Paramètres
schema (str) – schéma régional concerné par la conversion
liste_donnees_a_convertir (liste) – Liste des tables à convertir dans le nouveau périmètre
annee_nouveau_perimetre (entier) – Millésime dans lequel convertir le nouveau périmètre
- async create_equipements_layer(region, schema, table, metadata, userdata, fpath)¶
Création d’une nouvelle couche équipement
- async create_indicator(region, schema, table, metadata, fpath, data_custom)¶
Création d’un nouvel indicateur.
- Paramètres
schema (str) – Nom du schéma
table (str) – Nom de la table de l’indicateur
metadata (dict) – Méta-données pour meta.indicateur et meta.chart
fpath (Path) – Chemin du fichier CSV Si ce chemin est vide, cela signifie que l’analyse utilise des données existantes en base
data_custom (str) – Formule de calcul pour l’analyse Si data est non null, alors fpath doit être vide, et on utilise data à la place du nom de la table pour composer l’analyse
- async create_indicator_data_table(schema, table, categories, ajouter_annee, ajouter_valeur_filtre, verifier_categorie, is_pixel=False, forced=False, mesh_perimeter='commune')¶
On crée la structure d’une table pour un indicateur.
- async creer_table_equipements(schema, table, columns, mode, type_geom)¶
On crée la structure d’une table pour une nouvelle couhe équipements.
- async creer_table_territoire(schema, liste_donnees_obligatoires, type_territoire)¶
Crée la table territoriale associée au type de territoire passé en paramètre (exemple : occitanie.epci)
Cette fonction ne permet pas de créer la table commune pour le schéma passé en argument. Ajouter cette dernière nécessite d’exécuter une requête différente à bien des égards et fait donc l’objet d’une fonction à part (req_creation_table_commune)
- async creer_tables_fr(schema, year)¶
Crée la table des communes, epci, départements de France nécessaires au fonctionnement des migrations pendulaires et y insère les données
- Paramètres
schema (str) – Nom du schéma régional
- async date_perimetre_donnee_ajoutee(conn, region, table, date, only_for_zone='')¶
- async enregistrerPdfMethodo(region, fichier_data, final_name=None)¶
Enregistrement du fichier PDF de méthodologie pour une analyse
- Paramètres
region (str (région)) –
fichier_data (filedata fichier PDF) –
- get_commune_columns(df_data)¶
Returns the names of the commune columns containing the INSEE commune codes. Usually only « commune », but also « commune_dest » in the case of flow data.
- Paramètres
df_data (DataFrame) – The DataFrame of the table
- Renvoie
The list of commune columns for the perimeter conversion
- Type renvoyé
List[str]
- async get_current_perimeter_year(region)¶
- async get_table_perimeter_year(region, table)¶
Returns the perimeter year of a table.
- get_value_columns_to_convert(df_data)¶
Returns the names of the numerical value columns in the table that should be converted. If the aggregation function is « sum », these columns will be multiplied by the ratio of the conversion table during the perimeter conversion.
For now only the column « valeur » is used as a value column.
- Paramètres
df_data (DataFrame) – The DataFrame of the table
- Renvoie
The list of columns to convert
- Type renvoyé
List[str]
- async inserer_nouvelle_categorie(fpath, nom, region)¶
Ajout d’une nouvelle catégorie (après upload d’une fichier CSVS compatible)
- async integration_donnees_table_territoire(schema, liste_selection, donnees_obligatoires, type_territoire)¶
Crée la table des communes pour un schéma passé en paramètre (exemple : nouvelle_aquitaine.commune)
- Paramètres
schema (str) – Nom du schéma associé à la région sélectionnée
liste_selection (liste) – Liste de chaine de caractères qui contient la liste des objets à sélectionner dans les différentes tables (ex : sum(population.valeur) as population)
donnees_obligatoires (liste) – Liste des tables dont la présence est nécessaire à la mise à jour des territoires
type_territoire (str) – Type de territoire (exemples : epci, teposcv, pcaet)
- async integrer_donnee(conn, schema, table, fpath, colonnes_obligatoires, mesh_perimeter='commune')¶
- isConvertibleDataTable(df_data)¶
Checks that the DataFrame is a valid TerriSTORY data table that is convertible to a new perimeter : - the table has a column « commune » and a column « valeur » - the table does not have a column « geom » (pixel data is not yet supported)
- Paramètres
df_data (DataFrame) – DataFrame of the table
- Renvoie
Whether or not the table is a valid TerriSTORY data table
- Type renvoyé
- async liste_donnees_chiffres_cles(region)¶
Donne la liste des tables / données qui interviennent dans la partie chiffres clés
- Paramètres
region (str) – Nom de la région sans accent si majuscule (exemples : auvergne-rhone-alpes, occitanie, nouvelle-aquitaine)
- Renvoie
Liste des données qui interviennent dans la partie chiffres clés.
- Type renvoyé
Liste
- async liste_tables_donnees(schema)¶
Retourne la liste des tables présentes au sein d’un schéma régional
- Paramètres
schema (str) – Nom du schéma régional
- async load_shp(shp, region, basename, srid='2154', encoding='UTF-8')¶
Charge un fichier Shapefile dans la base de donnée
- Paramètres
shp (pathlib.Path) –
region (str) –
basename (str) –
srid (str) –
- async migration_donnees_dans_nouveau_schema(schema, liste_tables_donnees)¶
Migre les tables de données dans un schéma temporaire à part (<schema>_ancien_perimetre) pour la conversion des périmètres. Attention, Les tables originales déplacée dans ce schema temporaire sont écrasées à chaque nouvelle migration.
- Paramètres
schema (str) – Schéma régional concerné par la migration
liste_tables_donnees (Liste de chaînes de caractères) – Liste des noms des tables à copier dans le schéma à part
- async obtenir_donnees_obligatoires_pour_maille_territoriales(region)¶
Retourne la liste des données associées aux mailles territoriales trouvées dans la colonne data de meta.indicateur
Cette liste de données doit être présente en base de données sous forme de tables spécifiques à ajouter dans le schéma régional. Cette liste comprend également les tables qui interviennent directement dans le calcul des indicateurs et qui ne font pas l’objet d’une dans les tables territoriales de type schema.territoire (occitanie.pnr par exemple) mais qui interviennent dans la partie chiffres clés.
- Paramètres
region (str) – Nom de la région sans accent si majuscule (exemples : auvergne-rhone-alpes, occitanie, nouvelle-aquitaine)
- Renvoie
Liste des données qu’il faut mettre à jour au lancement de la mise à jour des territoires
- Type renvoyé
Liste
- obtenir_donnees_territoriales(indicateur_decortique)¶
Retourne la table associée aux mailles territoriales qui intervient dans le calcul de l’indicateur passé en paramètre
Par exemple, population, emploi_tout_secteur, qu’on retrouve dans les calculs d’indicateur sous la forme de maille.donnee (remplacer maille par une maille territoriale. Exemple : epci.population).
- Paramètres
indicateur_decortique (liste) – Décomposition de la formule d’un indicateur décortiqué au moyen d’une expression régulière Exemple : [conso_energetique*1000, /maille., /population])
- Renvoie
str – Le jeu de donnée associé à une maille territoriale sollicité pour la mise à jour des territoires s’il y en a un
bool – False sinon.
- async obtenir_liste_tables_pour_indicateur(region)¶
Retourne la liste des tables directement impliquées dans le calcul des indicateurs.
- Paramètres
region (str) – Nom de la région sans accent si majuscule (exemples : auvergne-rhone-alpes, occitanie, nouvelle-aquitaine)
- Renvoie
Liste des tables qui interviennent directement dans les calculs des indicateurs.
- Type renvoyé
Liste
- async obtenir_liste_type_autres_territoires(schema)¶
Retourne la liste des types de territoires autre que « commune » disponibles pour une région
- Paramètres
schema (str) – Nom du schéma de la région
- Renvoie
Liste des type de territoires autres que « commune » disponibles pour la région sélectionnée (ex : [region, pnr, epci, departement, petr])
- Type renvoyé
Liste
- async rebuild_all_geographic_perimeters(region, region_code, perimeter_year)¶
Lance la mise à jour des territoires
- regionstr
Nom de la région sans accent si majuscule (exemples : auvergne-rhone-alpes, occitanie, nouvelle-aquitaine)
- async rebuild_supra_perimeters(region)¶
- async reconstitution_vue_effectifs_clap(liste_types_territoires, schema)¶
- async refresh_dashboards_categories(region, conn, indicateur_id, added_categories, removed_categories, categories_data)¶
- async req_creation_table_commune(schema, perimeter_year, liste_selection, liste_jointures, liste_conditions_annee, donnees_obligatoires, liste_group_by, region_code)¶
Crée la table des communes pour un schéma passé en paramètre (exemple : nouvelle_aquitaine.commune)
- Paramètres
schema (str) – Nom du schéma associé à la région sélectionnée
liste_selection (liste) – Liste de chaine de caractères qui contient la liste des objets à sélectionner dans les différentes tables (ex : sum(population.valeur) as population)
jointure (Liste) – Liste de bouts de la requête sql qui concernent cette fois les jointures : left join schema.table on etc.
Liste_conditions_annee (liste) – Liste des conditions liées au année pour les données qui interviennent directement dans les calculs d’indicateurs (ex : where annee = 2016)
donnees_obligatoires (liste) – Liste des tables dont la présence est nécessaire à la mise à jour des territoires
- req_creer_table_territoire(schema)¶
- async set_perimeter_conversion_state(schema, state)¶
Sets the state of the perimeter conversion to True or False in {schema}.etat_conversion_perimetre.conversion_reussie
If conversion_reussie is False a perimeter conversion is ongoing : This could mean that a conversion of one or all the tables is currently running or that this conversion was unexpectedly interrupted.
If conversion_reussie is True, the perimeter
Si la dernière mise à jour a été interrompue, il faut surtout ne pas relancer la migration des données dont la première étape consiste à supprimer le schéma contenant les tables exprimées dans l’ancien périmètre. Nous relançon donc la mise à jour à partir des tables actuellement disponibles dans le schéma où sont organisées les tables de données exprimées dans l’ancien périmètre.
- Paramètres
schema (str) – Schéma régional
etat (booléen) – État de la conversion : True si la dernière mise à jour a été un succès False sinon.
- async update_all_data_to_current_perimeter(region, perimeter_year)¶
- async update_categorie(fpath, nom, region)¶
Mise à jour d’une catégorie (après upload d’une fichier CSVS compatible)
- async update_data(schema, table, fpath, colonnes_obligatoires, is_national=False, force_update=False)¶
Mise à jour des données d’un indicateur.
- async update_equipements_layer(region, schema, table, metadata, userdata, fpath=None)¶
Mise à jour d’une couche équipement
- async update_metadata_indicateur(region, schema, indicateur_id, metadata, data_custom)¶
Mise à jour des metadonnées d’un indicateur.
- Paramètres
schema (str) – Schéma de la région
indicateur_id (integer) – Identifiant de l’indicateur
metadata (dict) – Méta-données pour meta.indicateur et meta.chart
data_custom (str) – Formule de calcul pour l’analyse Si data est non null, alors fpath doit être vide, et on utilise data à la place du nom de la table pour composer l’analyse
- verifier_integration_donnees_obligatoires_pour_maille_territoriales(liste_donnees_presentes, liste_donnees_pour_indicateur, donnees_obligatoires)¶
Vérifie la présence - ou l’absence - des données indispensables à la mise à jour des territoires
- Paramètres
liste_donnees_presentes (liste) – Liste des tables déjà présentes en base de données
liste_donnees_pour_indicateur (liste) – Liste des données qui interviennent directement dans le calcul d’indicateurs et non associées aux mailles territoriales
donnees_obligatoires – Liste des tables dont la présence est nécessaire au lancement de la mise à jour des territoires
Submodules du module intégration¶
categorie module¶
indicateur module¶
loader module¶
validation module¶
Validation des données d’indicateur/analyses
- class ValidationMessage(valid, message, can_be_forced=False)¶
Bases :
object
Class dédiée aux messages de validation.
- property message¶
- async existence_categorie(schema, categories)¶
On vérifie le nom et l’existence des catégories pour la création d’un indicateur
La catégories doivent exister dans la table meta.categorie :param schema: :type schema: str :param categories: Liste des noms des catégories :type categories: list
- async existence_table(schema, table)¶
Vérifie que la table n’existe pas avant de créer un nouvel indicateur.
- lecture_headers(fpath, sep=';', original=False)¶
On lit l’en-tête et renvoie le nom des champs.
- normalize(name)¶
Normalisation d’un champs
On met en minuscule, sans accent, sans tiret et sans espace.
- verifie_existence_tables(liste_tables_presentes, liste_donnees_obligatoires)¶
Vérification que toutes les tables nécessaires à la mise à jour des territoires sont bien présentes
- Paramètres
liste_tables_presentes (liste) – Liste des tables présentes en base de données
liste_donnees_obligatoires (liste) – Liste des tables nécessaires à la mise à jour des territoires
- Type renvoyé
Objet de type ValidationMessage à afficher dans l’interface en cas d’erreur
- verifie_headers(fpath, colonnes_obligatoires)¶
Vérifie le nom des en-têtes
Le fichier CSV doit contenir au moins quelques noms de colonnes requis.
- Paramètres
fpath (Path) – Fichier de données CSV
- Type renvoyé
- async verifie_table_colonne(schema, table, fpath, is_national=False)¶
On vérifie que l’en-tête du fichier correspond aux noms des colonnes de la table
- Paramètres
- Type renvoyé