fix: инициалы ФИО не теряли отчество

- get_short_fio/get_initials: 'Черник В.Н.' превращалось в 'Черник В.'
  (терялся инициал отчества) — добавлена функция _initial, которая
  сохраняет уже сокращённые инициалы ('В.Н.') как есть
This commit is contained in:
2026-08-03 17:40:04 +04:00
parent a16f5740cb
commit 1498e56579
+15 -4
View File
@@ -196,15 +196,26 @@ def _is_quoted(word: str) -> bool:
# ==================== ФОРМАТИРОВАНИЕ ФИО ====================
def _initial(word: str) -> str:
"""Инициал из слова: если уже с точкой — вернуть как есть,
иначе первая буква + точка. «В.Н.» → «В.Н.», «Владимир» → «В.»"""
w = word.strip()
if not w:
return ''
if w.endswith('.'):
return w
return w[0] + '.'
def get_short_fio(fio: str) -> str:
"""Фамилия И.О."""
if not fio:
return ""
parts = fio.split()
if len(parts) >= 2:
initials = parts[1][0] + "."
initials = _initial(parts[1])
if len(parts) >= 3:
initials += parts[2][0] + "."
initials += _initial(parts[2])
return parts[0] + " " + initials
return fio
@@ -215,8 +226,8 @@ def get_initials(fio: str) -> str:
return ""
parts = fio.split()
if len(parts) >= 2:
initials = parts[1][0] + "."
initials = _initial(parts[1])
if len(parts) >= 3:
initials += parts[2][0] + "."
initials += _initial(parts[2])
return initials + " " + parts[0]
return fio