Renommage des modèles pour les européennes

This commit is contained in:
Emmy D'Anello 2024-06-18 14:30:14 +02:00
parent 43862f4408
commit ac0b5e5262
Signed by: ynerant
GPG Key ID: 3A75C55819C8CF85
9 changed files with 422 additions and 393 deletions

View File

@ -1,8 +1,8 @@
"""initial """initial
Revision ID: d7fed76a55bd Revision ID: c0443e979a90
Revises: Revises:
Create Date: 2024-06-15 00:03:00.687812 Create Date: 2024-06-18 14:12:39.798179
""" """
from typing import Sequence, Union from typing import Sequence, Union
@ -12,7 +12,7 @@ import sqlalchemy as sa
# revision identifiers, used by Alembic. # revision identifiers, used by Alembic.
revision: str = 'd7fed76a55bd' revision: str = 'c0443e979a90'
down_revision: Union[str, None] = None down_revision: Union[str, None] = None
branch_labels: Union[str, Sequence[str], None] = None branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None depends_on: Union[str, Sequence[str], None] = None
@ -20,28 +20,21 @@ depends_on: Union[str, Sequence[str], None] = None
def upgrade() -> None: def upgrade() -> None:
# ### commands auto generated by Alembic - please adjust! ### # ### commands auto generated by Alembic - please adjust! ###
op.create_table('bloc2024', op.create_table('europeennes_2024_bloc',
sa.Column('id', sa.Integer(), nullable=False), sa.Column('id', sa.Integer(), nullable=False),
sa.Column('nom', sa.String(length=32), nullable=False), sa.Column('nom', sa.String(length=32), nullable=False),
sa.Column('couleur', sa.String(length=7), nullable=False), sa.Column('couleur', sa.String(length=7), nullable=False),
sa.PrimaryKeyConstraint('id'), sa.PrimaryKeyConstraint('id'),
sa.UniqueConstraint('nom') sa.UniqueConstraint('nom')
) )
op.create_table('nuance2024', op.create_table('europeennes_2024_nuance',
sa.Column('code', sa.String(length=8), nullable=False), sa.Column('code', sa.String(length=8), nullable=False),
sa.Column('nom', sa.String(length=64), nullable=False), sa.Column('nom', sa.String(length=64), nullable=False),
sa.Column('couleur', sa.String(length=7), nullable=False), sa.Column('couleur', sa.String(length=7), nullable=False),
sa.PrimaryKeyConstraint('code'), sa.PrimaryKeyConstraint('code'),
sa.UniqueConstraint('nom') sa.UniqueConstraint('nom')
) )
op.create_table('region', op.create_table('europeennes_2024_resultats_france',
sa.Column('code_insee', sa.String(length=3), nullable=False),
sa.Column('libelle', sa.String(length=64), nullable=False),
sa.Column('geometry', sa.JSON(), nullable=False),
sa.PrimaryKeyConstraint('code_insee'),
sa.UniqueConstraint('libelle')
)
op.create_table('resultats2024_france',
sa.Column('id', sa.Integer(), nullable=False), sa.Column('id', sa.Integer(), nullable=False),
sa.Column('inscrits', sa.Integer(), nullable=False), sa.Column('inscrits', sa.Integer(), nullable=False),
sa.Column('votants', sa.Integer(), nullable=False), sa.Column('votants', sa.Integer(), nullable=False),
@ -51,6 +44,13 @@ def upgrade() -> None:
sa.Column('nuls', sa.Integer(), nullable=False), sa.Column('nuls', sa.Integer(), nullable=False),
sa.PrimaryKeyConstraint('id') sa.PrimaryKeyConstraint('id')
) )
op.create_table('region',
sa.Column('code_insee', sa.String(length=3), nullable=False),
sa.Column('libelle', sa.String(length=64), nullable=False),
sa.Column('geometry', sa.JSON(), nullable=False),
sa.PrimaryKeyConstraint('code_insee'),
sa.UniqueConstraint('libelle')
)
op.create_table('departement', op.create_table('departement',
sa.Column('code_insee', sa.String(length=3), nullable=False), sa.Column('code_insee', sa.String(length=3), nullable=False),
sa.Column('libelle', sa.String(length=64), nullable=False), sa.Column('libelle', sa.String(length=64), nullable=False),
@ -60,21 +60,21 @@ def upgrade() -> None:
sa.PrimaryKeyConstraint('code_insee'), sa.PrimaryKeyConstraint('code_insee'),
sa.UniqueConstraint('libelle') sa.UniqueConstraint('libelle')
) )
op.create_table('liste2024', op.create_table('europeennes_2024_liste',
sa.Column('id', sa.Integer(), nullable=False), sa.Column('id', sa.Integer(), nullable=False),
sa.Column('nom', sa.String(length=256), nullable=False), sa.Column('nom', sa.String(length=256), nullable=False),
sa.Column('nom_majuscules', sa.String(length=256), nullable=True), sa.Column('nom_majuscules', sa.String(length=256), nullable=True),
sa.Column('numero', sa.Integer(), nullable=False), sa.Column('numero', sa.Integer(), nullable=False),
sa.Column('nuance_id', sa.String(length=8), nullable=False), sa.Column('nuance_id', sa.String(length=8), nullable=False),
sa.Column('bloc_id', sa.Integer(), nullable=False), sa.Column('bloc_id', sa.Integer(), nullable=False),
sa.ForeignKeyConstraint(['bloc_id'], ['bloc2024.id'], ), sa.ForeignKeyConstraint(['bloc_id'], ['europeennes_2024_bloc.id'], ),
sa.ForeignKeyConstraint(['nuance_id'], ['nuance2024.code'], ), sa.ForeignKeyConstraint(['nuance_id'], ['europeennes_2024_nuance.code'], ),
sa.PrimaryKeyConstraint('id'), sa.PrimaryKeyConstraint('id'),
sa.UniqueConstraint('nom'), sa.UniqueConstraint('nom'),
sa.UniqueConstraint('nom_majuscules'), sa.UniqueConstraint('nom_majuscules'),
sa.UniqueConstraint('numero') sa.UniqueConstraint('numero')
) )
op.create_table('resultats2024_region', op.create_table('europeennes_2024_resultats_region',
sa.Column('id', sa.Integer(), nullable=False), sa.Column('id', sa.Integer(), nullable=False),
sa.Column('region_id', sa.String(length=3), nullable=False), sa.Column('region_id', sa.String(length=3), nullable=False),
sa.Column('resultats_france_id', sa.Integer(), nullable=False), sa.Column('resultats_france_id', sa.Integer(), nullable=False),
@ -85,21 +85,7 @@ def upgrade() -> None:
sa.Column('blancs', sa.Integer(), nullable=False), sa.Column('blancs', sa.Integer(), nullable=False),
sa.Column('nuls', sa.Integer(), nullable=False), sa.Column('nuls', sa.Integer(), nullable=False),
sa.ForeignKeyConstraint(['region_id'], ['region.code_insee'], ), sa.ForeignKeyConstraint(['region_id'], ['region.code_insee'], ),
sa.ForeignKeyConstraint(['resultats_france_id'], ['resultats2024_france.id'], ), sa.ForeignKeyConstraint(['resultats_france_id'], ['europeennes_2024_resultats_france.id'], ),
sa.PrimaryKeyConstraint('id')
)
op.create_table('candidat2024',
sa.Column('id', sa.Integer(), nullable=False),
sa.Column('liste_id', sa.Integer(), nullable=False),
sa.Column('ordre', sa.Integer(), nullable=False),
sa.Column('nom', sa.String(length=256), nullable=False),
sa.Column('prenom', sa.String(length=256), nullable=False),
sa.Column('sexe', sa.Enum('MASCULIN', 'FEMININ', name='genre'), nullable=False),
sa.Column('date_naissance', sa.Date(), nullable=False),
sa.Column('profession', sa.String(length=256), nullable=False),
sa.Column('code_personnalite', sa.Enum('DEFAUT', 'EURODEPUTE', 'DEPUTE', 'SENATEUR', 'MINISTRE', 'PRESIDENT_CONSEIL_REGIONAL', 'PRESIDENT_CONSEIL_DEPARTEMENTAL', 'MAIRE', name='personnalite'), nullable=False),
sa.Column('sortant', sa.Boolean(), nullable=False),
sa.ForeignKeyConstraint(['liste_id'], ['liste2024.id'], ),
sa.PrimaryKeyConstraint('id') sa.PrimaryKeyConstraint('id')
) )
op.create_table('circonscription', op.create_table('circonscription',
@ -118,7 +104,21 @@ def upgrade() -> None:
sa.ForeignKeyConstraint(['departement_code'], ['departement.code_insee'], ), sa.ForeignKeyConstraint(['departement_code'], ['departement.code_insee'], ),
sa.PrimaryKeyConstraint('code_insee') sa.PrimaryKeyConstraint('code_insee')
) )
op.create_table('resultats2024_departement', op.create_table('europeennes_2024_candidat',
sa.Column('id', sa.Integer(), nullable=False),
sa.Column('liste_id', sa.Integer(), nullable=False),
sa.Column('ordre', sa.Integer(), nullable=False),
sa.Column('nom', sa.String(length=256), nullable=False),
sa.Column('prenom', sa.String(length=256), nullable=False),
sa.Column('sexe', sa.Enum('MASCULIN', 'FEMININ', name='genre'), nullable=False),
sa.Column('date_naissance', sa.Date(), nullable=False),
sa.Column('profession', sa.String(length=256), nullable=False),
sa.Column('code_personnalite', sa.Enum('DEFAUT', 'EURODEPUTE', 'DEPUTE', 'SENATEUR', 'MINISTRE', 'PRESIDENT_CONSEIL_REGIONAL', 'PRESIDENT_CONSEIL_DEPARTEMENTAL', 'MAIRE', name='personnalite'), nullable=False),
sa.Column('sortant', sa.Boolean(), nullable=False),
sa.ForeignKeyConstraint(['liste_id'], ['europeennes_2024_liste.id'], ),
sa.PrimaryKeyConstraint('id')
)
op.create_table('europeennes_2024_resultats_departement',
sa.Column('id', sa.Integer(), nullable=False), sa.Column('id', sa.Integer(), nullable=False),
sa.Column('dpt_id', sa.String(length=3), nullable=False), sa.Column('dpt_id', sa.String(length=3), nullable=False),
sa.Column('resultats_region_id', sa.Integer(), nullable=True), sa.Column('resultats_region_id', sa.Integer(), nullable=True),
@ -129,23 +129,23 @@ def upgrade() -> None:
sa.Column('blancs', sa.Integer(), nullable=False), sa.Column('blancs', sa.Integer(), nullable=False),
sa.Column('nuls', sa.Integer(), nullable=False), sa.Column('nuls', sa.Integer(), nullable=False),
sa.ForeignKeyConstraint(['dpt_id'], ['departement.code_insee'], ), sa.ForeignKeyConstraint(['dpt_id'], ['departement.code_insee'], ),
sa.ForeignKeyConstraint(['resultats_region_id'], ['resultats2024_region.id'], ), sa.ForeignKeyConstraint(['resultats_region_id'], ['europeennes_2024_resultats_region.id'], ),
sa.PrimaryKeyConstraint('id') sa.PrimaryKeyConstraint('id')
) )
op.create_table('voix2024_france', op.create_table('europeennes_2024_voix_france',
sa.Column('liste_id', sa.Integer(), nullable=False), sa.Column('liste_id', sa.Integer(), nullable=False),
sa.Column('resultats_france_id', sa.Integer(), nullable=False), sa.Column('resultats_france_id', sa.Integer(), nullable=False),
sa.Column('voix', sa.Integer(), nullable=False), sa.Column('voix', sa.Integer(), nullable=False),
sa.ForeignKeyConstraint(['liste_id'], ['liste2024.id'], ), sa.ForeignKeyConstraint(['liste_id'], ['europeennes_2024_liste.id'], ),
sa.ForeignKeyConstraint(['resultats_france_id'], ['resultats2024_france.id'], ), sa.ForeignKeyConstraint(['resultats_france_id'], ['europeennes_2024_resultats_france.id'], ),
sa.PrimaryKeyConstraint('liste_id', 'resultats_france_id') sa.PrimaryKeyConstraint('liste_id', 'resultats_france_id')
) )
op.create_table('voix2024_region', op.create_table('europeennes_2024_voix_region',
sa.Column('liste_id', sa.Integer(), nullable=False), sa.Column('liste_id', sa.Integer(), nullable=False),
sa.Column('resultats_region_id', sa.Integer(), nullable=False), sa.Column('resultats_region_id', sa.Integer(), nullable=False),
sa.Column('voix', sa.Integer(), nullable=False), sa.Column('voix', sa.Integer(), nullable=False),
sa.ForeignKeyConstraint(['liste_id'], ['liste2024.id'], ), sa.ForeignKeyConstraint(['liste_id'], ['europeennes_2024_liste.id'], ),
sa.ForeignKeyConstraint(['resultats_region_id'], ['resultats2024_region.id'], ), sa.ForeignKeyConstraint(['resultats_region_id'], ['europeennes_2024_resultats_region.id'], ),
sa.PrimaryKeyConstraint('liste_id', 'resultats_region_id') sa.PrimaryKeyConstraint('liste_id', 'resultats_region_id')
) )
op.create_table('bureau_vote', op.create_table('bureau_vote',
@ -160,7 +160,7 @@ def upgrade() -> None:
sa.ForeignKeyConstraint(['commune_code'], ['commune.code_insee'], ), sa.ForeignKeyConstraint(['commune_code'], ['commune.code_insee'], ),
sa.PrimaryKeyConstraint('id') sa.PrimaryKeyConstraint('id')
) )
op.create_table('resultats2024_circonscription', op.create_table('europeennes_2024_resultats_circonscription',
sa.Column('id', sa.Integer(), nullable=False), sa.Column('id', sa.Integer(), nullable=False),
sa.Column('circo_id', sa.String(length=6), nullable=False), sa.Column('circo_id', sa.String(length=6), nullable=False),
sa.Column('resultats_departement_id', sa.Integer(), nullable=False), sa.Column('resultats_departement_id', sa.Integer(), nullable=False),
@ -171,10 +171,10 @@ def upgrade() -> None:
sa.Column('blancs', sa.Integer(), nullable=False), sa.Column('blancs', sa.Integer(), nullable=False),
sa.Column('nuls', sa.Integer(), nullable=False), sa.Column('nuls', sa.Integer(), nullable=False),
sa.ForeignKeyConstraint(['circo_id'], ['circonscription.id'], ), sa.ForeignKeyConstraint(['circo_id'], ['circonscription.id'], ),
sa.ForeignKeyConstraint(['resultats_departement_id'], ['resultats2024_departement.id'], ), sa.ForeignKeyConstraint(['resultats_departement_id'], ['europeennes_2024_resultats_departement.id'], ),
sa.PrimaryKeyConstraint('id') sa.PrimaryKeyConstraint('id')
) )
op.create_table('resultats2024_commune', op.create_table('europeennes_2024_resultats_commune',
sa.Column('id', sa.Integer(), nullable=False), sa.Column('id', sa.Integer(), nullable=False),
sa.Column('commune_id', sa.String(length=5), nullable=False), sa.Column('commune_id', sa.String(length=5), nullable=False),
sa.Column('resultats_dpt_id', sa.Integer(), nullable=False), sa.Column('resultats_dpt_id', sa.Integer(), nullable=False),
@ -185,18 +185,18 @@ def upgrade() -> None:
sa.Column('blancs', sa.Integer(), nullable=False), sa.Column('blancs', sa.Integer(), nullable=False),
sa.Column('nuls', sa.Integer(), nullable=False), sa.Column('nuls', sa.Integer(), nullable=False),
sa.ForeignKeyConstraint(['commune_id'], ['commune.code_insee'], ), sa.ForeignKeyConstraint(['commune_id'], ['commune.code_insee'], ),
sa.ForeignKeyConstraint(['resultats_dpt_id'], ['resultats2024_departement.id'], ), sa.ForeignKeyConstraint(['resultats_dpt_id'], ['europeennes_2024_resultats_departement.id'], ),
sa.PrimaryKeyConstraint('id') sa.PrimaryKeyConstraint('id')
) )
op.create_table('voix2024_departement', op.create_table('europeennes_2024_voix_departement',
sa.Column('liste_id', sa.Integer(), nullable=False), sa.Column('liste_id', sa.Integer(), nullable=False),
sa.Column('resultats_departement_id', sa.Integer(), nullable=False), sa.Column('resultats_departement_id', sa.Integer(), nullable=False),
sa.Column('voix', sa.Integer(), nullable=False), sa.Column('voix', sa.Integer(), nullable=False),
sa.ForeignKeyConstraint(['liste_id'], ['liste2024.id'], ), sa.ForeignKeyConstraint(['liste_id'], ['europeennes_2024_liste.id'], ),
sa.ForeignKeyConstraint(['resultats_departement_id'], ['resultats2024_departement.id'], ), sa.ForeignKeyConstraint(['resultats_departement_id'], ['europeennes_2024_resultats_departement.id'], ),
sa.PrimaryKeyConstraint('liste_id', 'resultats_departement_id') sa.PrimaryKeyConstraint('liste_id', 'resultats_departement_id')
) )
op.create_table('resultats2024_bureau_vote', op.create_table('europeennes_2024_resultats_bureau_vote',
sa.Column('id', sa.Integer(), nullable=False), sa.Column('id', sa.Integer(), nullable=False),
sa.Column('bv_id', sa.String(length=16), nullable=False), sa.Column('bv_id', sa.String(length=16), nullable=False),
sa.Column('resultats_commune_id', sa.Integer(), nullable=False), sa.Column('resultats_commune_id', sa.Integer(), nullable=False),
@ -208,32 +208,32 @@ def upgrade() -> None:
sa.Column('blancs', sa.Integer(), nullable=False), sa.Column('blancs', sa.Integer(), nullable=False),
sa.Column('nuls', sa.Integer(), nullable=False), sa.Column('nuls', sa.Integer(), nullable=False),
sa.ForeignKeyConstraint(['bv_id'], ['bureau_vote.id'], ), sa.ForeignKeyConstraint(['bv_id'], ['bureau_vote.id'], ),
sa.ForeignKeyConstraint(['resultats_circo_id'], ['resultats2024_circonscription.id'], ), sa.ForeignKeyConstraint(['resultats_circo_id'], ['europeennes_2024_resultats_circonscription.id'], ),
sa.ForeignKeyConstraint(['resultats_commune_id'], ['resultats2024_commune.id'], ), sa.ForeignKeyConstraint(['resultats_commune_id'], ['europeennes_2024_resultats_commune.id'], ),
sa.PrimaryKeyConstraint('id') sa.PrimaryKeyConstraint('id')
) )
op.create_table('voix2024_circonscription', op.create_table('europeennes_2024_voix_circonscription',
sa.Column('liste_id', sa.Integer(), nullable=False), sa.Column('liste_id', sa.Integer(), nullable=False),
sa.Column('resultats_circonscription_id', sa.Integer(), nullable=False), sa.Column('resultats_circonscription_id', sa.Integer(), nullable=False),
sa.Column('voix', sa.Integer(), nullable=False), sa.Column('voix', sa.Integer(), nullable=False),
sa.ForeignKeyConstraint(['liste_id'], ['liste2024.id'], ), sa.ForeignKeyConstraint(['liste_id'], ['europeennes_2024_liste.id'], ),
sa.ForeignKeyConstraint(['resultats_circonscription_id'], ['resultats2024_circonscription.id'], ), sa.ForeignKeyConstraint(['resultats_circonscription_id'], ['europeennes_2024_resultats_circonscription.id'], ),
sa.PrimaryKeyConstraint('liste_id', 'resultats_circonscription_id') sa.PrimaryKeyConstraint('liste_id', 'resultats_circonscription_id')
) )
op.create_table('voix2024_commune', op.create_table('europeennes_2024_voix_commune',
sa.Column('liste_id', sa.Integer(), nullable=False), sa.Column('liste_id', sa.Integer(), nullable=False),
sa.Column('resultats_commune_id', sa.Integer(), nullable=False), sa.Column('resultats_commune_id', sa.Integer(), nullable=False),
sa.Column('voix', sa.Integer(), nullable=False), sa.Column('voix', sa.Integer(), nullable=False),
sa.ForeignKeyConstraint(['liste_id'], ['liste2024.id'], ), sa.ForeignKeyConstraint(['liste_id'], ['europeennes_2024_liste.id'], ),
sa.ForeignKeyConstraint(['resultats_commune_id'], ['resultats2024_commune.id'], ), sa.ForeignKeyConstraint(['resultats_commune_id'], ['europeennes_2024_resultats_commune.id'], ),
sa.PrimaryKeyConstraint('liste_id', 'resultats_commune_id') sa.PrimaryKeyConstraint('liste_id', 'resultats_commune_id')
) )
op.create_table('voix2024_bureau_vote', op.create_table('europeennes_2024_voix_bureau_vote',
sa.Column('liste_id', sa.Integer(), nullable=False), sa.Column('liste_id', sa.Integer(), nullable=False),
sa.Column('resultats_bureau_vote_id', sa.Integer(), nullable=False), sa.Column('resultats_bureau_vote_id', sa.Integer(), nullable=False),
sa.Column('voix', sa.Integer(), nullable=False), sa.Column('voix', sa.Integer(), nullable=False),
sa.ForeignKeyConstraint(['liste_id'], ['liste2024.id'], ), sa.ForeignKeyConstraint(['liste_id'], ['europeennes_2024_liste.id'], ),
sa.ForeignKeyConstraint(['resultats_bureau_vote_id'], ['resultats2024_bureau_vote.id'], ), sa.ForeignKeyConstraint(['resultats_bureau_vote_id'], ['europeennes_2024_resultats_bureau_vote.id'], ),
sa.PrimaryKeyConstraint('liste_id', 'resultats_bureau_vote_id') sa.PrimaryKeyConstraint('liste_id', 'resultats_bureau_vote_id')
) )
# ### end Alembic commands ### # ### end Alembic commands ###
@ -241,25 +241,25 @@ def upgrade() -> None:
def downgrade() -> None: def downgrade() -> None:
# ### commands auto generated by Alembic - please adjust! ### # ### commands auto generated by Alembic - please adjust! ###
op.drop_table('voix2024_bureau_vote') op.drop_table('europeennes_2024_voix_bureau_vote')
op.drop_table('voix2024_commune') op.drop_table('europeennes_2024_voix_commune')
op.drop_table('voix2024_circonscription') op.drop_table('europeennes_2024_voix_circonscription')
op.drop_table('resultats2024_bureau_vote') op.drop_table('europeennes_2024_resultats_bureau_vote')
op.drop_table('voix2024_departement') op.drop_table('europeennes_2024_voix_departement')
op.drop_table('resultats2024_commune') op.drop_table('europeennes_2024_resultats_commune')
op.drop_table('resultats2024_circonscription') op.drop_table('europeennes_2024_resultats_circonscription')
op.drop_table('bureau_vote') op.drop_table('bureau_vote')
op.drop_table('voix2024_region') op.drop_table('europeennes_2024_voix_region')
op.drop_table('voix2024_france') op.drop_table('europeennes_2024_voix_france')
op.drop_table('resultats2024_departement') op.drop_table('europeennes_2024_resultats_departement')
op.drop_table('europeennes_2024_candidat')
op.drop_table('commune') op.drop_table('commune')
op.drop_table('circonscription') op.drop_table('circonscription')
op.drop_table('candidat2024') op.drop_table('europeennes_2024_resultats_region')
op.drop_table('resultats2024_region') op.drop_table('europeennes_2024_liste')
op.drop_table('liste2024')
op.drop_table('departement') op.drop_table('departement')
op.drop_table('resultats2024_france')
op.drop_table('region') op.drop_table('region')
op.drop_table('nuance2024') op.drop_table('europeennes_2024_resultats_france')
op.drop_table('bloc2024') op.drop_table('europeennes_2024_nuance')
op.drop_table('europeennes_2024_bloc')
# ### end Alembic commands ### # ### end Alembic commands ###

