2024-06-08 11:08:22 +00:00
|
|
|
#!/usr/bin/env python3
|
|
|
|
|
|
|
|
import argparse
|
|
|
|
import os
|
|
|
|
|
|
|
|
from dotenv import load_dotenv
|
|
|
|
from sqlalchemy import create_engine
|
|
|
|
|
2024-06-13 10:19:02 +00:00
|
|
|
from nupes.scripts import import_candidats_2024, import_geographie, import_resultats_2024, \
|
|
|
|
import_resultats_web_2024, export_resultats_2024
|
2024-06-08 11:08:22 +00:00
|
|
|
|
|
|
|
|
|
|
|
def parse_args():
|
|
|
|
parser = argparse.ArgumentParser(description="Gestion d'élections")
|
|
|
|
parser.add_argument('--type', '-t', type=str, help="Type d'élection",
|
|
|
|
choices=["présidentielle", "législatives", "sénatoriales", "européennes",
|
|
|
|
"régionales", "départementales", "municipales"], default="européennes")
|
|
|
|
parser.add_argument('--year', '-y', type=int, help="Année de l'élection", default=2024)
|
2024-06-08 15:10:19 +00:00
|
|
|
parser.add_argument('action', help="Action à réaliser",
|
2024-06-13 10:19:02 +00:00
|
|
|
choices=["import_candidats", "import_geographie", "import_resultats",
|
|
|
|
"import_resultats_web", "export_resultats"])
|
2024-06-13 10:21:11 +00:00
|
|
|
parser.add_argument('--debug', '-d', action='store_true',
|
|
|
|
help="Mode debug (affiche toutes les requêtes SQL)")
|
|
|
|
parser.add_argument('--verbose', '-v', action='store_true', help="Mode verbeux")
|
2024-06-08 11:08:22 +00:00
|
|
|
return parser.parse_args()
|
|
|
|
|
|
|
|
|
|
|
|
def main():
|
|
|
|
load_dotenv()
|
|
|
|
|
|
|
|
args = parse_args()
|
2024-06-09 15:45:56 +00:00
|
|
|
debug = args.debug
|
2024-06-13 10:21:11 +00:00
|
|
|
verbose = args.verbose
|
2024-06-08 11:08:22 +00:00
|
|
|
|
|
|
|
engine = create_engine(os.getenv("SQLALCHEMY_URL"), echo=args.debug)
|
|
|
|
|
|
|
|
match args.action:
|
2024-06-08 15:10:19 +00:00
|
|
|
case "import_geographie":
|
2024-06-13 10:21:11 +00:00
|
|
|
if verbose:
|
2024-06-09 15:45:56 +00:00
|
|
|
print(f"Import des données géographiques pour les élections {args.type} {args.year}")
|
2024-06-13 10:21:11 +00:00
|
|
|
import_geographie.run(engine, verbose)
|
2024-06-08 11:08:22 +00:00
|
|
|
case "import_candidats":
|
2024-06-13 10:21:11 +00:00
|
|
|
if verbose:
|
2024-06-09 15:45:56 +00:00
|
|
|
print(f"Import des candidats pour les élections {args.type} {args.year}")
|
2024-06-13 10:21:11 +00:00
|
|
|
import_candidats_2024.run(engine, verbose)
|
2024-06-08 17:38:59 +00:00
|
|
|
case "import_resultats":
|
2024-06-13 10:21:11 +00:00
|
|
|
if verbose:
|
2024-06-09 15:45:56 +00:00
|
|
|
print(f"Import des résultats pour les élections {args.type} {args.year}")
|
2024-06-13 10:21:11 +00:00
|
|
|
import_resultats_2024.run(engine, verbose)
|
2024-06-13 10:19:02 +00:00
|
|
|
case "import_resultats_web":
|
2024-06-13 10:21:11 +00:00
|
|
|
if verbose:
|
2024-06-13 10:19:02 +00:00
|
|
|
print(f"Import des résultats depuis le web pour les élections {args.type} {args.year}")
|
2024-06-13 10:21:11 +00:00
|
|
|
import_resultats_web_2024.run(engine, verbose)
|
2024-06-08 21:06:41 +00:00
|
|
|
case "export_resultats":
|
2024-06-13 10:21:11 +00:00
|
|
|
if verbose:
|
2024-06-09 15:45:56 +00:00
|
|
|
print(f"Export des résultats pour les élections {args.type} {args.year}")
|
2024-06-13 10:21:11 +00:00
|
|
|
export_resultats_2024.run(engine, verbose)
|
2024-06-08 11:08:22 +00:00
|
|
|
case _:
|
|
|
|
print(f"Action {args.action} non reconnue")
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
main()
|