nupes-elections/main.py

47 lines
1.7 KiB
Python
Executable File

#!/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_web_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"])
parser.add_argument('--debug', '-d', action='store_true', help="Mode debug")
return parser.parse_args()
def main():
load_dotenv()
args = parse_args()
engine = create_engine(os.getenv("SQLALCHEMY_URL"), echo=args.debug)
match args.action:
case "import_geographie":
print(f"Import des données géographiques pour les élections {args.type} {args.year}")
import_geographie.run(engine)
case "import_candidats":
print(f"Import des candidats pour les élections {args.type} {args.year}")
import_candidats_2024.run(engine)
case "import_resultats":
print(f"Import des résultats pour les élections {args.type} {args.year}")
import_resultats_web_2024.run(engine)
case _:
print(f"Action {args.action} non reconnue")
if __name__ == "__main__":
main()