View File

@ -1,7 +1,3 @@
from .base import Base from .base import Base
from .geographie import Region, Departement, Commune, Circonscription, BureauVote from .geographie import *
from .europeennes2024 import Bloc as Bloc2024, Nuance as Nuance2024, Liste as Liste2024, Candidat as Candidat2024, \ from .europeennes2024 import *
ResultatsFrance as ResultatsFrance2024, ResultatsRegion as ResultatsRegion2024, ResultatsDepartement as ResultatsDepartement2024, \
ResultatsCommune as ResultatsCommune2024, ResultatsBureauVote as ResultatsBureauVote2024, \
VoixListeFrance as VoixListeFrance2024, VoixListeRegion as VoixListeRegion2024, VoixListeDepartement as VoixListeDepartement2024, \
VoixListeCommune as VoixListeCommune2024, VoixListeBureauVote as VoixListeBureauVote2024

View File

@ -8,52 +8,57 @@ from sqlalchemy.orm import mapped_column, Mapped, relationship
from nupes.models import Base, Region, Departement, Commune from nupes.models import Base, Region, Departement, Commune
class Bloc(Base): class BlocEuropeennes2024(Base):
__tablename__ = "bloc2024" __tablename__ = "europeennes_2024_bloc"
id: Mapped[int] = mapped_column(primary_key=True) id: Mapped[int] = mapped_column(primary_key=True)
nom: Mapped[str] = mapped_column(String(32), unique=True) nom: Mapped[str] = mapped_column(String(32), unique=True)
couleur: Mapped[str] = mapped_column(String(7)) couleur: Mapped[str] = mapped_column(String(7))
listes: Mapped[List["Liste"]] = relationship("Liste", back_populates="bloc") listes: Mapped[List["ListeEuropeennes2024"]] = relationship("ListeEuropeennes2024", back_populates="bloc")
class Nuance(Base): class NuanceEuropeennes2024(Base):
__tablename__ = "nuance2024" __tablename__ = "europeennes_2024_nuance"
code: Mapped[str] = mapped_column(String(8), primary_key=True) code: Mapped[str] = mapped_column(String(8), primary_key=True)
nom: Mapped[str] = mapped_column(String(64), unique=True) nom: Mapped[str] = mapped_column(String(64), unique=True)
couleur: Mapped[str] = mapped_column(String(7)) couleur: Mapped[str] = mapped_column(String(7))
listes: Mapped[List["Liste"]] = relationship("Liste", back_populates="nuance") listes: Mapped[List["ListeEuropeennes2024"]] = relationship("ListeEuropeennes2024", back_populates="nuance")
class Liste(Base): class ListeEuropeennes2024(Base):
__tablename__ = "liste2024" __tablename__ = "europeennes_2024_liste"
id: Mapped[int] = mapped_column(primary_key=True) id: Mapped[int] = mapped_column(primary_key=True)
nom: Mapped[str] = mapped_column(String(256), unique=True) nom: Mapped[str] = mapped_column(String(256), unique=True)
nom_majuscules: Mapped[str] = mapped_column(String(256), unique=True, nullable=True) nom_majuscules: Mapped[str] = mapped_column(String(256), unique=True, nullable=True)
numero: Mapped[int] = mapped_column(Integer(), unique=True) numero: Mapped[int] = mapped_column(Integer(), unique=True)
nuance_id: Mapped[str] = mapped_column(ForeignKey("nuance2024.code")) nuance_id: Mapped[str] = mapped_column(ForeignKey("europeennes_2024_nuance.code"))
bloc_id: Mapped[int] = mapped_column(ForeignKey("bloc2024.id")) bloc_id: Mapped[int] = mapped_column(ForeignKey("europeennes_2024_bloc.id"))
nuance: Mapped[Nuance] = relationship(Nuance, back_populates="listes") nuance: Mapped[NuanceEuropeennes2024] = relationship(NuanceEuropeennes2024, back_populates="listes")
bloc: Mapped[Bloc] = relationship(Bloc, back_populates="listes") bloc: Mapped[BlocEuropeennes2024] = relationship(BlocEuropeennes2024, back_populates="listes")
candidats: Mapped[List["Candidat"]] = relationship("Candidat", back_populates="liste") candidats: Mapped[List["CandidatEuropeennes2024"]] = relationship("CandidatEuropeennes2024",
back_populates="liste")
resultats_nationaux: Mapped[List["VoixListeFrance"]] = relationship("VoixListeFrance", back_populates="liste") resultats_nationaux: Mapped[List["VoixListeFranceEuropeennes2024"]] = relationship(
resultats_par_region: Mapped[List["VoixListeRegion"]] = relationship("VoixListeRegion", back_populates="liste") "VoixListeFranceEuropeennes2024", back_populates="liste")
resultats_par_departement: Mapped[List["VoixListeDepartement"]] = relationship("VoixListeDepartement", resultats_par_region: Mapped[List["VoixListeRegionEuropeennes2024"]] = relationship(
back_populates="liste") "VoixListeRegionEuropeennes2024", back_populates="liste")
resultats_par_circonscription: Mapped[List["VoixListeCirconscription"]] = relationship( resultats_par_departement: Mapped[List[
"VoixListeCirconscription", back_populates="liste") "VoixListeDepartementEuropeennes2024"]] = relationship(
resultats_par_commune: Mapped[List["VoixListeCommune"]] = relationship("VoixListeCommune", back_populates="liste") "VoixListeDepartementEuropeennes2024", back_populates="liste")
resultats_par_bureau_vote: Mapped[List["VoixListeBureauVote"]] = relationship("VoixListeBureauVote", resultats_par_circonscription: Mapped[List["VoixListeCirconscriptionEuropeennes2024"]] = relationship(
back_populates="liste") "VoixListeCirconscriptionEuropeennes2024", back_populates="liste")
resultats_par_commune: Mapped[List["VoixListeCommuneEuropeennes2024"]] = relationship(
"VoixListeCommuneEuropeennes2024", back_populates="liste")
resultats_par_bureau_vote: Mapped[List["VoixListeBureauVoteEuropeennes2024"]] = relationship(
"VoixListeBureauVoteEuropeennes2024", back_populates="liste")
class Candidat(Base): class CandidatEuropeennes2024(Base):
class Genre(enum.Enum): class Genre(enum.Enum):
MASCULIN = "M" MASCULIN = "M"
FEMININ = "F" FEMININ = "F"
@ -68,10 +73,10 @@ class Candidat(Base):
PRESIDENT_CONSEIL_DEPARTEMENTAL = "PCD" PRESIDENT_CONSEIL_DEPARTEMENTAL = "PCD"
MAIRE = "MAI" MAIRE = "MAI"
__tablename__ = "candidat2024" __tablename__ = "europeennes_2024_candidat"
id: Mapped[int] = mapped_column(primary_key=True) id: Mapped[int] = mapped_column(primary_key=True)
liste_id: Mapped[int] = mapped_column(ForeignKey("liste2024.id")) liste_id: Mapped[int] = mapped_column(ForeignKey("europeennes_2024_liste.id"))
ordre: Mapped[int] = mapped_column(Integer()) ordre: Mapped[int] = mapped_column(Integer())
nom: Mapped[str] = mapped_column(String(256)) nom: Mapped[str] = mapped_column(String(256))
prenom: Mapped[str] = mapped_column(String(256)) prenom: Mapped[str] = mapped_column(String(256))
@ -81,11 +86,11 @@ class Candidat(Base):
code_personnalite: Mapped[str] = mapped_column(Enum(Personnalite)) code_personnalite: Mapped[str] = mapped_column(Enum(Personnalite))
sortant: Mapped[bool] = mapped_column(Boolean()) sortant: Mapped[bool] = mapped_column(Boolean())
liste: Mapped[Liste] = relationship(Liste, back_populates="candidats") liste: Mapped[ListeEuropeennes2024] = relationship(ListeEuropeennes2024, back_populates="candidats")
class ResultatsFrance(Base): class ResultatsFranceEuropeennes2024(Base):
__tablename__ = "resultats2024_france" __tablename__ = "europeennes_2024_resultats_france"
id: Mapped[int] = mapped_column(primary_key=True) id: Mapped[int] = mapped_column(primary_key=True)
inscrits: Mapped[int] = mapped_column(Integer(), default=0) inscrits: Mapped[int] = mapped_column(Integer(), default=0)
@ -95,17 +100,18 @@ class ResultatsFrance(Base):
blancs: Mapped[int] = mapped_column(Integer(), default=0) blancs: Mapped[int] = mapped_column(Integer(), default=0)
nuls: Mapped[int] = mapped_column(Integer(), default=0) nuls: Mapped[int] = mapped_column(Integer(), default=0)
resultats_regions: Mapped[List["ResultatsRegion"]] = relationship("ResultatsRegion", resultats_regions: Mapped[List["ResultatsRegionEuropeennes2024"]] = relationship(
back_populates="resultats_france") "ResultatsRegionEuropeennes2024", back_populates="resultats_france")
voix_listes: Mapped[List["VoixListeFrance"]] = relationship("VoixListeFrance", back_populates="resultats_france") voix_listes: Mapped[List["VoixListeFranceEuropeennes2024"]] = relationship(
"VoixListeFranceEuropeennes2024", back_populates="resultats_france")
class ResultatsRegion(Base): class ResultatsRegionEuropeennes2024(Base):
__tablename__ = "resultats2024_region" __tablename__ = "europeennes_2024_resultats_region"
id: Mapped[int] = mapped_column(primary_key=True) id: Mapped[int] = mapped_column(primary_key=True)
region_id: Mapped[str] = mapped_column(ForeignKey("region.code_insee")) region_id: Mapped[str] = mapped_column(ForeignKey("region.code_insee"))
resultats_france_id: Mapped[int] = mapped_column(ForeignKey("resultats2024_france.id")) resultats_france_id: Mapped[int] = mapped_column(ForeignKey("europeennes_2024_resultats_france.id"))
inscrits: Mapped[int] = mapped_column(Integer(), default=0) inscrits: Mapped[int] = mapped_column(Integer(), default=0)
votants: Mapped[int] = mapped_column(Integer(), default=0) votants: Mapped[int] = mapped_column(Integer(), default=0)
abstentions: Mapped[int] = mapped_column(Integer(), default=0) abstentions: Mapped[int] = mapped_column(Integer(), default=0)
@ -113,19 +119,20 @@ class ResultatsRegion(Base):
blancs: Mapped[int] = mapped_column(Integer(), default=0) blancs: Mapped[int] = mapped_column(Integer(), default=0)
nuls: Mapped[int] = mapped_column(Integer(), default=0) nuls: Mapped[int] = mapped_column(Integer(), default=0)
region = relationship(Region, back_populates="resultats2024") region = relationship(Region, back_populates="resultats_europeennes_2024")
resultats_france = relationship(ResultatsFrance, back_populates="resultats_regions") resultats_france = relationship(ResultatsFranceEuropeennes2024, back_populates="resultats_regions")
resultats_departements: Mapped[List["ResultatsDepartement"]] = relationship("ResultatsDepartement", resultats_departements: Mapped[List["ResultatsDepartementEuropeennes2024"]] = relationship(
back_populates="resultats_region") "ResultatsDepartementEuropeennes2024", back_populates="resultats_region")
voix_listes: Mapped[List["VoixListeRegion"]] = relationship("VoixListeRegion", back_populates="resultats_region") voix_listes: Mapped[List["VoixListeRegionEuropeennes2024"]] = relationship(
"VoixListeRegionEuropeennes2024", back_populates="resultats_region")
class ResultatsDepartement(Base): class ResultatsDepartementEuropeennes2024(Base):
__tablename__ = "resultats2024_departement" __tablename__ = "europeennes_2024_resultats_departement"
id: Mapped[int] = mapped_column(primary_key=True) id: Mapped[int] = mapped_column(primary_key=True)
dpt_id: Mapped[str] = mapped_column(ForeignKey("departement.code_insee")) dpt_id: Mapped[str] = mapped_column(ForeignKey("departement.code_insee"))
resultats_region_id: Mapped[int] = mapped_column(ForeignKey("resultats2024_region.id"), nullable=True) resultats_region_id: Mapped[int] = mapped_column(ForeignKey("europeennes_2024_resultats_region.id"), nullable=True)
inscrits: Mapped[int] = mapped_column(Integer(), default=0) inscrits: Mapped[int] = mapped_column(Integer(), default=0)
votants: Mapped[int] = mapped_column(Integer(), default=0) votants: Mapped[int] = mapped_column(Integer(), default=0)
abstentions: Mapped[int] = mapped_column(Integer(), default=0) abstentions: Mapped[int] = mapped_column(Integer(), default=0)
@ -133,22 +140,22 @@ class ResultatsDepartement(Base):
blancs: Mapped[int] = mapped_column(Integer(), default=0) blancs: Mapped[int] = mapped_column(Integer(), default=0)
nuls: Mapped[int] = mapped_column(Integer(), default=0) nuls: Mapped[int] = mapped_column(Integer(), default=0)
departement = relationship(Departement, back_populates="resultats2024") departement = relationship(Departement, back_populates="resultats_europeennes_2024")
resultats_region = relationship(ResultatsRegion, back_populates="resultats_departements") resultats_region = relationship(ResultatsRegionEuropeennes2024, back_populates="resultats_departements")
resultats_communes: Mapped[List["ResultatsCommune"]] = relationship("ResultatsCommune", resultats_communes: Mapped[List["ResultatsCommuneEuropeennes2024"]] = relationship(
back_populates="resultats_departement") "ResultatsCommuneEuropeennes2024", back_populates="resultats_departement")
resultats_circonscriptions: Mapped[List["ResultatsCirconscription"]] = relationship( resultats_circonscriptions: Mapped[List["ResultatsCirconscriptionEuropeennes2024"]] = relationship(
"ResultatsCirconscription", back_populates="resultats_departement") "ResultatsCirconscriptionEuropeennes2024", back_populates="resultats_departement")
voix_listes: Mapped[List["VoixListeDepartement"]] = relationship("VoixListeDepartement", voix_listes: Mapped[List["VoixListeDepartementEuropeennes2024"]] = relationship(
back_populates="resultats_departement") "VoixListeDepartementEuropeennes2024", back_populates="resultats_departement")
class ResultatsCirconscription(Base): class ResultatsCirconscriptionEuropeennes2024(Base):
__tablename__ = "resultats2024_circonscription" __tablename__ = "europeennes_2024_resultats_circonscription"
id: Mapped[int] = mapped_column(primary_key=True) id: Mapped[int] = mapped_column(primary_key=True)
circo_id: Mapped[str] = mapped_column(ForeignKey("circonscription.id")) circo_id: Mapped[str] = mapped_column(ForeignKey("circonscription.id"))
resultats_departement_id: Mapped[int] = mapped_column(ForeignKey("resultats2024_departement.id")) resultats_departement_id: Mapped[int] = mapped_column(ForeignKey("europeennes_2024_resultats_departement.id"))
inscrits: Mapped[int] = mapped_column(Integer(), default=0) inscrits: Mapped[int] = mapped_column(Integer(), default=0)
votants: Mapped[int] = mapped_column(Integer(), default=0) votants: Mapped[int] = mapped_column(Integer(), default=0)
abstentions: Mapped[int] = mapped_column(Integer(), default=0) abstentions: Mapped[int] = mapped_column(Integer(), default=0)
@ -156,20 +163,21 @@ class ResultatsCirconscription(Base):
blancs: Mapped[int] = mapped_column(Integer(), default=0) blancs: Mapped[int] = mapped_column(Integer(), default=0)
nuls: Mapped[int] = mapped_column(Integer(), default=0) nuls: Mapped[int] = mapped_column(Integer(), default=0)
circonscription = relationship("Circonscription", back_populates="resultats2024") circonscription = relationship("Circonscription", back_populates="resultats_europeennes_2024")
resultats_departement = relationship(ResultatsDepartement, back_populates="resultats_circonscriptions") resultats_departement = relationship(ResultatsDepartementEuropeennes2024,
resultats_bureaux_vote: Mapped[List["ResultatsBureauVote"]] = relationship( back_populates="resultats_circonscriptions")
"ResultatsBureauVote", back_populates="resultats_circonscription") resultats_bureaux_vote: Mapped[List["ResultatsBureauVoteEuropeennes2024"]] = relationship(
voix_listes: Mapped[List["VoixListeCirconscription"]] = relationship("VoixListeCirconscription", "ResultatsBureauVoteEuropeennes2024", back_populates="resultats_circonscription")
back_populates="resultats_circonscription") voix_listes: Mapped[List["VoixListeCirconscriptionEuropeennes2024"]] = relationship(
"VoixListeCirconscriptionEuropeennes2024", back_populates="resultats_circonscription")
class ResultatsCommune(Base): class ResultatsCommuneEuropeennes2024(Base):
__tablename__ = "resultats2024_commune" __tablename__ = "europeennes_2024_resultats_commune"
id: Mapped[int] = mapped_column(primary_key=True) id: Mapped[int] = mapped_column(primary_key=True)
commune_id: Mapped[str] = mapped_column(ForeignKey("commune.code_insee")) commune_id: Mapped[str] = mapped_column(ForeignKey("commune.code_insee"))
resultats_dpt_id: Mapped[int] = mapped_column(ForeignKey("resultats2024_departement.id")) resultats_dpt_id: Mapped[int] = mapped_column(ForeignKey("europeennes_2024_resultats_departement.id"))
inscrits: Mapped[int] = mapped_column(Integer(), default=0) inscrits: Mapped[int] = mapped_column(Integer(), default=0)
votants: Mapped[int] = mapped_column(Integer(), default=0) votants: Mapped[int] = mapped_column(Integer(), default=0)
abstentions: Mapped[int] = mapped_column(Integer(), default=0) abstentions: Mapped[int] = mapped_column(Integer(), default=0)
@ -177,20 +185,22 @@ class ResultatsCommune(Base):
blancs: Mapped[int] = mapped_column(Integer(), default=0) blancs: Mapped[int] = mapped_column(Integer(), default=0)
nuls: Mapped[int] = mapped_column(Integer(), default=0) nuls: Mapped[int] = mapped_column(Integer(), default=0)
commune = relationship(Commune, back_populates="resultats2024") commune = relationship(Commune, back_populates="resultats_europeennes_2024")
resultats_departement = relationship(ResultatsDepartement, back_populates="resultats_communes") resultats_departement = relationship(ResultatsDepartementEuropeennes2024, back_populates="resultats_communes")
resultats_bureaux_vote: Mapped[List["ResultatsBureauVote"]] = relationship("ResultatsBureauVote", resultats_bureaux_vote: Mapped[List["ResultatsBureauVoteEuropeennes2024"]] = relationship(
back_populates="resultats_commune") "ResultatsBureauVoteEuropeennes2024", back_populates="resultats_commune")
voix_listes: Mapped[List["VoixListeCommune"]] = relationship("VoixListeCommune", back_populates="resultats_commune") voix_listes: Mapped[List["VoixListeCommuneEuropeennes2024"]] = relationship(
"VoixListeCommuneEuropeennes2024", back_populates="resultats_commune")
class ResultatsBureauVote(Base): class ResultatsBureauVoteEuropeennes2024(Base):
__tablename__ = "resultats2024_bureau_vote" __tablename__ = "europeennes_2024_resultats_bureau_vote"
id: Mapped[int] = mapped_column(primary_key=True) id: Mapped[int] = mapped_column(primary_key=True)
bv_id: Mapped[str] = mapped_column(ForeignKey("bureau_vote.id")) bv_id: Mapped[str] = mapped_column(ForeignKey("bureau_vote.id"))
resultats_commune_id: Mapped[int] = mapped_column(ForeignKey("resultats2024_commune.id")) resultats_commune_id: Mapped[int] = mapped_column(ForeignKey("europeennes_2024_resultats_commune.id"))
resultats_circo_id: Mapped[int] = mapped_column(ForeignKey("resultats2024_circonscription.id"), nullable=True) resultats_circo_id: Mapped[int] = mapped_column(ForeignKey("europeennes_2024_resultats_circonscription.id"),
nullable=True)
inscrits: Mapped[int] = mapped_column(Integer(), default=0) inscrits: Mapped[int] = mapped_column(Integer(), default=0)
votants: Mapped[int] = mapped_column(Integer(), default=0) votants: Mapped[int] = mapped_column(Integer(), default=0)
abstentions: Mapped[int] = mapped_column(Integer(), default=0) abstentions: Mapped[int] = mapped_column(Integer(), default=0)
@ -198,77 +208,88 @@ class ResultatsBureauVote(Base):
blancs: Mapped[int] = mapped_column(Integer(), default=0) blancs: Mapped[int] = mapped_column(Integer(), default=0)
nuls: Mapped[int] = mapped_column(Integer(), default=0) nuls: Mapped[int] = mapped_column(Integer(), default=0)
bureau_vote = relationship("BureauVote", back_populates="resultats2024") bureau_vote = relationship("BureauVote", back_populates="resultats_europeennes_2024")
resultats_commune = relationship(ResultatsCommune, back_populates="resultats_bureaux_vote") resultats_commune = relationship(ResultatsCommuneEuropeennes2024, back_populates="resultats_bureaux_vote")
resultats_circonscription = relationship(ResultatsCirconscription, back_populates="resultats_bureaux_vote") resultats_circonscription = relationship(ResultatsCirconscriptionEuropeennes2024,
voix_listes: Mapped[List["VoixListeBureauVote"]] = relationship("VoixListeBureauVote", back_populates="resultats_bureaux_vote")
back_populates="resultats_bureau_vote") voix_listes: Mapped[List["VoixListeBureauVoteEuropeennes2024"]] = relationship(
"VoixListeBureauVoteEuropeennes2024", back_populates="resultats_bureau_vote")
class VoixListeFrance(Base): class VoixListeFranceEuropeennes2024(Base):
__tablename__ = "voix2024_france" __tablename__ = "europeennes_2024_voix_france"
liste_id: Mapped[int] = mapped_column(ForeignKey("liste2024.id"), primary_key=True) liste_id: Mapped[int] = mapped_column(ForeignKey("europeennes_2024_liste.id"), primary_key=True)
resultats_france_id: Mapped[int] = mapped_column(ForeignKey("resultats2024_france.id"), primary_key=True) resultats_france_id: Mapped[int] = mapped_column(ForeignKey("europeennes_2024_resultats_france.id"),
primary_key=True)
voix: Mapped[int] = mapped_column(Integer(), default=0) voix: Mapped[int] = mapped_column(Integer(), default=0)
liste: Mapped[Liste] = relationship(Liste, back_populates="resultats_nationaux") liste: Mapped[ListeEuropeennes2024] = relationship(ListeEuropeennes2024, back_populates="resultats_nationaux")
resultats_france: Mapped[ResultatsFrance] = relationship(ResultatsFrance, back_populates="voix_listes") resultats_france: Mapped[ResultatsFranceEuropeennes2024] = relationship(ResultatsFranceEuropeennes2024,
back_populates="voix_listes")
class VoixListeRegion(Base): class VoixListeRegionEuropeennes2024(Base):
__tablename__ = "voix2024_region" __tablename__ = "europeennes_2024_voix_region"
liste_id: Mapped[int] = mapped_column(ForeignKey("liste2024.id"), primary_key=True) liste_id: Mapped[int] = mapped_column(ForeignKey("europeennes_2024_liste.id"), primary_key=True)
resultats_region_id: Mapped[int] = mapped_column(ForeignKey("resultats2024_region.id"), primary_key=True) resultats_region_id: Mapped[int] = mapped_column(ForeignKey("europeennes_2024_resultats_region.id"),
primary_key=True)
voix: Mapped[int] = mapped_column(Integer(), default=0) voix: Mapped[int] = mapped_column(Integer(), default=0)
liste: Mapped[Liste] = relationship(Liste, back_populates="resultats_par_region") liste: Mapped[ListeEuropeennes2024] = relationship(ListeEuropeennes2024, back_populates="resultats_par_region")
resultats_region: Mapped[ResultatsRegion] = relationship(ResultatsRegion, back_populates="voix_listes") resultats_region: Mapped[ResultatsRegionEuropeennes2024] = relationship(ResultatsRegionEuropeennes2024,
back_populates="voix_listes")
class VoixListeDepartement(Base): class VoixListeDepartementEuropeennes2024(Base):
__tablename__ = "voix2024_departement" __tablename__ = "europeennes_2024_voix_departement"
liste_id: Mapped[int] = mapped_column(ForeignKey("liste2024.id"), primary_key=True) liste_id: Mapped[int] = mapped_column(ForeignKey("europeennes_2024_liste.id"), primary_key=True)
resultats_departement_id: Mapped[int] = mapped_column(ForeignKey("resultats2024_departement.id"), primary_key=True) resultats_departement_id: Mapped[int] = mapped_column(ForeignKey("europeennes_2024_resultats_departement.id"),
primary_key=True)
voix: Mapped[int] = mapped_column(Integer(), default=0) voix: Mapped[int] = mapped_column(Integer(), default=0)
liste: Mapped[Liste] = relationship(Liste, back_populates="resultats_par_departement") liste: Mapped[ListeEuropeennes2024] = relationship(ListeEuropeennes2024, back_populates="resultats_par_departement")
resultats_departement: Mapped[ResultatsDepartement] = relationship(ResultatsDepartement, resultats_departement: Mapped[ResultatsDepartementEuropeennes2024] = relationship(
back_populates="voix_listes") ResultatsDepartementEuropeennes2024, back_populates="voix_listes")
class VoixListeCirconscription(Base): class VoixListeCirconscriptionEuropeennes2024(Base):
__tablename__ = "voix2024_circonscription" __tablename__ = "europeennes_2024_voix_circonscription"
liste_id: Mapped[int] = mapped_column(ForeignKey("liste2024.id"), primary_key=True) liste_id: Mapped[int] = mapped_column(ForeignKey("europeennes_2024_liste.id"), primary_key=True)
resultats_circonscription_id: Mapped[int] = mapped_column(ForeignKey("resultats2024_circonscription.id"), resultats_circonscription_id: Mapped[int] = mapped_column(
primary_key=True) ForeignKey("europeennes_2024_resultats_circonscription.id"), primary_key=True)
voix: Mapped[int] = mapped_column(Integer(), default=0) voix: Mapped[int] = mapped_column(Integer(), default=0)
liste: Mapped[Liste] = relationship(Liste, back_populates="resultats_par_circonscription") liste: Mapped[ListeEuropeennes2024] = relationship(ListeEuropeennes2024,
resultats_circonscription: Mapped[ResultatsCirconscription] = relationship(ResultatsCirconscription, back_populates="resultats_par_circonscription")
back_populates="voix_listes") resultats_circonscription: Mapped[ResultatsCirconscriptionEuropeennes2024] = relationship(
ResultatsCirconscriptionEuropeennes2024, back_populates="voix_listes")
class VoixListeCommune(Base): class VoixListeCommuneEuropeennes2024(Base):
__tablename__ = "voix2024_commune" __tablename__ = "europeennes_2024_voix_commune"
liste_id: Mapped[int] = mapped_column(ForeignKey("liste2024.id"), primary_key=True) liste_id: Mapped[int] = mapped_column(ForeignKey("europeennes_2024_liste.id"), primary_key=True)
resultats_commune_id: Mapped[int] = mapped_column(ForeignKey("resultats2024_commune.id"), primary_key=True) resultats_commune_id: Mapped[int] = mapped_column(ForeignKey("europeennes_2024_resultats_commune.id"),
primary_key=True)
voix: Mapped[int] = mapped_column(Integer(), default=0) voix: Mapped[int] = mapped_column(Integer(), default=0)
liste: Mapped[Liste] = relationship(Liste, back_populates="resultats_par_commune") liste: Mapped[ListeEuropeennes2024] = relationship(ListeEuropeennes2024, back_populates="resultats_par_commune")
resultats_commune: Mapped[ResultatsCommune] = relationship(ResultatsCommune, back_populates="voix_listes") resultats_commune: Mapped[ResultatsCommuneEuropeennes2024] = relationship(ResultatsCommuneEuropeennes2024,
back_populates="voix_listes")
class VoixListeBureauVote(Base): class VoixListeBureauVoteEuropeennes2024(Base):
__tablename__ = "voix2024_bureau_vote" __tablename__ = "europeennes_2024_voix_bureau_vote"
liste_id: Mapped[int] = mapped_column(ForeignKey("liste2024.id"), primary_key=True) liste_id: Mapped[int] = mapped_column(ForeignKey("europeennes_2024_liste.id"), primary_key=True)
resultats_bureau_vote_id: Mapped[int] = mapped_column(ForeignKey("resultats2024_bureau_vote.id"), primary_key=True) resultats_bureau_vote_id: Mapped[int] = mapped_column(ForeignKey("europeennes_2024_resultats_bureau_vote.id"),
primary_key=True)
voix: Mapped[int] = mapped_column(Integer(), default=0) voix: Mapped[int] = mapped_column(Integer(), default=0)
liste: Mapped[Liste] = relationship(Liste, back_populates="resultats_par_bureau_vote") liste: Mapped[ListeEuropeennes2024] = relationship(ListeEuropeennes2024, back_populates="resultats_par_bureau_vote")
resultats_bureau_vote: Mapped[ResultatsBureauVote] = relationship(ResultatsBureauVote, back_populates="voix_listes") resultats_bureau_vote: Mapped[ResultatsBureauVoteEuropeennes2024] = relationship(ResultatsBureauVoteEuropeennes2024,
back_populates="voix_listes")

