INNER CODE UNIT · Python
ust_end
lawve-ai/awesome-legal-skills · skills/ktzr-polskie-umowy-gospodarcze-adam-piotrowski/tools/legal-cite/legal_cite/core.py:172
ust_end = m.end() + nxt.start() if nxt else len(art_text)
return art_text[ust_start:ust_end].strip()
def extract_pl_article(text: str, art: str, ustep: str | None) -> str | None:
frag = _art_regex(art)
m = None
# Tekst jednolity zawiera fragmenty ustaw zmieniających z własnymi numerami
# artykułów. Dwa filtry łącznie:
# 1. Case-sensitive: nagłówki artykułów w PL aktach to „Art. N." (wielka A);
# odesłania w tekście to „art. N." (mała a) — np. „ustawy zmienianej w art. 8."
# 2. Cudzysłów: cytaty z ustaw zmieniających zapisywane jako „ Art. N." —
# sprawdzamy 120 znaków wstecz; jeśli poprzedza je „/"/stanowią → pomijamy.
for prefix in (rf'Art\.\s*{frag}\s*\.', rf'§\s*{frag}\s*\.'):
for candidate in re.finditer(prefix, text): # case-sensitive (brak IGNORECASE)
pre = text[max(0, candidate.start() - 120):candidate.start()]
if re.search(r'[„„"\']|stanowi[ąa][\s:„"\']', pre):
continue # wewnątrz cytatu z ustawy zmieniającej