""" Läser in motioner från JSON-filer (dokumentstatus-kuvert) till PostgreSQL. Används av sync_motions.py (update_folder) och kan köras direkt för att (om)ladda alla mappar i motioner/: python scripts/motions_to_postgres.py """ from pathlib import Path import json import logging import os import sys sys.path.insert(0, str(Path(__file__).resolve().parents[1])) import bootstrap # noqa: E402,F401 — sets cwd and sys.path to the project root from bs4 import BeautifulSoup from postgres_client import pg from scripts.documents_to_postgres import _parse_date, clean_speaker_name logging.basicConfig(level=logging.WARNING, format="%(asctime)s - %(levelname)s - %(message)s") # Rader kortare än så räknas som textlösa (inskannad PDF med stubb-HTML) MIN_TEXT_LEN = 200 def _as_list(v) -> list: """Riksdagens XML→JSON: ett barn blir dict, flera blir list, inget blir None.""" if v is None: return [] return v if isinstance(v, list) else [v] def _clean(v): """API:et serialiserar null som strängen 'None'.""" if v is None or v == "None": return None return v def html_to_text(html: str) -> str: """Extraherar ren text ur dokumentets html-fält (inleds med stort