View File

@ -1,6 +1,6 @@
from typing import List from typing import List
from sqlalchemy import Float, ForeignKey, Integer, JSON, String from sqlalchemy import ForeignKey, Integer, JSON, String
from sqlalchemy.orm import mapped_column, Mapped, relationship from sqlalchemy.orm import mapped_column, Mapped, relationship
from nupes.models import Base from nupes.models import Base
@ -15,7 +15,7 @@ class Region(Base):
departements: Mapped[List["Departement"]] = relationship("Departement", back_populates="region") departements: Mapped[List["Departement"]] = relationship("Departement", back_populates="region")
resultats2024 = relationship("ResultatsRegion", back_populates="region") resultats_europeennes_2024 = relationship("ResultatsRegionEuropeennes2024", back_populates="region")
class Departement(Base): class Departement(Base):
@ -30,7 +30,7 @@ class Departement(Base):
circonscriptions: Mapped[List["Circonscription"]] = relationship("Circonscription", back_populates="departement") circonscriptions: Mapped[List["Circonscription"]] = relationship("Circonscription", back_populates="departement")
communes: Mapped[List["Commune"]] = relationship("Commune", back_populates="departement") communes: Mapped[List["Commune"]] = relationship("Commune", back_populates="departement")
resultats2024 = relationship("ResultatsDepartement", back_populates="departement") resultats_europeennes_2024 = relationship("ResultatsDepartementEuropeennes2024", back_populates="departement")
class Commune(Base): class Commune(Base):
@ -44,7 +44,7 @@ class Commune(Base):
departement: Mapped[Departement] = relationship(Departement, back_populates="communes") departement: Mapped[Departement] = relationship(Departement, back_populates="communes")
bureaux_vote: Mapped[List["BureauVote"]] = relationship("BureauVote", back_populates="commune") bureaux_vote: Mapped[List["BureauVote"]] = relationship("BureauVote", back_populates="commune")
resultats2024 = relationship("ResultatsCommune", back_populates="commune") resultats_europeennes_2024 = relationship("ResultatsCommuneEuropeennes2024", back_populates="commune")
class Circonscription(Base): class Circonscription(Base):
@ -58,7 +58,8 @@ class Circonscription(Base):
departement: Mapped[Departement] = relationship(Departement, back_populates="circonscriptions") departement: Mapped[Departement] = relationship(Departement, back_populates="circonscriptions")
bureaux_vote: Mapped[List["BureauVote"]] = relationship("BureauVote", back_populates="circonscription") bureaux_vote: Mapped[List["BureauVote"]] = relationship("BureauVote", back_populates="circonscription")
resultats2024 = relationship("ResultatsCirconscription", back_populates="circonscription") resultats_europeennes_2024 = relationship("ResultatsCirconscriptionEuropeennes2024",
back_populates="circonscription")
class BureauVote(Base): class BureauVote(Base):
@ -75,4 +76,4 @@ class BureauVote(Base):
commune: Mapped[Commune] = relationship(Commune, back_populates="bureaux_vote") commune: Mapped[Commune] = relationship(Commune, back_populates="bureaux_vote")
circonscription: Mapped[Circonscription] = relationship(Circonscription, back_populates="bureaux_vote") circonscription: Mapped[Circonscription] = relationship(Circonscription, back_populates="bureaux_vote")
resultats2024 = relationship("ResultatsBureauVote", back_populates="bureau_vote") resultats_europeennes_2024 = relationship("ResultatsBureauVoteEuropeennes2024", back_populates="bureau_vote")

