INNER CODE UNIT · Python
_fetch_pl
lawve-ai/awesome-legal-skills · skills/ktzr-polskie-umowy-gospodarcze-adam-piotrowski/tools/legal-cite/legal_cite/core.py:117
async def _fetch_pl(info: dict) -> str | None:
"""Pobiera AKTUALNY tekst aktu (tekst jednolity), nie pierwotny z dnia
ogłoszenia. api.sejm `/text.html` pod pozycją oryginału zwraca brzmienie
pierwotne (np. KC 1964 — „PRL", bez art. 385¹). Dlatego z metadanych bierzemy
najnowszy tekst jednolity z dostępnym HTML; oryginał = fallback."""
key = f"PL:{info['pub']}:{info['year']}:{info['pos']}"
if key in _cache:
return _cache[key]
base = "https://api.sejm.gov.pl/eli/acts"
async with httpx.AsyncClient(follow_redirects=True, timeout=25, headers=_HEADERS) as c:
positions: list[tuple] = []
try:
meta = (await c.get(f"{base}/{info['pub']}/{info['year']}/{info['pos']}")).json()
for ent in (meta.get("references") or {}).get("Inf. o tekście jednolitym", []):
parts = (ent.get("id") or "").split("/")
if len(parts) == 3:
positions.append(tuple(parts)) # (pub, year, pos) tekstu jednolitego
except (httpx.HTTPError, ValueError, KeyError):