INNER CODE UNIT · Python
_cut_ustep
lawve-ai/awesome-legal-skills · skills/ktzr-polskie-umowy-gospodarcze-adam-piotrowski/tools/legal-cite/legal_cite/core.py:165
def _cut_ustep(art_text: str, ustep: str) -> str | None:
# ustęp „N." LUB paragraf „§ N." (KC); granica = następna jednostka tej samej rangi
m = re.search(rf'(?:§\s*)?(?<!\d){re.escape(ustep)}\.\s', art_text)
if not m:
return None
ust_start = m.start()
nxt = re.search(r'(?:§\s*)?(?<!\d)\d+\.\s', art_text[m.end():])
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."