Préparation de l'analyse de résultats

This commit is contained in:
2024-06-08 19:38:59 +02:00
parent b1aee3ad07
commit 56358048f4
11 changed files with 760 additions and 173 deletions

View File

@ -118,14 +118,17 @@ def importer_listes(engine: Engine) -> None:
liste.nuance_id = liste_dict["nuance_id"]
liste.bloc_id = liste_dict["bloc_id"]
else:
session.add(Liste(**liste_dict))
liste = Liste(numero=liste_dict['numero'], nom=liste_dict['nom'],
nom_majuscules=liste_dict['nom'].upper(), nuance_id=liste_dict['nuance_id'],
bloc_id=liste_dict['bloc_id'])
session.add(liste)
session.commit()
def importer_candidats(engine: Engine) -> None:
DATASET_URL = "https://www.data.gouv.fr/fr/datasets/r/483cd4bd-1b0e-4b52-a923-aadadf9c8f62"
file = get_file(DATASET_URL, "candidats_2024-{etag}.csv")
file = get_file(DATASET_URL, "candidats_2024.csv")
with file.open('r') as f:
with Session(engine) as session:
@ -134,6 +137,7 @@ def importer_candidats(engine: Engine) -> None:
line: dict[str, str]
numero_panneau = line.get("Numéro de panneau")
liste = session.execute(select(Liste).filter_by(numero=numero_panneau)).scalar_one()
liste.nom_majuscules = line['Libellé de la liste']
if candidat := session.execute(select(Candidat).filter_by(liste_id=liste.id, ordre=line['Ordre'])) \
.scalar_one_or_none():