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

LeroyProtoLIB — инвентарь shell.py

Раздел 4b документации LeroyProtoLIB (см. 01-families-map.md). Составлен агентом-документатором 2026-07-24; он же дописал в shell.py модульный докстринг-карту, докстринги классов/топ-функций и 10 TODO(АУДИТ) (исполняемый код не тронут, py_compile 3.7 OK). Строки — ПОСЛЕ правок.

Данные (dataclass-адаптеры параметров, база RSH)

  • 107 class RSH_Socle(RSH) — данные цоколя: габариты, SokleType, заглубления планок, материалы/опоры из «ЦВЕТ» (прежний докстринг «Терминал угловой» — копипаста, исправлен).
  • 164 class RSH_TerminalAngle(RSH) — данные углового терминала: радиус полки (radius_std + ужатие), материалы, межсекционный крепёж fix_stjag_ms.
  • 240 class RSH_ShellGS(RSH) — данные корпуса гардеробной (ГК): до 8 секций (w1..w8), индексируемые hpolktp/hpolkdp/ishpolkdp.
  • 345 class RSH_ShellPivot(RSH) — данные распашного корпуса: материалы, весь крепёж fix_, полки по секциям, вешалки vesh_std, диапазоны, limit_size; валидатор validate_h_small_int_t (авто-исправление hpolktp с ErrMsgBox).
  • 656 class RSH_ShellCupe(RSH) — данные купе-корпуса (МИНИ/ДУО/ТРИО): полки трёх секций, диапазоны ДУО, veshalo_type/veshalo_count по диапазонам.
  • 866 class RSH_Vesh(RSH) — минимальные данные ниши вешалки (габарит+материал, h_dsp=0).

Корпуса (база Shell → uFurnObject.FurnObject)

  • 1314 class Shell(uFurnObject.FurnObject) — базовый корпус: _parent = self.
  • 1328 class ShellMINI(Shell) — купе МИНИ, одна секция (furntype 110101).
  • 2089 class ShellDUO(Shell) — купе ДУО, две секции со стойкой и постоянной нишей; его адаптеры — ДЕФОЛТ для Niche_shelves и др.
  • 3237 class ShellTRIO(Shell) — купе ТРИО, три секции.
  • 6549 class ShellPivotMono(Shell) — распашной MONO-1/2, одна секция, цельная ЗС BackWallsMaxsize, навесы, цоколь ShellSocle.
  • 7234 class ShellPivotDuo(Shell) — распашной DUO-2/4, индекс ниши через kwards["index"].
  • 8073 class ShellPivotDuoThree(Shell) — распашной DUO-3 (L/R), w_small = ⅓ ширины.
  • 9030 class ShellPivotTrio(Shell) — распашной TRIO, фасадов 3..6 (fascount).

Цоколь

  • 956 class Socle(uFurnObject.FurnObject) — база цоколя.
  • 1051 class ShellSocle(Socle) — цоколь (furntype 110109): варианты COMMODE (планки + рёбра при width>899) и SHOEMAKER (одна скрытая планка); validate_cokle_height запрещает 1..39 мм.

Терминалы

  • 4238 class Terminal(uFurnObject.FurnObject) — база терминала.
  • 4333 class TerminalAngle(Terminal) — угловой завершающий (furntype 110106): боковина, ЗС, радиусные полки count шт., стяжка make_fix_stjag_ms.

Ниши / наполнения (база Niche)

  • 4581 class Niche(uFurnObject.FurnObject) — база ниши.
  • 4716 class NicheVesh(Niche) — поперечная (выдвижная) вешалка.
  • 4829 class NicheBRHolder(Niche) — боковой держатель брюк.
  • 4920 class NicheVeshProd(Niche) — продольная вешалка.
  • 5013 class NichePantograf(Niche) — пантограф (Pantograf.mac; докстринг был копипастой «продольная вешалка» — исправлен).
  • 5116 class NicheSideBruckHolder(Niche) — боковой держатель брюк (MotHangP.mac).
  • 5212 class Niche_shelves(Niche) — равномерные полки (shelf_class по умолчанию HorizontalSmallRemovableWall).
  • 5391 class Niche_Box(Niche) — ящики купе (Box_user.GroupBox).
  • 5587 class Niche_Box_Pivot(Niche) — ящики распашных: блок + фальшпанели/ боковины, MIN_DEPTH=263.
  • 5921 class Niche_SotKorGK(Niche) — сотовые корзины ГК.
  • 6057 class Niche_SotShelf(Niche) — сотовые полки РШ/ГК (MIN_DEPTH=284).
  • 6237 class Niche_ShoeShelfGK(Niche) — обувные полки ГК.
  • 6402 class Niche_BoxGK(Niche) — ящики ГК.

Утилиты / валидация / лимиты

  • 890 class ExtWidth — предельная ширина, check() бросает TypeError/ValueError.
  • 910 def factory_ext_width(diapason) — подменяет границы ExtWidth.
  • 919/934 class ExtHeight/ExtDepth — аналоги.
  • 1293 class ValidatePolkPosition — полка выше верхней пласти нижнего основания (nd_z_pos = h_cok + h_dsp).
  • 8040 def limit_size_box_checker_width(...) — валидация ширины под ящики.
  • 8055 def limit_size_box_checker_depth(...) — валидация глубины под ящики.
  • 10063 def main_manual() — отладочный ручной запуск.
  • 10264…10468 class LimitSize_PIVOT_MONO1/MONO2/DUO2/DUO3/DUO4/TRIO3/TRIO4/ TRIO5/TRIO6(Enum) — лимиты (мм) глубины/ширины.

TODO(АУДИТ) — потенциальные баги, помечены в коде

  1. 329 (RSH_ShellGS.params_adapter) — hpolkdp{i} умножается сам на себя (в квадрате); по аналогии с RSH_ShellPivot ожидалось * ishpolkdp{i} — вероятный баг.
  2. 337 — prmater/bandtypereal присваиваются в цикле по секциям, хотя от i не зависят.
  3. 389 (RSH_ShellPivot) — h_cok объявлено дважды, второе затирает первое.
  4. 434, 724slotpars: RSH_Slot = RSH_Slot() — один изменяемый экземпляр общий для всех объектов dataclass (mutable default).
  5. 442, 732 — опечатка аннотации Dict[int.int] (→ Dict[int, int]); не падает лишь из-за from __future__ import annotations.
  6. 901 (ExtWidth.check, и ExtHeight/ExtDepth) — аннотация -> bool, но при успехе возвращает None.
  7. 1599 (ShellMINI.gab_panel_adapter, ветка BackWallLarge) — length не используется; при h_small_int_d==0 длина ЗС занижена (в ShellDUO стоит length=length).
  8. 2753 (ShellDUO.symmetry_pan_position_adapter) — any([_isp(SideDown), _isp(SideTopWithEck)]) — вероятно имелся в виду SideDownWithEck; условие с SideTopWithEck мёртвое.
  9. 2868 (WallStrong/BOTTOM) — h_cok + + h_dsp — двойной плюс (унарный), остаток правки.
  10. Два NOTE(АУДИТ) об исправленных копипастных докстрингах: RSH_Socle и NichePantograf.