INNER CODE UNIT · Python

extract_pl_article

lawve-ai/awesome-legal-skills · skills/ktzr-polskie-umowy-gospodarcze-adam-piotrowski/tools/legal-cite/legal_cite/core.py:176

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
            m = candidate
            break
        if m:
            break

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…