INNER CODE UNIT · Python

parse_citation

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

def parse_citation(raw: str) -> dict | None:
    """Parsuje cytat: 'art. N[a][¹] [ust./§ M] [pkt/lit. X] KOD' → {art, ustep, act}.
    Obsługuje sufiks literowy (36a), indeks górny (385¹/385[1]/385(1)) i § jako
    jednostkę redakcyjną (KC numeruje paragrafami)."""
    m = re.match(
        r'(?:art\.|§)\s*'
        r'(\d+[a-z]?(?:\s*(?:[¹²³⁴⁵⁶⁷⁸⁹]+|\[\d+\]|\(\d+\)|\^\d+))?)\s*'  # numer art. + opc. indeks
        r'(?:(?:ust\.|§)\s*(\d+\w?))?\s*'                                 # ustęp ALBO paragraf
        r'(?:(?:pkt|lit\.)\s*\S+\s*)?(.+)',                               # pkt/lit ignorowane; kod aktu
        raw.strip(), re.IGNORECASE,
    )
    if not m:
        return None
    return {
        "art": m.group(1).strip(),
        "ustep": m.group(2),
        "act": m.group(3).strip().rstrip('.').strip(),
    }

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…