View File

@ -6,16 +6,14 @@ from sqlalchemy.orm import Session
from tqdm import tqdm from tqdm import tqdm
from nupes.models.geographie import Region, Departement, Commune, Circonscription, BureauVote from nupes.models.geographie import Region, Departement, Commune, Circonscription, BureauVote
from nupes.models.europeennes2024 import Bloc, Nuance, Liste, \ from nupes.models.europeennes2024 import *
ResultatsFrance, ResultatsRegion, ResultatsDepartement, ResultatsCommune, \
ResultatsCirconscription, ResultatsBureauVote
DATA_DIR = Path(__file__).parent.parent.parent / 'data' DATA_DIR = Path(__file__).parent.parent.parent / 'data'
def exporter_listes(engine: Engine, verbose: bool = False) -> None: def exporter_listes(engine: Engine, verbose: bool = False) -> None:
with Session(engine) as session: with Session(engine) as session:
blocs = session.execute(select(Bloc)).scalars().all() blocs = session.execute(select(BlocEuropeennes2024)).scalars().all()
blocs_json = [] blocs_json = []
for bloc in blocs: for bloc in blocs:
@ -29,7 +27,7 @@ def exporter_listes(engine: Engine, verbose: bool = False) -> None:
with file.open('w') as f: with file.open('w') as f:
json.dump(blocs_json, f) json.dump(blocs_json, f)
nuances = session.execute(select(Nuance)).scalars().all() nuances = session.execute(select(NuanceEuropeennes2024)).scalars().all()
nuances_json = [] nuances_json = []
for nuance in nuances: for nuance in nuances:
@ -43,7 +41,7 @@ def exporter_listes(engine: Engine, verbose: bool = False) -> None:
with file.open('w') as f: with file.open('w') as f:
json.dump(nuances_json, f) json.dump(nuances_json, f)
listes = session.execute(select(Liste)).scalars().all() listes = session.execute(select(ListeEuropeennes2024)).scalars().all()
listes_json = [] listes_json = []
for liste in listes: for liste in listes:
@ -67,9 +65,9 @@ def exporter_listes(engine: Engine, verbose: bool = False) -> None:
def exporter_resultats_france(engine: Engine, verbose: bool = False) -> None: def exporter_resultats_france(engine: Engine, verbose: bool = False) -> None:
with Session(engine) as session: with Session(engine) as session:
resultats_france = session.execute(select(ResultatsFrance)).scalar_one_or_none() resultats_france = session.execute(select(ResultatsFranceEuropeennes2024)).scalar_one_or_none()
if not resultats_france: if not resultats_france:
resultats_france = ResultatsFrance() resultats_france = ResultatsFranceEuropeennes2024()
session.add(resultats_france) session.add(resultats_france)
resultats_dict = { resultats_dict = {
@ -117,11 +115,12 @@ def exporter_resultats_regions(engine: Engine, verbose: bool = False) -> None:
.scalars().all()]} .scalars().all()]}
regions_json.append(region_json) regions_json.append(region_json)
resultats_region = session.execute(select(ResultatsRegion).filter_by(region_id=region.code_insee)) \ resultats_region = session.execute(select(ResultatsRegionEuropeennes2024)
.scalar_one_or_none() .filter_by(region_id=region.code_insee)).scalar_one_or_none()
if not resultats_region: if not resultats_region:
resultats_france = session.execute(select(ResultatsFrance)).scalar_one() resultats_france = session.execute(select(ResultatsFranceEuropeennes2024)).scalar_one()
resultats_region = ResultatsRegion(region_id=region.code_insee, resultats_france_id=resultats_france.id) resultats_region = ResultatsRegionEuropeennes2024(region_id=region.code_insee,
resultats_france_id=resultats_france.id)
session.add(resultats_region) session.add(resultats_region)
resultats_dict = { resultats_dict = {
@ -171,12 +170,13 @@ def exporter_resultats_departements(engine: Engine, verbose: bool = False) -> No
departements_json.append(departement_json) departements_json.append(departement_json)
resultats_departement = session.execute( resultats_departement = session.execute(
select(ResultatsDepartement).filter_by(dpt_id=departement.code_insee)).scalar_one_or_none() select(ResultatsDepartementEuropeennes2024)
.filter_by(dpt_id=departement.code_insee)).scalar_one_or_none()
if not resultats_departement: if not resultats_departement:
resultats_region = session.execute(select(ResultatsRegion) resultats_region = session.execute(select(ResultatsRegionEuropeennes2024)
.filter_by(region_id=departement.region_code)).scalar_one() .filter_by(region_id=departement.region_code)).scalar_one()
resultats_departement = ResultatsDepartement(dpt_id=departement.code_insee, resultats_departement = ResultatsDepartementEuropeennes2024(dpt_id=departement.code_insee,
resultats_region_id=resultats_region.id) resultats_region_id=resultats_region.id)
session.add(resultats_departement) session.add(resultats_departement)
resultats_dict = { resultats_dict = {
@ -225,12 +225,14 @@ def exporter_resultats_circonscriptions(engine: Engine, verbose: bool = False) -
circonscriptions_json.append(circonscription_json) circonscriptions_json.append(circonscription_json)
resultats_circonscription = session.execute( resultats_circonscription = session.execute(
select(ResultatsCirconscription).filter_by(circo_id=circonscription.id)).scalar_one_or_none() select(ResultatsCirconscriptionEuropeennes2024)
.filter_by(circo_id=circonscription.id)).scalar_one_or_none()
if not resultats_circonscription: if not resultats_circonscription:
resultats_departement = session.execute(select(ResultatsDepartement) resultats_departement = session.execute(select(ResultatsDepartementEuropeennes2024)
.filter_by(dpt_id=circonscription.departement_code)).scalar_one() .filter_by(dpt_id=circonscription.departement_code)) \
resultats_circonscription = ResultatsCirconscription(circo_id=circonscription.id, .scalar_one()
resultats_departement_id=resultats_departement.id) resultats_circonscription = ResultatsCirconscriptionEuropeennes2024(
circo_id=circonscription.id, resultats_departement_id=resultats_departement.id)
session.add(resultats_circonscription) session.add(resultats_circonscription)
resultats_dict = { resultats_dict = {
@ -280,12 +282,12 @@ def exporter_resultats_communes(engine: Engine, verbose: bool = False) -> None:
communes_json.append(commune_json) communes_json.append(commune_json)
resultats_commune = session.execute( resultats_commune = session.execute(
select(ResultatsCommune).filter_by(commune_id=commune.code_insee)).scalar_one_or_none() select(ResultatsCommuneEuropeennes2024).filter_by(commune_id=commune.code_insee)).scalar_one_or_none()
if not resultats_commune: if not resultats_commune:
resultats_departement = session.execute(select(ResultatsDepartement) resultats_departement = session.execute(select(ResultatsDepartementEuropeennes2024)
.filter_by(dpt_id=commune.departement_code)).scalar_one() .filter_by(dpt_id=commune.departement_code)).scalar_one()
resultats_commune = ResultatsCommune(commune_id=commune.code_insee, resultats_commune = ResultatsCommuneEuropeennes2024(commune_id=commune.code_insee,
resultats_dpt_id=resultats_departement.id) resultats_dpt_id=resultats_departement.id)
session.add(resultats_commune) session.add(resultats_commune)
resultats_dict = { resultats_dict = {
@ -335,12 +337,12 @@ def exporter_resultats_bureaux_vote(engine: Engine, verbose: bool = False) -> No
bureaux_vote_json.append(bureau_vote_json) bureaux_vote_json.append(bureau_vote_json)
resultats_bureau_vote = session.execute( resultats_bureau_vote = session.execute(
select(ResultatsBureauVote).filter_by(bv_id=bureau_vote.id)).scalar_one_or_none() select(ResultatsBureauVoteEuropeennes2024).filter_by(bv_id=bureau_vote.id)).scalar_one_or_none()
if not resultats_bureau_vote: if not resultats_bureau_vote:
resultats_commune = session.execute(select(ResultatsCommune) resultats_commune = session.execute(select(ResultatsCommuneEuropeennes2024)
.filter_by(commune_id=bureau_vote.commune_code)).scalar_one() .filter_by(commune_id=bureau_vote.commune_code)).scalar_one()
resultats_bureau_vote = ResultatsBureauVote(bv_id=bureau_vote.id, resultats_bureau_vote = ResultatsBureauVoteEuropeennes2024(bv_id=bureau_vote.id,
resultats_commune_id=resultats_commune.id) resultats_commune_id=resultats_commune.id)
session.add(resultats_bureau_vote) session.add(resultats_bureau_vote)
resultats_dict = { resultats_dict = {

View File

@ -5,7 +5,8 @@ from sqlalchemy import Engine, select
from sqlalchemy.orm import Session from sqlalchemy.orm import Session
from nupes.cache import get_file from nupes.cache import get_file
from nupes.models.europeennes2024 import Bloc, Nuance, Liste, Candidat from nupes.models.europeennes2024 import BlocEuropeennes2024, NuanceEuropeennes2024, ListeEuropeennes2024, \
CandidatEuropeennes2024
def creer_blocs(engine: Engine, verbose: bool = False) -> None: def creer_blocs(engine: Engine, verbose: bool = False) -> None:
@ -13,17 +14,17 @@ def creer_blocs(engine: Engine, verbose: bool = False) -> None:
{"id": 1, "nom": "Gauche", "couleur": "#BB1840"}, {"id": 1, "nom": "Gauche", "couleur": "#BB1840"},
{"id": 2, "nom": "Droite libérale", "couleur": "#FFEB00"}, {"id": 2, "nom": "Droite libérale", "couleur": "#FFEB00"},
{"id": 3, "nom": "Droite conservatrice", "couleur": "#0066CC"}, {"id": 3, "nom": "Droite conservatrice", "couleur": "#0066CC"},
{"id": 4, "nom": "Extrême droite", "couleur": "#0D378A"}, {"id": 4, "nom": "Extrême droite", "couleur": "#404040"},
{"id": 5, "nom": "Autres", "couleur": "#DCBFA3"} {"id": 5, "nom": "Autres", "couleur": "#DCBFA3"}
] ]
with Session(engine) as session: with Session(engine) as session:
for bloc_dict in blocs: for bloc_dict in blocs:
if bloc := session.execute(select(Bloc).filter_by(id=bloc_dict["id"])).scalar_one_or_none(): if bloc := session.execute(select(BlocEuropeennes2024).filter_by(id=bloc_dict["id"])).scalar_one_or_none():
bloc.nom = bloc_dict["nom"] bloc.nom = bloc_dict["nom"]
bloc.couleur = bloc_dict["couleur"] bloc.couleur = bloc_dict["couleur"]
else: else:
session.add(Bloc(**bloc_dict)) session.add(BlocEuropeennes2024(**bloc_dict))
session.commit() session.commit()
@ -48,11 +49,12 @@ def creer_nuances(engine: Engine, verbose: bool = False) -> None:
with Session(engine) as session: with Session(engine) as session:
for nuance_dict in nuances: for nuance_dict in nuances:
if nuance := session.execute(select(Nuance).filter_by(code=nuance_dict["code"])).scalar_one_or_none(): if nuance := session.execute(select(NuanceEuropeennes2024)
.filter_by(code=nuance_dict["code"])).scalar_one_or_none():
nuance.nom = nuance_dict["nom"] nuance.nom = nuance_dict["nom"]
nuance.couleur = nuance_dict["couleur"] nuance.couleur = nuance_dict["couleur"]
else: else:
session.add(Nuance(**nuance_dict)) session.add(NuanceEuropeennes2024(**nuance_dict))
session.commit() session.commit()
@ -113,14 +115,15 @@ def importer_listes(engine: Engine, verbose: bool = False) -> None:
with Session(engine) as session: with Session(engine) as session:
for liste_dict in listes: for liste_dict in listes:
if liste := session.execute(select(Liste).filter_by(numero=liste_dict["numero"])).scalar_one_or_none(): if liste := session.execute(select(ListeEuropeennes2024)
.filter_by(numero=liste_dict["numero"])).scalar_one_or_none():
liste.nom = liste_dict["nom"] liste.nom = liste_dict["nom"]
liste.nuance_id = liste_dict["nuance_id"] liste.nuance_id = liste_dict["nuance_id"]
liste.bloc_id = liste_dict["bloc_id"] liste.bloc_id = liste_dict["bloc_id"]
else: else:
liste = Liste(numero=liste_dict['numero'], nom=liste_dict['nom'], liste = ListeEuropeennes2024(numero=liste_dict['numero'], nom=liste_dict['nom'],
nom_majuscules=liste_dict['nom'].upper(), nuance_id=liste_dict['nuance_id'], nom_majuscules=liste_dict['nom'].upper(),
bloc_id=liste_dict['bloc_id']) nuance_id=liste_dict['nuance_id'], bloc_id=liste_dict['bloc_id'])
session.add(liste) session.add(liste)
session.commit() session.commit()
@ -136,29 +139,30 @@ def importer_candidats(engine: Engine, verbose: bool = False) -> None:
for line in reader: for line in reader:
line: dict[str, str] line: dict[str, str]
numero_panneau = line.get("Numéro de panneau") numero_panneau = line.get("Numéro de panneau")
liste = session.execute(select(Liste).filter_by(numero=numero_panneau)).scalar_one() liste = session.execute(select(ListeEuropeennes2024).filter_by(numero=numero_panneau)).scalar_one()
liste.nom_majuscules = line['Libellé de la liste'] liste.nom_majuscules = line['Libellé de la liste']
if candidat := session.execute(select(Candidat).filter_by(liste_id=liste.id, ordre=line['Ordre'])) \ if candidat := session.execute(select(CandidatEuropeennes2024)
.filter_by(liste_id=liste.id, ordre=line['Ordre'])) \
.scalar_one_or_none(): .scalar_one_or_none():
candidat.liste_id = liste.id candidat.liste_id = liste.id
candidat.nom = line['Nom sur le bulletin de vote'] candidat.nom = line['Nom sur le bulletin de vote']
candidat.prenom = line['Prénom sur le bulletin de vote'] candidat.prenom = line['Prénom sur le bulletin de vote']
candidat.sexe = Candidat.Genre(line['Sexe']) candidat.sexe = CandidatEuropeennes2024.Genre(line['Sexe'])
candidat.date_naissance = datetime.datetime.strptime(line['Date de naissance'], "%d/%m/%Y").date() candidat.date_naissance = datetime.datetime.strptime(line['Date de naissance'], "%d/%m/%Y").date()
candidat.profession = line['Profession'] candidat.profession = line['Profession']
candidat.code_personnalite = Candidat.Personnalite(line['Code personnalité']) candidat.code_personnalite = CandidatEuropeennes2024.Personnalite(line['Code personnalité'])
candidat.sortant = line['Sortant'] == "OUI" candidat.sortant = line['Sortant'] == "OUI"
else: else:
candidat = Candidat( candidat = CandidatEuropeennes2024(
liste_id=liste.id, liste_id=liste.id,
ordre=int(line['Ordre']), ordre=int(line['Ordre']),
nom=line['Nom sur le bulletin de vote'], nom=line['Nom sur le bulletin de vote'],
prenom=line['Prénom sur le bulletin de vote'], prenom=line['Prénom sur le bulletin de vote'],
sexe=Candidat.Genre(line['Sexe']).name, sexe=CandidatEuropeennes2024.Genre(line['Sexe']).name,
date_naissance=datetime.datetime.strptime(line['Date de naissance'], "%d/%m/%Y").date(), date_naissance=datetime.datetime.strptime(line['Date de naissance'], "%d/%m/%Y").date(),
profession=line['Profession'], profession=line['Profession'],
code_personnalite=Candidat.Personnalite(line['Code personnalité']).name, code_personnalite=CandidatEuropeennes2024.Personnalite(line['Code personnalité']).name,
sortant=line['Sortant'] == "OUI", sortant=line['Sortant'] == "OUI",
) )
session.add(candidat) session.add(candidat)

View File

@ -1,5 +1,4 @@
import json import json
from datetime import datetime
from pathlib import Path from pathlib import Path
import requests import requests

View File

@ -6,10 +6,7 @@ from tqdm import tqdm
from nupes.cache import get_file from nupes.cache import get_file
from nupes.models import BureauVote, Departement from nupes.models import BureauVote, Departement
from nupes.models.europeennes2024 import ResultatsBureauVote, Liste, ResultatsCommune, \ from nupes.models.europeennes2024 import *
ResultatsDepartement, ResultatsRegion, ResultatsFrance, \
VoixListeBureauVote, VoixListeCommune, VoixListeDepartement, VoixListeRegion, VoixListeFrance, \
ResultatsCirconscription, VoixListeCirconscription
def importer_resultats_bv(engine: Engine, verbose: bool = False) -> None: def importer_resultats_bv(engine: Engine, verbose: bool = False) -> None:
@ -40,47 +37,52 @@ def importer_resultats_bv(engine: Engine, verbose: bool = False) -> None:
print(f"Bureau de vote {com_code}_{bv_code} non trouvé") print(f"Bureau de vote {com_code}_{bv_code} non trouvé")
continue continue
resultats_bv = session.execute(select(ResultatsBureauVote).filter_by(bv_id=bv_id)).scalar_one_or_none() resultats_bv = session.execute(select(ResultatsBureauVoteEuropeennes2024)
.filter_by(bv_id=bv_id)).scalar_one_or_none()
if not resultats_bv: if not resultats_bv:
resultats_commune = session.execute(select(ResultatsCommune).filter_by(commune_id=com_code)) \ resultats_commune = session.execute(select(ResultatsCommuneEuropeennes2024)
.scalar_one_or_none() .filter_by(commune_id=com_code)).scalar_one_or_none()
if not resultats_commune: if not resultats_commune:
resultats_dpt = session.execute(select(ResultatsDepartement) resultats_dpt = session.execute(select(ResultatsDepartementEuropeennes2024)
.filter_by(dpt_id=row['Code département'])) \ .filter_by(dpt_id=row['Code département'])) \
.scalar_one_or_none() .scalar_one_or_none()
if not resultats_dpt: if not resultats_dpt:
dpt = session.execute(select(Departement) dpt = session.execute(select(Departement)
.filter_by(code_insee=f"{row['Code département'].zfill(2)}")) \ .filter_by(code_insee=f"{row['Code département'].zfill(2)}")) \
.scalar_one() .scalar_one()
resultats_reg = session.execute(select(ResultatsRegion) resultats_reg = session.execute(select(ResultatsRegionEuropeennes2024)
.filter_by(region_id=dpt.region_code)) \ .filter_by(region_id=dpt.region_code)).scalar_one_or_none()
.scalar_one_or_none()
if not resultats_reg: if not resultats_reg:
resultats_france = session.execute(select(ResultatsFrance)).scalar_one_or_none() resultats_france = session.execute(select(ResultatsFranceEuropeennes2024)) \
.scalar_one_or_none()
if not resultats_france: if not resultats_france:
session.add(ResultatsFrance()) session.add(ResultatsFranceEuropeennes2024())
resultats_france = session.execute(select(ResultatsFrance)).scalar_one() resultats_france = session.execute(select(ResultatsFranceEuropeennes2024)) \
.scalar_one()
resultats_reg = ResultatsRegion(region_id=str(dpt.region_code), resultats_reg = ResultatsRegionEuropeennes2024(region_id=str(dpt.region_code),
resultats_france_id=resultats_france.id) resultats_france_id=resultats_france.id)
session.add(resultats_reg) session.add(resultats_reg)
resultats_reg = session.execute(select(ResultatsRegion) resultats_reg = session.execute(select(ResultatsRegionEuropeennes2024)
.filter_by(region_id=dpt.region_code)).scalar_one() .filter_by(region_id=dpt.region_code)).scalar_one()
resultats_dpt = ResultatsDepartement(dpt_id=row['Code département'], resultats_dpt = ResultatsDepartementEuropeennes2024(dpt_id=row['Code département'],
resultats_region_id=resultats_reg.id) resultats_region_id=resultats_reg.id)
session.add(resultats_dpt) session.add(resultats_dpt)
resultats_dpt = session.execute(select(ResultatsDepartement) resultats_dpt = session.execute(select(ResultatsDepartementEuropeennes2024)
.filter_by(dpt_id=row['Code département'])).scalar_one() .filter_by(dpt_id=row['Code département'])).scalar_one()
resultats_commune = ResultatsCommune(commune_id=com_code, resultats_dpt_id=resultats_dpt.id) resultats_commune = ResultatsCommuneEuropeennes2024(commune_id=com_code,
resultats_dpt_id=resultats_dpt.id)
session.add(resultats_commune) session.add(resultats_commune)
resultats_commune = session.execute(select(ResultatsCommune).filter_by(commune_id=com_code)) \ resultats_commune = session.execute(select(ResultatsCommuneEuropeennes2024)
.scalar_one() .filter_by(commune_id=com_code)).scalar_one()
resultats_bv = ResultatsBureauVote(bv_id=bv_id, resultats_commune_id=resultats_commune.id) resultats_bv = ResultatsBureauVoteEuropeennes2024(bv_id=bv_id,
resultats_commune_id=resultats_commune.id)
session.add(resultats_bv) session.add(resultats_bv)
resultats_bv = session.execute(select(ResultatsBureauVote).filter_by(bv_id=bv_id)).scalar_one() resultats_bv = session.execute(select(ResultatsBureauVoteEuropeennes2024)
.filter_by(bv_id=bv_id)).scalar_one()
resultats_bv.inscrits = int(row['Inscrits']) resultats_bv.inscrits = int(row['Inscrits'])
resultats_bv.votants = int(row['Votants']) resultats_bv.votants = int(row['Votants'])
@ -89,13 +91,14 @@ def importer_resultats_bv(engine: Engine, verbose: bool = False) -> None:
resultats_bv.blancs = int(row['Blancs']) resultats_bv.blancs = int(row['Blancs'])
resultats_bv.nuls = int(row['Nuls']) resultats_bv.nuls = int(row['Nuls'])
for liste in session.execute(select(Liste)).scalars().all(): for liste in session.execute(select(ListeEuropeennes2024)).scalars().all():
voix_liste_bv = session.execute(select(VoixListeBureauVote) voix_liste_bv = session.execute(select(VoixListeBureauVoteEuropeennes2024)
.filter_by(resultats_bureau_vote_id=resultats_bv.id, .filter_by(resultats_bureau_vote_id=resultats_bv.id,
liste_id=liste.id)) \ liste_id=liste.id)) \
.scalar_one_or_none() .scalar_one_or_none()
if not voix_liste_bv: if not voix_liste_bv:
voix_liste_bv = VoixListeBureauVote(resultats_bureau_vote_id=resultats_bv.id, liste_id=liste.id) voix_liste_bv = VoixListeBureauVoteEuropeennes2024(resultats_bureau_vote_id=resultats_bv.id,
liste_id=liste.id)
session.add(voix_liste_bv) session.add(voix_liste_bv)
voix_liste_bv.voix = int(row[f"Voix {liste.id}"]) voix_liste_bv.voix = int(row[f"Voix {liste.id}"])
@ -127,41 +130,40 @@ def importer_resultats_commune(engine: Engine, verbose: bool = False) -> None:
# 3 royaumes à Wallis-et-Futuna, mais un seul résultat de commune # 3 royaumes à Wallis-et-Futuna, mais un seul résultat de commune
com_code = "98611" com_code = "98611"
resultats_commune = session.execute(select(ResultatsCommune).filter_by(commune_id=com_code)) \ resultats_commune = session.execute(select(ResultatsCommuneEuropeennes2024)
.scalar_one_or_none() .filter_by(commune_id=com_code)).scalar_one_or_none()
if not resultats_commune: if not resultats_commune:
resultats_dpt = session.execute(select(ResultatsDepartement) resultats_dpt = session.execute(select(ResultatsDepartementEuropeennes2024)
.filter_by(dpt_id=dpt_code)) \ .filter_by(dpt_id=dpt_code)).scalar_one_or_none()
.scalar_one_or_none()
if not resultats_dpt: if not resultats_dpt:
dpt = session.execute(select(Departement) dpt = session.execute(select(Departement)
.filter_by(code_insee=f"{dpt_code.zfill(2)}")) \ .filter_by(code_insee=f"{dpt_code.zfill(2)}")).scalar_one()
.scalar_one() resultats_reg = session.execute(select(ResultatsRegionEuropeennes2024)
resultats_reg = session.execute(select(ResultatsRegion) .filter_by(region_id=dpt.region_code)).scalar_one_or_none()
.filter_by(region_id=dpt.region_code)) \
.scalar_one_or_none()
if not resultats_reg: if not resultats_reg:
resultats_france = session.execute(select(ResultatsFrance)).scalar_one_or_none() resultats_france = session.execute(select(ResultatsFranceEuropeennes2024)) \
.scalar_one_or_none()
if not resultats_france: if not resultats_france:
session.add(ResultatsFrance()) session.add(ResultatsFranceEuropeennes2024())
resultats_france = session.execute(select(ResultatsFrance)).scalar_one() resultats_france = session.execute(select(ResultatsFranceEuropeennes2024)).scalar_one()
resultats_reg = ResultatsRegion(region_id=str(dpt.region_code), resultats_reg = ResultatsRegionEuropeennes2024(region_id=str(dpt.region_code),
resultats_france_id=resultats_france.id) resultats_france_id=resultats_france.id)
session.add(resultats_reg) session.add(resultats_reg)
resultats_reg = session.execute(select(ResultatsRegion) resultats_reg = session.execute(select(ResultatsRegionEuropeennes2024)
.filter_by(region_id=dpt.region_code)).scalar_one() .filter_by(region_id=dpt.region_code)).scalar_one()
resultats_dpt = ResultatsDepartement(dpt_id=dpt_code, resultats_dpt = ResultatsDepartementEuropeennes2024(dpt_id=dpt_code,
resultats_region_id=resultats_reg.id) resultats_region_id=resultats_reg.id)
session.add(resultats_dpt) session.add(resultats_dpt)
resultats_dpt = session.execute(select(ResultatsDepartement) resultats_dpt = session.execute(select(ResultatsDepartementEuropeennes2024)
.filter_by(dpt_id=dpt_code)).scalar_one() .filter_by(dpt_id=dpt_code)).scalar_one()
resultats_commune = ResultatsCommune(commune_id=com_code, resultats_dpt_id=resultats_dpt.id) resultats_commune = ResultatsCommuneEuropeennes2024(commune_id=com_code,
resultats_dpt_id=resultats_dpt.id)
session.add(resultats_commune) session.add(resultats_commune)
resultats_commune = session.execute(select(ResultatsCommune).filter_by(commune_id=com_code)) \ resultats_commune = session.execute(select(ResultatsCommuneEuropeennes2024)
.scalar_one() .filter_by(commune_id=com_code)).scalar_one()
resultats_commune.inscrits = int(row['Inscrits']) resultats_commune.inscrits = int(row['Inscrits'])
resultats_commune.votants = int(row['Votants']) resultats_commune.votants = int(row['Votants'])
@ -170,13 +172,14 @@ def importer_resultats_commune(engine: Engine, verbose: bool = False) -> None:
resultats_commune.blancs = int(row['Blancs']) resultats_commune.blancs = int(row['Blancs'])
resultats_commune.nuls = int(row['Nuls']) resultats_commune.nuls = int(row['Nuls'])
for liste in session.execute(select(Liste)).scalars().all(): for liste in session.execute(select(ListeEuropeennes2024)).scalars().all():
voix_liste_com = session.execute(select(VoixListeCommune) voix_liste_com = session.execute(select(VoixListeCommuneEuropeennes2024)
.filter_by(resultats_commune_id=resultats_commune.id, .filter_by(resultats_commune_id=resultats_commune.id,
liste_id=liste.id)) \ liste_id=liste.id)) \
.scalar_one_or_none() .scalar_one_or_none()
if not voix_liste_com: if not voix_liste_com:
voix_liste_com = VoixListeCommune(resultats_commune_id=resultats_commune.id, liste_id=liste.id) voix_liste_com = VoixListeCommuneEuropeennes2024(resultats_commune_id=resultats_commune.id,
liste_id=liste.id)
session.add(voix_liste_com) session.add(voix_liste_com)
voix_liste_com.voix = int(row[f"Voix {liste.id}"]) voix_liste_com.voix = int(row[f"Voix {liste.id}"])
@ -200,40 +203,41 @@ def importer_resultats_circo(engine: Engine, verbose: bool = False) -> None:
circo_id = f"{dpt_code.zfill(2)}-{circo_code.zfill(2)}" circo_id = f"{dpt_code.zfill(2)}-{circo_code.zfill(2)}"
resultats_circo = session.execute(select(ResultatsCirconscription).filter_by(circo_id=circo_id)) \ resultats_circo = session.execute(select(ResultatsCirconscriptionEuropeennes2024)
.scalar_one_or_none() .filter_by(circo_id=circo_id)).scalar_one_or_none()
if not resultats_circo: if not resultats_circo:
resultats_dpt = session.execute(select(ResultatsDepartement).filter_by(dpt_id=dpt_code)) \ resultats_dpt = session.execute(select(ResultatsDepartementEuropeennes2024)
.scalar_one_or_none() .filter_by(dpt_id=dpt_code)).scalar_one_or_none()
if not resultats_dpt: if not resultats_dpt:
dpt = session.execute(select(Departement).filter_by(code_insee=f"{dpt_code.zfill(2)}")) \ dpt = session.execute(select(Departement).filter_by(code_insee=f"{dpt_code.zfill(2)}")) \
.scalar_one() .scalar_one()
resultats_reg = session.execute(select(ResultatsRegion) resultats_reg = session.execute(select(ResultatsRegionEuropeennes2024)
.filter_by(region_id=dpt.region_code)) \ .filter_by(region_id=dpt.region_code)) \
.scalar_one_or_none() .scalar_one_or_none()
if not resultats_reg: if not resultats_reg:
resultats_france = session.execute(select(ResultatsFrance)).scalar_one_or_none() resultats_france = session.execute(select(ResultatsFranceEuropeennes2024)) \
.scalar_one_or_none()
if not resultats_france: if not resultats_france:
session.add(ResultatsFrance()) session.add(ResultatsFranceEuropeennes2024())
resultats_france = session.execute(select(ResultatsFrance)).scalar_one() resultats_france = session.execute(select(ResultatsFranceEuropeennes2024)).scalar_one()
resultats_reg = ResultatsRegion(region_id=str(dpt.region_code), resultats_reg = ResultatsRegionEuropeennes2024(region_id=str(dpt.region_code),
resultats_france_id=resultats_france.id) resultats_france_id=resultats_france.id)
session.add(resultats_reg) session.add(resultats_reg)
resultats_reg = session.execute(select(ResultatsRegion) resultats_reg = session.execute(select(ResultatsRegionEuropeennes2024)
.filter_by(region_id=dpt.region_code)).scalar_one() .filter_by(region_id=dpt.region_code)).scalar_one()
resultats_dpt = ResultatsDepartement(dpt_id=dpt_code, resultats_dpt = ResultatsDepartementEuropeennes2024(dpt_id=dpt_code,
resultats_region_id=resultats_reg.id) resultats_region_id=resultats_reg.id)
session.add(resultats_dpt) session.add(resultats_dpt)
resultats_dpt = session.execute(select(ResultatsDepartement) resultats_dpt = session.execute(select(ResultatsDepartementEuropeennes2024)
.filter_by(dpt_id=dpt_code)).scalar_one() .filter_by(dpt_id=dpt_code)).scalar_one()
resultats_circo = ResultatsCirconscription(circo_id=circo_id, resultats_circo = ResultatsCirconscriptionEuropeennes2024(circo_id=circo_id,
resultats_departement_id=resultats_dpt.id) resultats_departement_id=resultats_dpt.id)
session.add(resultats_circo) session.add(resultats_circo)
resultats_circo = session.execute(select(ResultatsCirconscription).filter_by(circo_id=circo_id)) \ resultats_circo = session.execute(select(ResultatsCirconscriptionEuropeennes2024)
.scalar_one() .filter_by(circo_id=circo_id)).scalar_one()
resultats_circo.inscrits = int(row['Inscrits']) resultats_circo.inscrits = int(row['Inscrits'])
resultats_circo.votants = int(row['Votants']) resultats_circo.votants = int(row['Votants'])
@ -242,14 +246,13 @@ def importer_resultats_circo(engine: Engine, verbose: bool = False) -> None:
resultats_circo.blancs = int(row['Blancs']) resultats_circo.blancs = int(row['Blancs'])
resultats_circo.nuls = int(row['Nuls']) resultats_circo.nuls = int(row['Nuls'])
for liste in session.execute(select(Liste)).scalars().all(): for liste in session.execute(select(ListeEuropeennes2024)).scalars().all():
voix_liste_circo = session.execute(select(VoixListeCirconscription) voix_liste_circo = session.execute(select(VoixListeCirconscriptionEuropeennes2024)
.filter_by(resultats_circonscription_id=resultats_circo.id, .filter_by(resultats_circonscription_id=resultats_circo.id,
liste_id=liste.id)) \ liste_id=liste.id)).scalar_one_or_none()
.scalar_one_or_none()
if not voix_liste_circo: if not voix_liste_circo:
voix_liste_circo = VoixListeCirconscription(resultats_circonscription_id=resultats_circo.id, voix_liste_circo = VoixListeCirconscriptionEuropeennes2024(
liste_id=liste.id) resultats_circonscription_id=resultats_circo.id, liste_id=liste.id)
session.add(voix_liste_circo) session.add(voix_liste_circo)
voix_liste_circo.voix = int(row[f"Voix {liste.id}"]) voix_liste_circo.voix = int(row[f"Voix {liste.id}"])
@ -270,33 +273,32 @@ def importer_resultats_departement(engine: Engine, verbose: bool = False) -> Non
if dpt_code == "ZX": if dpt_code == "ZX":
dpt_code = "977" dpt_code = "977"
resultats_dpt = session.execute(select(ResultatsDepartement).filter_by(dpt_id=dpt_code)) \ resultats_dpt = session.execute(select(ResultatsDepartementEuropeennes2024)
.scalar_one_or_none() .filter_by(dpt_id=dpt_code)).scalar_one_or_none()
if not resultats_dpt: if not resultats_dpt:
print(f"Département {dpt_code} non trouvé")
dpt = session.execute(select(Departement) dpt = session.execute(select(Departement)
.filter_by(code_insee=f"{dpt_code.zfill(2)}")) \ .filter_by(code_insee=f"{dpt_code.zfill(2)}")) \
.scalar_one() .scalar_one()
resultats_reg = session.execute(select(ResultatsRegion) resultats_reg = session.execute(select(ResultatsRegionEuropeennes2024)
.filter_by(region_id=dpt.region_code)) \ .filter_by(region_id=dpt.region_code)) \
.scalar_one_or_none() .scalar_one_or_none()
if not resultats_reg: if not resultats_reg:
resultats_france = session.execute(select(ResultatsFrance)).scalar_one_or_none() resultats_france = session.execute(select(ResultatsFranceEuropeennes2024)).scalar_one_or_none()
if not resultats_france: if not resultats_france:
session.add(ResultatsFrance()) session.add(ResultatsFranceEuropeennes2024())
resultats_france = session.execute(select(ResultatsFrance)).scalar_one() resultats_france = session.execute(select(ResultatsFranceEuropeennes2024)).scalar_one()
resultats_reg = ResultatsRegion(region_id=str(dpt.region_code), resultats_reg = ResultatsRegionEuropeennes2024(region_id=str(dpt.region_code),
resultats_france_id=resultats_france.id) resultats_france_id=resultats_france.id)
session.add(resultats_reg) session.add(resultats_reg)
resultats_reg = session.execute(select(ResultatsRegion) resultats_reg = session.execute(select(ResultatsRegionEuropeennes2024)
.filter_by(region_id=dpt.region_code)).scalar_one() .filter_by(region_id=dpt.region_code)).scalar_one()
resultats_dpt = ResultatsDepartement(dpt_id=dpt_code, resultats_dpt = ResultatsDepartementEuropeennes2024(dpt_id=dpt_code,
resultats_region_id=resultats_reg.id) resultats_region_id=resultats_reg.id)
session.add(resultats_dpt) session.add(resultats_dpt)
resultats_dpt = session.execute(select(ResultatsDepartement).filter_by(dpt_id=dpt_code)) \ resultats_dpt = session.execute(select(ResultatsDepartementEuropeennes2024)
.scalar_one() .filter_by(dpt_id=dpt_code)).scalar_one()
resultats_dpt.inscrits = int(row['Inscrits']) resultats_dpt.inscrits = int(row['Inscrits'])
resultats_dpt.votants = int(row['Votants']) resultats_dpt.votants = int(row['Votants'])
@ -305,14 +307,14 @@ def importer_resultats_departement(engine: Engine, verbose: bool = False) -> Non
resultats_dpt.blancs = int(row['Blancs']) resultats_dpt.blancs = int(row['Blancs'])
resultats_dpt.nuls = int(row['Nuls']) resultats_dpt.nuls = int(row['Nuls'])
for liste in session.execute(select(Liste)).scalars().all(): for liste in session.execute(select(ListeEuropeennes2024)).scalars().all():
voix_liste_dpt = session.execute(select(VoixListeDepartement) voix_liste_dpt = session.execute(select(VoixListeDepartementEuropeennes2024)
.filter_by(resultats_departement_id=resultats_dpt.id, .filter_by(resultats_departement_id=resultats_dpt.id,
liste_id=liste.id)) \ liste_id=liste.id)) \
.scalar_one_or_none() .scalar_one_or_none()
if not voix_liste_dpt: if not voix_liste_dpt:
voix_liste_dpt = VoixListeDepartement(resultats_departement_id=resultats_dpt.id, voix_liste_dpt = VoixListeDepartementEuropeennes2024(resultats_departement_id=resultats_dpt.id,
liste_id=liste.id) liste_id=liste.id)
session.add(voix_liste_dpt) session.add(voix_liste_dpt)
voix_liste_dpt.voix = int(row[f"Voix {liste.id}"]) voix_liste_dpt.voix = int(row[f"Voix {liste.id}"])
@ -330,20 +332,20 @@ def importer_resultats_region(engine: Engine, verbose: bool = False) -> None:
for row in tqdm(reader, desc="Région", disable=not verbose): for row in tqdm(reader, desc="Région", disable=not verbose):
reg_code = row['Code région'] reg_code = row['Code région']
resultats_reg = session.execute(select(ResultatsRegion).filter_by(region_id=reg_code)) \ resultats_reg = session.execute(select(ResultatsRegionEuropeennes2024).filter_by(region_id=reg_code)) \
.scalar_one_or_none() .scalar_one_or_none()
if not resultats_reg: if not resultats_reg:
resultats_france = session.execute(select(ResultatsFrance)).scalar_one_or_none() resultats_france = session.execute(select(ResultatsFranceEuropeennes2024)).scalar_one_or_none()
if not resultats_france: if not resultats_france:
session.add(ResultatsFrance()) session.add(ResultatsFranceEuropeennes2024())
resultats_france = session.execute(select(ResultatsFrance)).scalar_one() resultats_france = session.execute(select(ResultatsFranceEuropeennes2024)).scalar_one()
resultats_reg = ResultatsRegion(region_id=reg_code, resultats_reg = ResultatsRegionEuropeennes2024(region_id=reg_code,
resultats_france_id=resultats_france.id) resultats_france_id=resultats_france.id)
session.add(resultats_reg) session.add(resultats_reg)
session.commit() session.commit()
resultats_reg = session.execute(select(ResultatsRegion).filter_by(region_id=reg_code)) \ resultats_reg = session.execute(select(ResultatsRegionEuropeennes2024)
.scalar_one() .filter_by(region_id=reg_code)).scalar_one()
resultats_reg.inscrits = int(row['Inscrits']) resultats_reg.inscrits = int(row['Inscrits'])
resultats_reg.votants = int(row['Votants']) resultats_reg.votants = int(row['Votants'])
@ -352,13 +354,14 @@ def importer_resultats_region(engine: Engine, verbose: bool = False) -> None:
resultats_reg.blancs = int(row['Blancs']) resultats_reg.blancs = int(row['Blancs'])
resultats_reg.nuls = int(row['Nuls']) resultats_reg.nuls = int(row['Nuls'])
for liste in session.execute(select(Liste)).scalars().all(): for liste in session.execute(select(ListeEuropeennes2024)).scalars().all():
voix_liste_reg = session.execute(select(VoixListeRegion) voix_liste_reg = session.execute(select(VoixListeRegionEuropeennes2024)
.filter_by(resultats_region_id=resultats_reg.id, .filter_by(resultats_region_id=resultats_reg.id,
liste_id=liste.id)) \ liste_id=liste.id)) \
.scalar_one_or_none() .scalar_one_or_none()
if not voix_liste_reg: if not voix_liste_reg:
voix_liste_reg = VoixListeRegion(resultats_region_id=resultats_reg.id, liste_id=liste.id) voix_liste_reg = VoixListeRegionEuropeennes2024(resultats_region_id=resultats_reg.id,
liste_id=liste.id)
session.add(voix_liste_reg) session.add(voix_liste_reg)
voix_liste_reg.voix = int(row[f"Voix {liste.id}"]) voix_liste_reg.voix = int(row[f"Voix {liste.id}"])
@ -368,7 +371,7 @@ def importer_resultats_region(engine: Engine, verbose: bool = False) -> None:
def calculer_resultats_france(engine: Engine, verbose: bool = False) -> None: def calculer_resultats_france(engine: Engine, verbose: bool = False) -> None:
with Session(engine) as session: with Session(engine) as session:
resultats_france = session.execute(select(ResultatsFrance)).scalar_one() resultats_france = session.execute(select(ResultatsFranceEuropeennes2024)).scalar_one()
resultats_france.inscrits = 0 resultats_france.inscrits = 0
resultats_france.votants = 0 resultats_france.votants = 0
@ -378,10 +381,11 @@ def calculer_resultats_france(engine: Engine, verbose: bool = False) -> None:
resultats_france.nuls = 0 resultats_france.nuls = 0
for voix_liste_france in session.execute( for voix_liste_france in session.execute(
select(VoixListeFrance).filter_by(resultats_france_id=resultats_france.id)).scalars().all(): select(VoixListeFranceEuropeennes2024)
.filter_by(resultats_france_id=resultats_france.id)).scalars().all():
voix_liste_france.voix = 0 # Réinitialisation des voix voix_liste_france.voix = 0 # Réinitialisation des voix
for resultats_dpt in session.execute(select(ResultatsDepartement)).scalars().all(): for resultats_dpt in session.execute(select(ResultatsDepartementEuropeennes2024)).scalars().all():
resultats_france.inscrits += resultats_dpt.inscrits resultats_france.inscrits += resultats_dpt.inscrits
resultats_france.votants += resultats_dpt.votants resultats_france.votants += resultats_dpt.votants
resultats_france.abstentions += resultats_dpt.abstentions resultats_france.abstentions += resultats_dpt.abstentions
@ -389,16 +393,18 @@ def calculer_resultats_france(engine: Engine, verbose: bool = False) -> None:
resultats_france.blancs += resultats_dpt.blancs resultats_france.blancs += resultats_dpt.blancs
resultats_france.nuls += resultats_dpt.nuls resultats_france.nuls += resultats_dpt.nuls
for voix_liste_dpt in session.execute(select(VoixListeDepartement) for voix_liste_dpt in session.execute(select(VoixListeDepartementEuropeennes2024)
.filter_by(resultats_departement_id=resultats_dpt.id)) \ .filter_by(resultats_departement_id=resultats_dpt.id)) \
.scalars().all(): .scalars().all():
if voix_liste_france := session.execute( if voix_liste_france := session.execute(
select(VoixListeFrance).filter_by(resultats_france_id=resultats_france.id, select(VoixListeFranceEuropeennes2024)
liste_id=voix_liste_dpt.liste_id)).scalar_one_or_none(): .filter_by(resultats_france_id=resultats_france.id,
liste_id=voix_liste_dpt.liste_id)).scalar_one_or_none():
voix_liste_france.voix += voix_liste_dpt.voix voix_liste_france.voix += voix_liste_dpt.voix
else: else:
session.add(VoixListeFrance(resultats_france_id=resultats_france.id, session.add(VoixListeFranceEuropeennes2024(resultats_france_id=resultats_france.id,
liste_id=voix_liste_dpt.liste_id, voix=voix_liste_dpt.voix)) liste_id=voix_liste_dpt.liste_id,
voix=voix_liste_dpt.voix))
session.commit() session.commit()

View File

@ -6,8 +6,8 @@ from sqlalchemy.orm import Session
from tqdm import tqdm from tqdm import tqdm
from nupes.cache import get_file from nupes.cache import get_file
from nupes.models.europeennes2024 import ResultatsFrance, ResultatsRegion, ResultatsDepartement, ResultatsCommune, \ from nupes.models.europeennes2024 import ResultatsFranceEuropeennes2024, ResultatsRegionEuropeennes2024, ResultatsDepartementEuropeennes2024, ResultatsCommuneEuropeennes2024, \
VoixListeFrance, VoixListeRegion, VoixListeDepartement, VoixListeCommune, Liste VoixListeFranceEuropeennes2024, VoixListeRegionEuropeennes2024, VoixListeDepartementEuropeennes2024, VoixListeCommuneEuropeennes2024, ListeEuropeennes2024
from nupes.models.geographie import Region, Departement, Commune from nupes.models.geographie import Region, Departement, Commune
BASE_URL = "https://www.resultats-elections.interieur.gouv.fr/europeennes2024/ensemble_geographique" BASE_URL = "https://www.resultats-elections.interieur.gouv.fr/europeennes2024/ensemble_geographique"
@ -23,7 +23,7 @@ def importer_resultats_france(engine: Engine, verbose: bool = False) -> None:
return return
with Session(engine) as session: with Session(engine) as session:
if resultats_france := session.execute(select(ResultatsFrance)).scalar_one_or_none(): if resultats_france := session.execute(select(ResultatsFranceEuropeennes2024)).scalar_one_or_none():
resultats_france.inscrits = resultats["inscrits"] resultats_france.inscrits = resultats["inscrits"]
resultats_france.abstentions = resultats["abstentions"] resultats_france.abstentions = resultats["abstentions"]
resultats_france.votants = resultats["votants"] resultats_france.votants = resultats["votants"]
@ -31,7 +31,7 @@ def importer_resultats_france(engine: Engine, verbose: bool = False) -> None:
resultats_france.nuls = resultats["nuls"] resultats_france.nuls = resultats["nuls"]
resultats_france.exprimes = resultats["exprimes"] resultats_france.exprimes = resultats["exprimes"]
else: else:
resultats_france = ResultatsFrance( resultats_france = ResultatsFranceEuropeennes2024(
inscrits=resultats["inscrits"], inscrits=resultats["inscrits"],
abstentions=resultats["abstentions"], abstentions=resultats["abstentions"],
votants=resultats["votants"], votants=resultats["votants"],
@ -43,13 +43,13 @@ def importer_resultats_france(engine: Engine, verbose: bool = False) -> None:
for voix_liste in resultats["resultats_par_liste"]: for voix_liste in resultats["resultats_par_liste"]:
if voix_liste_france := session.execute( if voix_liste_france := session.execute(
select(VoixListeFrance).join(Liste).filter_by(nom_majuscules=voix_liste["nom"].upper()) select(VoixListeFranceEuropeennes2024).join(ListeEuropeennes2024).filter_by(nom_majuscules=voix_liste["nom"].upper())
).scalar_one_or_none(): ).scalar_one_or_none():
voix_liste_france.voix = voix_liste["voix"] voix_liste_france.voix = voix_liste["voix"]
else: else:
liste = session.execute(select(Liste).filter_by(nom_majuscules=voix_liste["nom"].upper())).scalar_one() liste = session.execute(select(ListeEuropeennes2024).filter_by(nom_majuscules=voix_liste["nom"].upper())).scalar_one()
voix_liste_france = VoixListeFrance(liste_id=liste.id, resultats_france_id=resultats_france.id, voix_liste_france = VoixListeFranceEuropeennes2024(liste_id=liste.id, resultats_france_id=resultats_france.id,
voix=voix_liste["voix"]) voix=voix_liste["voix"])
session.add(voix_liste_france) session.add(voix_liste_france)
session.commit() session.commit()
@ -76,7 +76,7 @@ def importer_resultats_regions(engine: Engine, verbose: bool = False) -> None:
if not resultats: if not resultats:
continue continue
if resultats_region := session.execute(select(ResultatsRegion).filter_by(region_id=reg_code)) \ if resultats_region := session.execute(select(ResultatsRegionEuropeennes2024).filter_by(region_id=reg_code)) \
.scalar_one_or_none(): .scalar_one_or_none():
resultats_region.inscrits = resultats["inscrits"] resultats_region.inscrits = resultats["inscrits"]
resultats_region.abstentions = resultats["abstentions"] resultats_region.abstentions = resultats["abstentions"]
@ -85,8 +85,8 @@ def importer_resultats_regions(engine: Engine, verbose: bool = False) -> None:
resultats_region.nuls = resultats["nuls"] resultats_region.nuls = resultats["nuls"]
resultats_region.exprimes = resultats["exprimes"] resultats_region.exprimes = resultats["exprimes"]
else: else:
resultats_france = session.execute(select(ResultatsFrance)).scalar_one() resultats_france = session.execute(select(ResultatsFranceEuropeennes2024)).scalar_one()
resultats_region = ResultatsRegion( resultats_region = ResultatsRegionEuropeennes2024(
region_id=reg_code, region_id=reg_code,
resultats_france_id=resultats_france.id, resultats_france_id=resultats_france.id,
inscrits=resultats["inscrits"], inscrits=resultats["inscrits"],
@ -100,14 +100,14 @@ def importer_resultats_regions(engine: Engine, verbose: bool = False) -> None:
for voix_liste in resultats["resultats_par_liste"]: for voix_liste in resultats["resultats_par_liste"]:
if voix_liste_region := session.execute( if voix_liste_region := session.execute(
select(VoixListeRegion).join(Liste).filter_by(nom_majuscules=voix_liste["nom"].upper()) select(VoixListeRegionEuropeennes2024).join(ListeEuropeennes2024).filter_by(nom_majuscules=voix_liste["nom"].upper())
).scalar_one_or_none(): ).scalar_one_or_none():
voix_liste_region.voix = voix_liste["voix"] voix_liste_region.voix = voix_liste["voix"]
else: else:
liste = session.execute(select(Liste).filter_by(nom_majuscules=voix_liste["nom"].upper())) \ liste = session.execute(select(ListeEuropeennes2024).filter_by(nom_majuscules=voix_liste["nom"].upper())) \
.scalar_one() .scalar_one()
voix_liste_region = VoixListeRegion(liste_id=liste.id, resultats_region_id=resultats_region.id, voix_liste_region = VoixListeRegionEuropeennes2024(liste_id=liste.id, resultats_region_id=resultats_region.id,
voix=voix_liste["voix"]) voix=voix_liste["voix"])
session.add(voix_liste_region) session.add(voix_liste_region)
session.commit() session.commit()
@ -143,7 +143,7 @@ def importer_resultats_departements(engine: Engine, verbose: bool = False) -> No
continue continue
if resultats_departement := session.execute( if resultats_departement := session.execute(
select(ResultatsDepartement).filter_by(dpt_id=dpt.code_insee)).scalar_one_or_none(): select(ResultatsDepartementEuropeennes2024).filter_by(dpt_id=dpt.code_insee)).scalar_one_or_none():
resultats_departement.inscrits = resultats["inscrits"] resultats_departement.inscrits = resultats["inscrits"]
resultats_departement.abstentions = resultats["abstentions"] resultats_departement.abstentions = resultats["abstentions"]
resultats_departement.votants = resultats["votants"] resultats_departement.votants = resultats["votants"]
@ -151,10 +151,10 @@ def importer_resultats_departements(engine: Engine, verbose: bool = False) -> No
resultats_departement.nuls = resultats["nuls"] resultats_departement.nuls = resultats["nuls"]
resultats_departement.exprimes = resultats["exprimes"] resultats_departement.exprimes = resultats["exprimes"]
else: else:
resultats_region = session.execute(select(ResultatsRegion).filter_by(region_id=dpt.region_code)) \ resultats_region = session.execute(select(ResultatsRegionEuropeennes2024).filter_by(region_id=dpt.region_code)) \
.scalar_one_or_none() .scalar_one_or_none()
resultats_departement = ResultatsDepartement( resultats_departement = ResultatsDepartementEuropeennes2024(
dpt_id=dpt.code_insee, dpt_id=dpt.code_insee,
resultats_region_id=resultats_region.id if resultats_region else None, resultats_region_id=resultats_region.id if resultats_region else None,
inscrits=resultats["inscrits"], inscrits=resultats["inscrits"],
@ -168,15 +168,15 @@ def importer_resultats_departements(engine: Engine, verbose: bool = False) -> No
for voix_liste in resultats["resultats_par_liste"]: for voix_liste in resultats["resultats_par_liste"]:
if voix_liste_departement := session.execute( if voix_liste_departement := session.execute(
select(VoixListeDepartement).join(Liste).filter_by(nom_majuscules=voix_liste["nom"].upper()) select(VoixListeDepartementEuropeennes2024).join(ListeEuropeennes2024).filter_by(nom_majuscules=voix_liste["nom"].upper())
).scalar_one_or_none(): ).scalar_one_or_none():
voix_liste_departement.voix = voix_liste["voix"] voix_liste_departement.voix = voix_liste["voix"]
else: else:
liste = session.execute(select(Liste).filter_by(nom_majuscules=voix_liste["nom"].upper())) \ liste = session.execute(select(ListeEuropeennes2024).filter_by(nom_majuscules=voix_liste["nom"].upper())) \
.scalar_one() .scalar_one()
voix_liste_departement = VoixListeDepartement(liste_id=liste.id, voix_liste_departement = VoixListeDepartementEuropeennes2024(liste_id=liste.id,
resultats_departement_id=resultats_departement.id, resultats_departement_id=resultats_departement.id,
voix=voix_liste["voix"]) voix=voix_liste["voix"])
session.add(voix_liste_departement) session.add(voix_liste_departement)
session.commit() session.commit()
@ -223,7 +223,7 @@ def importer_resultats_communes(engine: Engine, verbose: bool = False) -> None:
continue continue
if resultats_commune := session.execute( if resultats_commune := session.execute(
select(ResultatsCommune).filter_by(commune_id=com_code)).scalar_one_or_none(): select(ResultatsCommuneEuropeennes2024).filter_by(commune_id=com_code)).scalar_one_or_none():
resultats_commune.inscrits = resultats["inscrits"] resultats_commune.inscrits = resultats["inscrits"]
resultats_commune.abstentions = resultats["abstentions"] resultats_commune.abstentions = resultats["abstentions"]
resultats_commune.votants = resultats["votants"] resultats_commune.votants = resultats["votants"]
@ -231,9 +231,9 @@ def importer_resultats_communes(engine: Engine, verbose: bool = False) -> None:
resultats_commune.nuls = resultats["nuls"] resultats_commune.nuls = resultats["nuls"]
resultats_commune.exprimes = resultats["exprimes"] resultats_commune.exprimes = resultats["exprimes"]
else: else:
resultats_departement = session.execute(select(ResultatsDepartement).filter_by(dpt_id=dpt_code)) \ resultats_departement = session.execute(select(ResultatsDepartementEuropeennes2024).filter_by(dpt_id=dpt_code)) \
.scalar_one_or_none() .scalar_one_or_none()
resultats_commune = ResultatsCommune( resultats_commune = ResultatsCommuneEuropeennes2024(
commune_id=com_code, commune_id=com_code,
resultats_dpt_id=resultats_departement.id if resultats_departement else None, resultats_dpt_id=resultats_departement.id if resultats_departement else None,
inscrits=resultats["inscrits"], inscrits=resultats["inscrits"],
@ -247,14 +247,14 @@ def importer_resultats_communes(engine: Engine, verbose: bool = False) -> None:
for voix_liste in resultats["resultats_par_liste"]: for voix_liste in resultats["resultats_par_liste"]:
if voix_liste_commune := session.execute( if voix_liste_commune := session.execute(
select(VoixListeCommune).join(Liste).filter_by(nom_majuscules=voix_liste["nom"].upper()) select(VoixListeCommuneEuropeennes2024).join(ListeEuropeennes2024).filter_by(nom_majuscules=voix_liste["nom"].upper())
).scalar_one_or_none(): ).scalar_one_or_none():
voix_liste_commune.voix = voix_liste["voix"] voix_liste_commune.voix = voix_liste["voix"]
else: else:
liste = session.execute(select(Liste).filter_by(nom_majuscules=voix_liste["nom"].upper())) \ liste = session.execute(select(ListeEuropeennes2024).filter_by(nom_majuscules=voix_liste["nom"].upper())) \
.scalar_one() .scalar_one()
voix_liste_commune = VoixListeCommune(liste_id=liste.id, resultats_commune_id=resultats_commune.id, voix_liste_commune = VoixListeCommuneEuropeennes2024(liste_id=liste.id, resultats_commune_id=resultats_commune.id,
voix=voix_liste["voix"]) voix=voix_liste["voix"])
session.add(voix_liste_commune) session.add(voix_liste_commune)
session.commit() session.commit()