Accélération import résultats bureaux vote
This commit is contained in:
parent
afc1d3f85f
commit
d78ac420d8
@ -13,6 +13,12 @@ def importer_resultats_bv(engine: Engine, verbose: bool = False) -> None:
|
|||||||
tours = [(1, "https://www.data.gouv.fr/fr/datasets/r/a1f73b85-8194-44f4-a2b7-c343edb47d32"),
|
tours = [(1, "https://www.data.gouv.fr/fr/datasets/r/a1f73b85-8194-44f4-a2b7-c343edb47d32"),
|
||||||
(2, "https://www.data.gouv.fr/fr/datasets/r/96ffddda-59b4-41b8-a6a3-dfe1adb7fa36")]
|
(2, "https://www.data.gouv.fr/fr/datasets/r/96ffddda-59b4-41b8-a6a3-dfe1adb7fa36")]
|
||||||
|
|
||||||
|
with Session(engine) as session:
|
||||||
|
candidats = {(candidat.circonscription_id, candidat.numero): candidat
|
||||||
|
for candidat in session.execute(select(CandidatLegislatives2022)).scalars().all()}
|
||||||
|
bv_ids = {(bv.commune_code, bv.code_bureau): bv.id
|
||||||
|
for bv in session.execute(select(BureauVote)).scalars().all()}
|
||||||
|
|
||||||
for tour, file_url in tours:
|
for tour, file_url in tours:
|
||||||
file = get_file("https://www.data.gouv.fr/fr/datasets/r/a1f73b85-8194-44f4-a2b7-c343edb47d32",
|
file = get_file("https://www.data.gouv.fr/fr/datasets/r/a1f73b85-8194-44f4-a2b7-c343edb47d32",
|
||||||
"resultats-legislatives-2022-t1-par-bureau-de-vote.csv")
|
"resultats-legislatives-2022-t1-par-bureau-de-vote.csv")
|
||||||
@ -61,12 +67,10 @@ def importer_resultats_bv(engine: Engine, verbose: bool = False) -> None:
|
|||||||
|
|
||||||
bv_code = row[6]
|
bv_code = row[6]
|
||||||
|
|
||||||
if bv := session.execute(select(BureauVote).filter_by(commune_code=com_code, code_bureau=bv_code)) \
|
if (com_code, bv_code) not in bv_ids:
|
||||||
.scalar_one_or_none():
|
|
||||||
bv_id = bv.id
|
|
||||||
else:
|
|
||||||
print(f"Bureau de vote {com_code}_{bv_code} non trouvé")
|
print(f"Bureau de vote {com_code}_{bv_code} non trouvé")
|
||||||
continue
|
continue
|
||||||
|
bv_id = bv_ids[(com_code, bv_code)]
|
||||||
|
|
||||||
circo_code = row[2]
|
circo_code = row[2]
|
||||||
circo_id = f"{dpt_code.zfill(2)}-{circo_code.zfill(2)}"
|
circo_id = f"{dpt_code.zfill(2)}-{circo_code.zfill(2)}"
|
||||||
@ -144,9 +148,7 @@ def importer_resultats_bv(engine: Engine, verbose: bool = False) -> None:
|
|||||||
numero = bloc_voix[0]
|
numero = bloc_voix[0]
|
||||||
voix = int(bloc_voix[5])
|
voix = int(bloc_voix[5])
|
||||||
|
|
||||||
candidat = session.execute(select(CandidatLegislatives2022)
|
candidat = candidats[(circo_id, int(numero))]
|
||||||
.filter_by(circonscription_id=circo_id, numero=numero)) \
|
|
||||||
.scalar_one_or_none()
|
|
||||||
|
|
||||||
voix_candidat_bv = session.execute(select(VoixBureauVoteLegislatives2022)
|
voix_candidat_bv = session.execute(select(VoixBureauVoteLegislatives2022)
|
||||||
.filter_by(resultats_bureau_vote_id=resultats_bv.id,
|
.filter_by(resultats_bureau_vote_id=resultats_bv.id,
|
||||||
|
Loading…
Reference in New Issue
Block a user