LeroyProtoLIB — точки входа (P_.py / Commone.py)¶
Раздел 4d документации LeroyProtoLIB (см.
01-families-map.md). Составлен агентом-документатором 2026-07-24. 77 файлов-обёрток в корнеLeroyProtoLIB/.
Точка входа — тонкий .py, который K3 запускает по имени прототипа. Она НЕ
содержит логики построения: только импортирует «толстый» билдер (cab_* или
семейство boad) и зовёт его main(...)/build_aboad(...). ProtoID не зашит —
резолвится в рантайме по default_name_proto (см. 01 §1).
Два поколения обёрток¶
«Новые» (32 файла, префикс P_ в CamelCase): вызывают
<family>.boad.main(default_name_module=, default_name_proto=, default_name_lib=).
Условный reload по уровню лога (if logger._core.min_level <= 10: reload(boad)).
Пример — P_PedestalMONO_1.py:
from LeroyProtoLIB.pedestal_pivot_mono import boad
if logger._core.min_level <= 10:
from pimp import reload; reload(boad)
boad.main(default_name_module="P_PedestalMONO_1.py",
default_name_proto="РШ Тумба MONO-1",
default_name_lib="LeroyProtoLIB")
«Старые» (45 файлов, P_cab_*/P_shell_*/cab_*L/R): либо одна строка
cab_pivot_mono.main() (P_CabMONO_1.py), либо собственная main() с
DATA_PROTO + build_aboad (P_cab_duoL.py).
Точки входа по семействам¶
| Префикс | Кол-во | Билдер | Изделия |
|---|---|---|---|
P_Cab* (CamelCase) |
13 | cab_* / boad |
высокие шкафы РШ: MONO-1/2, DUO-2/3L/3R/4, TRIO-3/4/5/6, MiniP, TrioP |
P_cab_* / cab_*L/R |
7 | cab_duo/cab_gk_* |
купе/ГК: ДУО Л/П, ГК Корпус, ГК Дверная система |
P_shell_* |
14 | cab_* (тонко) |
корпуса-прототипы (mono_one/two, duo_two/three/four, trio, pivot_trio_*) |
P_Pedestal* |
10 | pedestal_pivot_*/boad |
тумбы распашные: MONO-1/2, DUO-2/3L/3P, Nav, BoxNav |
Commode* |
4 | commode_pivot_*/boad |
комоды: MONO-1, DUO-2L/2R, TRIO-3 |
P_Shoemaker* |
4 | shoemaker_mono/boad |
обувницы MONO 1.1/1.2 (+ box-варианты) |
P_Antresol* |
10 | antresol_pivot_*/boad |
антресоли: MONO-1/2, DUO-2/3L/3R/4, TRIO-3/4/5/6 |
P_SU_* |
11 | bathroom/*/boad |
санузел: Bi/Dn/I/V варианты MONO-1/2, DUO-2 |
P_WallPanel* |
3 | wallpanel*/boad |
панели: Hooks, Mirror, Rollers |
P_based_shell |
1 | based_shell/shell |
«Базовый корпус Парамкаталога» (универсальный) |
Прочее: P_socleRSH.py (цоколь РШ как самостоятельный прототип),
P_niche_vesh.py / P_niche_vesh_prod.py (вешала как ассеты-прототипы).
Контракт билдера, вызываемого обёрткой¶
Все толстые билдеры (cab_*.main, <family>.boad.main) имеют одну сигнатуру:
def main(default_name_module=..., default_name_proto=..., default_name_lib="LeroyProtoLIB"):
DATA_PROTO = core_k.proto_func.DataProto()
DATA_PROTO.default_name_module = default_name_module
DATA_PROTO.default_name_proto = default_name_proto
DATA_PROTO.default_name_lib = default_name_lib
return build_aboad(DATA_PROTO) # -> skf (построенный объект)
build_aboad (см. 01 §1, §6): _get_proto_id(DATA_PROTO) →
UnitXXX(id_prototype=proto_id, inst_data=RSH_*()) → unit.Make() → unit.Draw()
→ k3.fixing/k3.holes → selbyattr → возвращает объект.
Замечание по консистентности (кандидаты на TODO)¶
cab_mono_two.py:main()не возвращает построенный объект (TODO(АУДИТ) в04c), в отличие от соседей.P_CabMONO_1.py— старый стиль (одна строка), а соседниеP_Pedestal*уже новые. Смешение стилей в рамках одного семейства.- Обёртки
P_cab_*/cab_*L/Rдублируют логикуmain()внутри себя (собственныйDATA_PROTO), вместо вызоваcab_*.main(...)— лишний код.
Связанные документы¶
01-families-map §1 (cab_* контракт), §2 (семейства boad), §6 (минимальный
набор сущностей); 04c (модули ядра + build_aboad).