Перейти к содержанию

LeroyProtoLIB — инвентарь url_entityes/ и tests/

Раздел 4a документации LeroyProtoLIB (см. 01-families-map.md). Составлен агентом-документатором 2026-07-24. Он же дописал докстринги/TODO(АУДИТ) в 6 файлов (перечень в §4).

1. url_entityes — состав и потребители

96 .py = 93 сгенерированных dprotoid_<N>.py (по одному датаклассу DPROTOID_<N> — дефолты параметров прототипа N, генератор allDataclassGenerator.pyprotopar_generator.py) + 2 генератора + dprotoid_plus.py; плюс Антресоли.md (габариты антресолей MONO-1…TRIO-6). Формат строки: field: float = default # рандомизатор русское описание.

Главный потребительurl_data_reader.py: импортирует 59 модулей, держит реестр {ProtoID: DPROTOID_*} (строки 494+).

ProtoID Изделие Потребители Примечание
304–307 LM шкафы купе МИНИ/ДУО-Л/ДУО-П/ТРИО url_data_reader
308–310, 312–315 Корпуса LM, ниши, вешалки сироты вложенные узлы, из макросов
311 Терминал угловой завершающий url_data_reader
316–326 Базовые корпуса MONO-1…TRIO-6, цоколь РШ сироты
327 РШ MONO-1 (оракул) url_data_reader; SParamProtoLib (P_CabMONO_1/2, P_CabDUO_2 — _read_proto_params: дефолты 327 + оверлей mProto, общий бутстрап и для 463/464/465); tests/compare_protos.py; test_characterization_proto327.py самый нагруженный файл
328–336 РШ MONO-2, DUO-2…4, TRIO-3…6 url_data_reader 329 = РШ DUO-2
337 РШ распашной Ниша Ящики сирота
338, 339 ГК Корпус / ГК Дверная система url_data_reader
383, 384 РШ TRIO-3 опытный, Базовый корпус ГК сироты экспериментальные
400–409 РШ Антресоли MONO-1…TRIO-6 url_data_reader
410–421 корпуса антресолей (h 400–1200, не сверено с БД) сироты
422–425 РШ Комоды MONO-1/DUO-2Л/DUO-2П/TRIO-3 url_data_reader 426 файла НЕТ, хотя тест есть
427–435 РШ Обувницы, Тумбы DUO, Панели (зеркало/крючки) url_data_reader
438–448 РШ СУ (санузел) MONO-1/2, DUO-2 url_data_reader
451 Ящик BOYARD СТАРТ сирота user_build/boxes/BoxBoyard.py:33 держит inline-копию DPROTOID_451 — два источника
452, 454–460 РШ Панель вешалки; Тумбы MONO/DUO url_data_reader
allDataclassGenerator.py драйвер генерации (список tProtoID) вручную из K3 нужен Dbaccess.mProto
protopar_generator.py генератор текста датаклассов allDataclassGenerator, url_data_reader только из K3

Сирот всего 35 (308–310, 312–326, 337, 383, 384, 410–421, 451, dprotoid_plus).

2. dprotoid_plus.py (~1993 строки) — МЁРТВЫЙ

Сводный исторический файл: 24 датакласса в одном модуле (304–307, 327–330, 332–336, 338, 339, 402–409, 422) — предшественник пофайловой раскладки. Странности: никем не импортируется; нет from dataclasses import dataclass (импорт упал бы NameError → мёртв давно); пропущен DPROTOID_331 (DUO-3 правый); но его продолжали править в git (LM-44362, март 2026) — дубли расходятся с пофайловыми (напр. colorcmmater 327: 22390 в plus vs 23352 в dprotoid_327.py). Кандидат на удаление.

3. tests/ — группировка

69 .py + данные (147.obj JSON заказа ~590КБ; TermimalTEst.json). Это не pytest: ни маркеров k3, ни сокета 9000 — все test_* запускаются ИЗНУТРИ K3 через main().

  • Снапшоты параметров (62 файла) protoid_304…460.py — сгенерированные _allTestsGenerator.py функции protoid_NNN() -> dict (дефолты + proto_id), вход для url_data_reader.main. Чистые данные (кроме protoid_410.py — рукописный, тянет import k3). Докстринг каждого — protoinfo (ProtoID→имя→макрос). test_LM подключает 304–433; 434–460 сгенерированы, не используются.
  • Прогонные скрипты (живой K3): test_LM.py — главный (test_protoid(*ids) строит шкафы через url_data_reader; test_URLread(*коды) — по реальным URL-кодам detalidsp.ru); test_LM_pivot_duo3.py — 4 рандомных DUO-3 правых (331); test_terminal.py — терминал 311 + DUO-4 + антресоль 405.
  • Инфраструктура: common_params.py (шаблон заказа RASPASH, param_randomize(), цвета LM/Столплит, import k3); urlreallist.py (LISTURL реальных кодов заказов); protopar_generator.py + _allTestsGenerator.py (генераторы, нужен K3).

Баг (помечен TODO): test_LM.py:23 импортирует protoid_423/424/425 как МОДУЛИ, но FUNCTIONS['protoid_423'][0]() ждёт функцию → TypeError: module is not callable для pid 423–425.

4. Внесённые правки (6 файлов, py_compile OK, не закоммичено на момент отчёта)

  1. url_entityes/dprotoid_plus.py — докстринг + TODO(АУДИТ): сирота, NameError, пропущен 331, дубли расходятся.
  2. url_entityes/dprotoid_451.py — TODO(АУДИТ): дубль класса в BoxBoyard.py.
  3. tests/protoid_304plus.py — TODO(АУДИТ): пустой артефакт, на удаление.
  4. tests/protoid_410.py — TODO(АУДИТ): рукописный, отключён в test_LM.
  5. tests/test_LM.py — TODO(АУДИТ): баг «модуль вместо функции» 423–425.
  6. tests/test_LM_pivot_duo3.py — заголовочный докстринг.

Прочее для сводки

  • Имя каталога url_entityes — опечатка (entities).
  • dprotoid_426.py отсутствует при существующем тесте protoid_426.py (426 = «Базовый корпус Парамкаталога»).
  • В url_entityes нет __init__.py (namespace-пакет).