45 lines
3.2 KiB
YAML
45 lines
3.2 KiB
YAML
# Периоды форм ББ/ОФР: подпись колонки или подзаголовок формы -> дата (конец периода). §11.3, §12 п. 4.
|
||
# Регулярки ищутся без учёта регистра. Относительные подписи применяются к подписи после normalize_caption.
|
||
max_text_length: 200 # длиннее — не дата (защита от backtracking)
|
||
years: {min: 1990, max: 2100} # одинокий год вне диапазона датой не считается
|
||
|
||
# Основа названия месяца -> номер (сопоставляется по началу слова)
|
||
months:
|
||
январ: 1
|
||
феврал: 2
|
||
март: 3
|
||
апрел: 4
|
||
ма: 5
|
||
июн: 6
|
||
июл: 7
|
||
август: 8
|
||
сентябр: 9
|
||
октябр: 10
|
||
ноябр: 11
|
||
декабр: 12
|
||
|
||
# Относительные подписи колонок (по порядку проверки)
|
||
relative:
|
||
- {kind: "relative:prev_prev_year_end", pattern: 'предшествующ\w*\s+предыдущ'}
|
||
- {kind: "relative:prev_year_end", pattern: 'декабр\w*\s+предыдущ'}
|
||
- {kind: "relative:prev_period", pattern: 'аналогичн\w*\s+период\w*\s+предыдущ'}
|
||
- {kind: "relative:current", pattern: 'отч[её]тн\w*\s+(дат|период)'}
|
||
|
||
# Абсолютные формы по приоритету (§11.3 п. 3). Именованные группы: d (день), m (месяц числом), mw (месяц словом),
|
||
# y (год, 2 или 4 цифры), q (номер квартала/полугодия словом, римской или арабской цифрой), n (число месяцев).
|
||
absolute:
|
||
- kind: range_end # «с 01.01.2025 по 30.09.2025»: конец диапазона
|
||
pattern: 'по\s*(?P<d>\d{1,2})[.\-/ ](?P<m>\d{1,2})[.\-/ ](?P<y>\d{4}|\d{2})'
|
||
- kind: day_month_year # «31 декабря 2025 г.», «на 30 сентября 2025 года»
|
||
pattern: '(?P<d>\d{1,2})\s+(?P<mw>[а-яё]{3,8})\s+(?P<y>\d{4}|\d{2})\s*(?:г\.?|r\.?|год\w*)?'
|
||
- kind: quarter # «I квартал 2026», «1-й кв. 2026», «первый квартал»
|
||
pattern: '(?P<q>I{1,3}V?|IV|\d|перв\w*|втор\w*|трет\w*|четв\w*)\s*-?\s*(?:й|ый|ого|го)?\s*кв\w*\.?\s*(?P<y>\d{4}|\d{2})\s*(?:г\.?|r\.?|год\w*)?'
|
||
- kind: half # «1 полугодие 2026», «первое полугодие», «1 п/г 2026»
|
||
pattern: '(?P<q>I{1,3}V?|IV|\d|перв\w*|втор\w*|трет\w*|четв\w*)\s*-?\s*(?:е|ое|го)?\s*(?:полугоди\w*|п/г)\.?\s*(?P<y>\d{4}|\d{2})\s*(?:г\.?|r\.?|год\w*)?'
|
||
- kind: months # «9 месяцев 2025», «9 мес. 2025»
|
||
pattern: '(?P<n>\d{1,2})\s*мес\w*\.?\s*(?P<y>\d{4}|\d{2})\s*(?:г\.?|r\.?|год\w*)?'
|
||
- kind: month_range # «январь - сентябрь 2025»: последний месяц
|
||
pattern: '[а-яё]{3,8}\s*[-–—]\s*(?P<mw>[а-яё]{3,8})\s*(?P<y>\d{4}|\d{2})\s*(?:г\.?|r\.?|год\w*)?'
|
||
- kind: year # «за 2025 г.», «2025 год», «2025г»
|
||
pattern: '(?:за\s*)?(?:отч[её]тный\s*)?(?P<y>\d{4})\s*(?:г\b|г\.|r\b|r\.|год)'
|