#!/usr/bin/env python3 import argparse import os from dotenv import load_dotenv from sqlalchemy import create_engine from nupes.scripts import import_candidats_2024, import_geographie, import_resultats_2024, \ import_resultats_web_2024, export_resultats_2024 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) parser.add_argument('action', help="Action à réaliser", choices=["import_candidats", "import_geographie", "import_resultats", "import_resultats_web", "export_resultats"]) parser.add_argument('--debug', '-d', action='store_true', help="Mode debug") return parser.parse_args() def main(): load_dotenv() args = parse_args() debug = args.debug engine = create_engine(os.getenv("SQLALCHEMY_URL"), echo=args.debug) match args.action: case "import_geographie": if debug: print(f"Import des données géographiques pour les élections {args.type} {args.year}") import_geographie.run(engine, debug) case "import_candidats": if debug: print(f"Import des candidats pour les élections {args.type} {args.year}") import_candidats_2024.run(engine, debug) case "import_resultats": if debug: print(f"Import des résultats pour les élections {args.type} {args.year}") import_resultats_2024.run(engine, debug) case "import_resultats_web": if debug: print(f"Import des résultats depuis le web pour les élections {args.type} {args.year}") import_resultats_web_2024.run(engine, debug) case "export_resultats": if debug: print(f"Export des résultats pour les élections {args.type} {args.year}") export_resultats_2024.run(engine, debug) case _: print(f"Action {args.action} non reconnue") if __name__ == "__main__": main()