Creation d'un fichier settings.py et d'un changelog

This commit is contained in:
Sdj Geek 2020-06-01 09:25:26 +02:00
parent ba7fc7a3c7
commit 6266194d29
4 changed files with 57 additions and 44 deletions

10
CHANGELOG.md Normal file
View File

@ -0,0 +1,10 @@
# Changelog
### [v2.0] - 2020-06-01
- Le fichier de sortie contient plus d'informations pour faciliter la comparaison (lieu de naissance)
- Sortie des paramètres du code et création du fichier settings.py
- Mise à disposition de la base de donnée au format torrent
- Création du changelog
### [v1.0] - 2020-05-16
- Première publication

View File

@ -38,10 +38,10 @@ Testé uniquement sur GNU/Linux (Ubuntu 18.4)
### Données
Le fichier de l'INSEE tel qu'il est présenté n'est pas facile à exploiter. Je
l'ai donc converti en base de donnée SQLite, plus pratique d'utilisation. Je
n'ai pas encore uploadé ce fichier, mais vous pouvez me le demander par
courriel.
Le fichier de l'INSEE tel qu'il est présenté n'est pas facile à
exploiter. Je l'ai donc converti en base de donnée SQLite, plus
pratique d'utilisation. Pour le télécharger, [rendez-vous
ici](https://git.roflcopter.fr/sdjgeek/purge-registres-deces-insee/-/wikis/home#t%C3%A9l%C3%A9charger-la-base-de-donn%C3%A9e).
## Installation

31
settings.py Normal file
View File

@ -0,0 +1,31 @@
"""
Paramètres de l'application
- chemin_base_donnees : Le chemin vers le fichier téléchargé sur le site data.gouv.fr
- numeros_unites : La liste des unités que le programme doit tester. La liste commence par le caractère '['. Les
numéros d'unités sont séparés par des virgules. La liste se termine par le caractère ']'. Par exemple
[47823, 67745, 31456]
- cookie : Les cookies de la session au compte SDJ. Pour obtenir ces cookies il faut
1- Ouvrir Firefox
2- Ouvrir les outils de développement : CTRL + MAJ + E
3- Aller sur le site des outils pour greffiers : https://lds.org/lcr
4- Entrer identifiant et mot de passe SDJ
5- Aller dans la liste des membres
6- Dans l'outil de développement, cliquer sur la dernière ligne
7- Dans le paneau de droite, dans la section "En-tête de la requête", rechercher le champ "cookie"
8- Copier la valeur contenue dans ce champ
- chemin_repertoire_sortie : Le chemin vers le répertoire qui contiendra la fichiers de sortie
"""
# Chemin complet vers le fichier contenant les registres de l'INSEE.
# Pour le télécharger, rendez-vous ici :
# https://git.roflcopter.fr/sdjgeek/purge-registres-deces-insee/-/wikis/home#t%C3%A9l%C3%A9charger-la-base-de-donn%C3%A9e
chemin_base_donnees = "/chemin/vers/fichier-des-personnes-decedees.sqlite"
# Numéro des l'unités à contrôler
numeros_unites = [47823, 67745, 31456]
# Cookie de session compte SDJ
cookie = ""
# Chemin vers le répertoire de sortie
chemin_repertoire_sortie = "/chemin/vers/repertoire-de-sortie"

View File

@ -13,8 +13,8 @@ libre sur le site https://www.data.gouv.fr.
Comment utilise ce programme :
1) Demander le ficher de l'INSEE à cette adresse : sdjgeek@protonmail.com
2) Installer les dépendance du programme : "pip install requests peewee"
3) Configurer les paramètres du programme (un peu plus bas)
- chemin_base_donnees : Le chemin vers le fichier téléchargé sur le site data.gouv.fr
3) Configurer les paramètres du programme (fichier settings.py)
- chemin_base_donnees : Le chemin vers [le fichier téléchargé ici](https://git.roflcopter.fr/sdjgeek/purge-registres-deces-insee/-/wikis/home#t%C3%A9l%C3%A9charger-la-base-de-donn%C3%A9e)
- numeros_unites : La liste des unités que le programme doit tester. La liste commence par le caractère '['. Les
numéros d'unités sont séparés par des virgules. La liste se termine par le caractère ']'. Par exemple
[47823, 67745, 31456]
@ -33,48 +33,20 @@ Comment utilise ce programme :
------------------------------------------------------------------------------------------------------------------------
Auteur : SDJ GeeK <sdjgeek@protonmail.com>
Date : 16 mai 2020
Version : 1.0
------------------------------------------------------------------------------------------------------------------------
Journal des versions
v2.0 (2020/)
Le fichier de sortie contient plus d'informations pour faciliter la
comparaison
v1.0 (2020/05/16)
Première publication
Date : 1 juin 2020
Version : 2.0
"""
###
# Paramètres
# Chemin complet vers le fichier contenant les registres de l'INSEE
chemin_base_donnees = "/chemin/vers/fichier-des-personnes-decedees.sqlite"
# Numéro des l'unités à contrôler (par exemple [47823, 67745, 31456])
# Beziers 63789, Carcassonne 85774, Montauban 226122, Montpellier 83895, Nimes 72850, Perpignan 75698, Rodez 333824, Tarbes 65471, Capitole 111848, Concorde 263923
numeros_unites = [63789, 111848]
# Cookie de session compte SDJ
cookie = ""
# Chemin vers le répertoire de sortie
chemin_repertoire_sortie = "/chemin/vers/repertoire-de-sortie"
# Fin des paramètres. Ne pas modifier plus loin.
###
import os
import peewee
import requests
import settings as param
###
# Base de donnée INSEE
database = peewee.SqliteDatabase(chemin_base_donnees)
database = peewee.SqliteDatabase(param.chemin_base_donnees)
class Person(peewee.Model):
@ -138,13 +110,13 @@ def get_member_profile(member_id, cookie):
# Programme principal
# Boucler sur la liste des unités
for unite in numeros_unites:
for unite in param.numeros_unites:
print(f"Unité {unite}")
# Récupérer la liste des membres
members = get_member_list(unite, cookie=cookie)
members = get_member_list(unite, cookie=param.cookie)
# Préparer le fichier de sortie
output_file = os.path.join(chemin_repertoire_sortie, f"liste_membres_decedes_unite_{unite}.txt")
output_file = os.path.join(param.chemin_repertoire_sortie, f"liste_membres_decedes_unite_{unite}.txt")
with open(output_file, 'w') as out_file:
out_file.write("Les lieux dans le fichier de l'INSEE sont donnés en Code Officiel Géographique en vigueur au moment de la prise en compte du décès\n")
# Boucler sur la liste des membres
@ -156,7 +128,7 @@ for unite in numeros_unites:
ville_registre = None
# S'il s'agit d'une femme mariée, trouver son nom de jeune fille
if member['isSpouse']:
member_profile = get_member_profile(member['legacyCmisId'], cookie=cookie)
member_profile = get_member_profile(member['legacyCmisId'], cookie=param.cookie)
maiden_name = member_profile['individual']['maidenNameGroup']['name1']['family']
ville_registre = member_profile['individual']['birthPlace']
try:
@ -177,7 +149,7 @@ for unite in numeros_unites:
feminin = ""
for person in query:
if not ville_registre:
member_profile = get_member_profile(member['legacyCmisId'], cookie=cookie)
member_profile = get_member_profile(member['legacyCmisId'], cookie=param.cookie)
ville_registre = member_profile['individual']['birthPlace']
if not ville_registre:
ville_registre = "<VIDE>"