Commit Graph

4 Commits

Author SHA1 Message Date
a9d3f4d5cf Парсер: ФИО из трёх слов после предмета, порядок «Имя Отчество Фамилия»
В субботу у ПИЭ-41/42БО в название курса попадало «Денис»: правило разбиения
забирало в преподавателя только два последних слова, а здесь их три
(«Основы тестирования веб-приложений Денис Сергеевич Верховцев (Сигма)»).

- правило ФИО в конце строки теперь берёт 2–3 слова и использует нежадный
  префикс, поэтому первые слова предмета не «съедаются»;
- добавлена проверка, что это действительно человек: для трёх слов нужно
  отчество (-вич/-вна), для двух — «фамильное» окончание, иначе название
  вроде «Введение в Машинное Обучение» в преподаватели не уедет;
- ключ преподавателя собирается в обоих порядках («Верховцев Денис Сергеевич»
  и «Денис Сергеевич Верховцев») -> «Верховцев Д.С.»; организация вроде
  «ПравоТех» больше не теряется.

Проверено на живой таблице: предмет чистый, в списке преподавателей появился
«Верховцев Д.С.», подозрительных ФИО по всем группам нет. Тесты: 168.
2026-10-10 13:36:33 +03:00
d897601d88 Скорректирован сценарий запуска, исправление бага с предметом 2026-10-07 15:17:37 +03:00
419e65e960 Парсер: замечания отдельной строкой — уровня всей ячейки
В ячейке с несколькими занятиями (курсы по выбору) красная заметка,
занимающая строку(и) целиком, относится ко всем занятиям ячейки
(пара отменяется целиком) и раздаётся каждому занятию. Заметка,
написанная в одной строке с предметом/аудиторией, остаётся
привязанной к своему занятию. Многострочные standalone-заметки
сохраняют переводы строк.

Кейс: ПИЭ-13МО, понедельник, 5-я пара. Diff по 33 группам: затронуто
только поле note в multi-lesson ячейках; порядок «inline->ячейка».
2026-09-14 01:37:53 +03:00
9c9875579c Тесты и инфраструктура
- tests/: 104 теста — lessons (все форматы ячеек), xlsx (мержи/скрытые
  столбцы/красный текст/даты), parsing (группы/недели/индексы), API (TestClient,
  TTL/modified/stale-while-error, 404/400/502)
- xlsx_builder.py: генерация xlsx в памяти для тестов без openpyxl
- docker-compose: healthz-хелскчеки (не блокируют старт), SCHEDULE_LINK
- Makefile: target test
- requirements: закреплённые версии
- .gitignore: __pycache__/, .venv/ и т.д.
2026-09-09 11:33:58 +03:00