Nécessité du mode debug pour un contenu verbeux

This commit is contained in:
2024-06-09 17:45:56 +02:00
parent aabd3f0153
commit dec9f414ac
5 changed files with 68 additions and 54 deletions

View File

@ -13,7 +13,7 @@ from nupes.models.geographie import Region, Departement, Commune
BASE_URL = "https://www.resultats-elections.interieur.gouv.fr/europeennes2024/ensemble_geographique"
def importer_resultats_france(engine: Engine) -> None:
def importer_resultats_france(engine: Engine, debug: bool = False) -> None:
file = get_file(f"{BASE_URL}/index.html", "resultats2024/resultats.html")
with file.open() as f:
@ -53,9 +53,11 @@ def importer_resultats_france(engine: Engine) -> None:
session.commit()
def importer_resultats_regions(engine: Engine) -> None:
def importer_resultats_regions(engine: Engine, debug: bool = False) -> None:
with Session(engine) as session:
for region in tqdm(session.execute(select(Region)).scalars().all(), desc="Régions"):
regions = session.execute(select(Region)).scalars().all()
regions_iterator = tqdm(regions, desc="Régions") if debug else regions
for region in regions_iterator:
reg_code = region.code_insee
if reg_code == "984" or reg_code == "989":
# TAAF + Île de Clipperton, pas d'élection
@ -107,9 +109,11 @@ def importer_resultats_regions(engine: Engine) -> None:
session.commit()
def importer_resultats_departements(engine: Engine) -> None:
def importer_resultats_departements(engine: Engine, debug: bool = False) -> None:
with Session(engine) as session:
for dpt in tqdm(session.execute(select(Departement)).scalars().all(), desc="Départements"):
departements = session.execute(select(Departement)).scalars().all()
iterator = tqdm(departements, desc="Départements") if debug else departements
for dpt in iterator:
reg_code = dpt.region_code
reg_path = f"{reg_code}/"
dpt_code = dpt.code_insee
@ -168,9 +172,11 @@ def importer_resultats_departements(engine: Engine) -> None:
session.commit()
def importer_resultats_communes(engine: Engine) -> None:
def importer_resultats_communes(engine: Engine, debug: bool = False) -> None:
with Session(engine) as session:
for commune in tqdm(session.execute(select(Commune)).scalars().all(), desc="Communes"):
communes = session.execute(select(Commune)).scalars().all()
iterator = tqdm(communes, desc="Communes") if debug else communes
for commune in iterator:
reg_code = commune.departement.region_code
reg_path = f"{reg_code}/"
dpt_code = commune.departement_code
@ -290,9 +296,9 @@ def analyser_resultats(file) -> dict:
return parsed_data
def run(engine: Engine) -> None:
importer_resultats_france(engine)
importer_resultats_regions(engine)
importer_resultats_departements(engine)
def run(engine: Engine, debug: bool = False) -> None:
importer_resultats_france(engine, debug)
importer_resultats_regions(engine, debug)
importer_resultats_departements(engine, debug)
# FIXME Les communes prennent trop de temps
# importer_resultats_communes(engine)
# importer_resultats_communes(engine, debug)