Загрузка данных
Продолжи работу только в проекте:
/Users/23865613/IdeaProjects/untitled/zadanie2/source_project
По результатам финальной независимой проверки обнаружены четыре пары
каталогов модулей с одинаковыми META URL.
Это нарушение обязательного правила:
один объект META должен существовать только один раз.
Нужно устранить только подтверждённые дубли модулей и исправить итоговые
отчёты.
Не запускай браузер.
Не обращайся к META.
Не выполняй git add, commit, push, reset, clean, restore или stash.
Не изменяй размещение ТК.
Не выдумывай родительские связи.
Не русифицируй и не переводи названия вручную.
Работай только с:
- projects/SNL/meta/;
- temp_html/;
- output/;
- scripts/structured_meta_writer.py;
- scripts/regenerate_reports.py.
======================================================================
1. ПРОВЕРИТЬ ЧЕТЫРЕ ПАРЫ ДУБЛЕЙ
======================================================================
Проверить следующие пары:
1.
СНЛ.User_Interface
СНЛ.Пользовательский_интерфейс
META URL: /module/3855884
2.
СНЛ.Data_Operator_Interface
СНЛ.Интерфейс_оператора_данных
META URL: /module/3855885
3.
СНЛ.Integrations
СНЛ.Интеграции
META URL: /module/3858139
4.
СНЛ.Calculations
СНЛ.Расчеты
META URL: /module/3860548
Для каждой пары прочитать оба README.md и определить:
- META ID;
- META URL;
- название объекта в исходном сохранённом HTML;
- title страницы;
- breadcrumb;
- наличие уникальных данных в каждом README;
- наличие дочерних подмодулей;
- ссылки из других README.
Не выбирать каталог только потому, что его название русское или английское.
Каноническое название брать только из исходных данных META:
- сохранённого HTML;
- META title;
- breadcrumb;
- исходного Markdown, сформированного из страницы.
======================================================================
2. СОХРАНИТЬ УНИКАЛЬНЫЕ ДАННЫЕ
======================================================================
Перед удалением создать резервную копию:
projects/SNL/meta.before-module-deduplication
Для каждой пары сравнить README и дочерние каталоги.
Если удаляемый каталог содержит уникальные данные:
- перенести их в канонический README;
- не дублировать одинаковые таблицы;
- сохранить META URL и META ID;
- сохранить подтверждённые подмодули.
Не удалять данные до подтверждения их переноса.
======================================================================
3. УДАЛИТЬ ТОЛЬКО ПОДТВЕРЖДЁННЫЕ ДУБЛИ
======================================================================
После проверки оставить ровно один каталог на каждый META URL:
- /module/3855884;
- /module/3855885;
- /module/3858139;
- /module/3860548.
После исправления должно быть:
- 7 уникальных модулей;
- 7 каталогов модулей;
- 4 уникальных подмодуля;
- 24 ТК.
Не удалять другие модули или подмодули.
======================================================================
4. ИСПРАВИТЬ ГЕНЕРАТОР
======================================================================
Проверить scripts/structured_meta_writer.py.
Генератор не должен повторно создавать два каталога для одного META URL
или META ID.
Правило идентичности:
1. META ID;
2. META URL;
3. только при отсутствии обоих — нормализованное точное имя.
Имя каталога должно формироваться из реального названия объекта в META.
Запрещено:
- создавать дополнительный русифицированный вариант;
- создавать дополнительный англоязычный вариант;
- использовать ручную таблицу перевода;
- создавать два объекта из одного URL.
Внести минимальное исправление, не переписывая генератор полностью.
======================================================================
5. ПРОВЕРИТЬ IUS-REQUEST-APPROVAL
======================================================================
Проверить запись ius-request-approval в:
output/UNMIGRATED_META_DATA.md
Показать:
- старый путь;
- META URL;
- META ID;
- тип страницы;
- почему запись не считается отдельным объектом;
- представлен ли её полезный контент в projects/SNL/meta/as/.
Не указывать «неперенесённых уникальных объектов: 0», если полезные данные
ius-request-approval фактически отсутствуют в целевой структуре и не
обосновано, почему это не отдельный объект.
Не создавать объект без подтверждённого типа и родителя.
======================================================================
6. ИСПРАВИТЬ TASK_COVERAGE
======================================================================
Обновить output/TASK_COVERAGE.md по фактическому состоянию.
До устранения дублей требование:
«Нет ложных объектов и дублей»
не может иметь статус «Закрыто».
После устранения дублей проверить его повторно.
Требования по атрибутам сейчас должны иметь статус:
«Частично»
с пояснением:
в сохранённых HTML отсутствуют отдельные секции «Карточка»,
«Ответственность», «Дополнительные атрибуты» и «Технические атрибуты»;
для полного закрытия требуется повторное получение данных страницы.
Не указывать, что все требования закрыты, пока эти разделы не выгружены.
======================================================================
7. ПРОВЕРКИ
======================================================================
Выполнить:
python -m py_compile run_exporter.py scripts/*.py
До регенерации сохранить контрольные суммы:
find projects/SNL/meta -type f -print0 | sort -z | xargs -0 shasum \
> /tmp/meta-before-module-dedup.sha
Выполнить:
python scripts/regenerate_reports.py
Повторно выполнить:
python scripts/regenerate_reports.py
После второго запуска:
find projects/SNL/meta -type f -print0 | sort -z | xargs -0 shasum \
> /tmp/meta-after-module-dedup.sha
Проверить:
- дубли модулей не восстановились;
- осталось ровно 7 каталогов модулей;
- META URL каждого модуля уникален;
- META ID каждого модуля уникален;
- осталось 4 подмодуля;
- осталось 24 ТК;
- два повторных запуска дают одинаковую структуру;
- таблицы атрибутов не продублировались;
- пять interaction-point остались только на уровне ФП.
======================================================================
8. ОБНОВИТЬ ОТЧЁТЫ
======================================================================
Обновить:
- output/DUPLICATE_OBJECTS_REPORT.md;
- output/UNMIGRATED_META_DATA.md;
- output/TASK_COVERAGE.md;
- output/REQUIREMENTS_REPORT.md.
В output/DUPLICATE_OBJECTS_REPORT.md показать для каждой исправленной пары:
| META ID | META URL | Удалённый путь | Сохранённый путь | Основание выбора |
|---:|---|---|---|---|
В output/REQUIREMENTS_REPORT.md указать честный итог:
- дубли модулей устранены или не устранены;
- атрибуты закрыты частично;
- для полной выгрузки атрибутов требуется отдельный браузерный прогон;
- браузер в рамках этой задачи не запускался.
Финальный статус после устранения всех четырёх дублей:
«Готово с ограничениями исходных данных»
Допустим только в том случае, если единственным оставшимся ограничением
является отсутствие секций атрибутов в сохранённом HTML.
Если остаются дубли или потерянные данные, статус:
«Не готово».
======================================================================
9. ФИНАЛЬНЫЙ ОТЧЁТ
======================================================================
В конце выведи:
# Устранение дублей модулей
## Проверенные пары
## Канонические названия из META
## Перенесённые данные
## Удалённые каталоги
## Изменение генератора
## Проверка ius-request-approval
## Результат py_compile
## Первая регенерация
## Повторная регенерация
## Идемпотентность
## Итоговая статистика
## Оставшееся ограничение по атрибутам
Явно показать:
- количество каталогов модулей до и после;
- количество уникальных META URL до и после;
- количество подмодулей;
- количество ТК;
- количество дублей после исправления;
- итоговый статус проекта.
После завершения остановиться.
Не выполнять commit и push.