SPB Git

Repository Public

Commit

seed : correspondance sondage à ±1 jour (fin la boucle purge/recréation EN-FR)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Simon-Pierre Boucher committed · Sep 1, 2026 parent 828a59f
1 changed file +9 −4 Browse files
modified backend/app/seed.py +9 −4
@@ -139,11 +139,16 @@ def seed_all(db: Session | None = None) -> dict:
139 pol, _ = get_or_create(db, Mo.Pollster, name=pollster) 139 pol, _ = get_or_create(db, Mo.Pollster, name=pollster)
140 first = grp.iloc[0] 140 first = grp.iloc[0]
141 ss = None if pd.isna(first["sample_size"]) else int(first["sample_size"]) 141 ss = None if pd.isna(first["sample_size"]) else int(first["sample_size"])
142− # correspondance par (maison, fin de terrain) SANS la taille : 142+ # correspondance par (maison, fin de terrain ±1 j) SANS la
143− # Wikipédia complète souvent n/MoE après coup — même sondage. 143+ # taille : Wikipédia complète n/MoE après coup, et les
144+ # agrégateurs EN/FR datent parfois le même sondage à ±1 jour.
145+ fe_d = date.fromisoformat(fe)
146+ from datetime import timedelta as _td
144 poll = (db.query(Mo.Poll) 147 poll = (db.query(Mo.Poll)
145− .filter_by(pollster_id=pol.id, 148+ .filter(Mo.Poll.pollster_id == pol.id,
146− field_end=date.fromisoformat(fe)).first()) 149+ Mo.Poll.field_end >= fe_d - _td(days=1),
150+ Mo.Poll.field_end <= fe_d + _td(days=1))
151+ .first())
147 if poll is None: 152 if poll is None:
148 poll = Mo.Poll( 153 poll = Mo.Poll(
149 election_id=el.id, pollster_id=pol.id, 154 election_id=el.id, pollster_id=pol.id,
150 155
Menu

Theme