furntype package#
Subpackages#
- furntype.Entities package
- Submodules
- furntype.Entities.cupboard module
- furntype.Entities.entity module
- furntype.Entities.panel module
AngleTypes
Band
Butt
Cutline
Decorate
FixLine
MbPanel
MbPanel.__init__()
MbPanel.angle
MbPanel.angles
MbPanel.b_incise
MbPanel.bands
MbPanel.butts
MbPanel.caves
MbPanel.chordarc
MbPanel.chordlength
MbPanel.coords
MbPanel.cutlines
MbPanel.cuts
MbPanel.decorates
MbPanel.fixlines
MbPanel.formpath
MbPanel.isaxeY
MbPanel.issymmetry
MbPanel.length
MbPanel.length1
MbPanel.length2
MbPanel.majorplace
MbPanel.maxcut
MbPanel.mills
MbPanel.panelform
MbPanel.panmater
MbPanel.radius
MbPanel.slots
MbPanel.texangle
MbPanel.type_form
MbPanel.width
Mill
Segment
Slot
- Module contents
- furntype.Factory package
- Submodules
- furntype.Factory.butt module
ButtChamferFactoryPanelRectangle
ButtChamferFactoryPanelRectangle.__init__()
ButtChamferFactoryPanelRectangle.angle
ButtChamferFactoryPanelRectangle.butttype
ButtChamferFactoryPanelRectangle.create()
ButtChamferFactoryPanelRectangle.idline
ButtChamferFactoryPanelRectangle.idpoly
ButtChamferFactoryPanelRectangle.length
ButtChamferFactoryPanelRectangle.map_
ButtChamferFactoryPanelRectangle.number
ButtChamferFactoryPanelRectangle.shift_koef
ButtChamferFactoryPanelRectangle.shift_size
ButtChamferFactoryPanelRectangle.shift_start
buttFactoryPanelRectangle()
- furntype.Factory.factory module
- furntype.Factory.panel module
- Module contents
- furntype.panel_pkg package
Submodules#
furntype.constants module#
Tip
Избегайте использования аннотаций типа подписи в функции с помощью autodoc,
установив следующие параметры:
# -- Options for autodoc ---------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/extensions/autodoc.html#configuration # Automatically extract typehints when specified and place them in # descriptions of the relevant function/method. autodoc_typehints = "description" # Don't show class signature with the class' name. autodoc_class_signature = "separated"
Классы-константы глобальных “мебельных” типов#
Это именно константы. Переопределять их НЕЛЬЗЯ!
- Пример:
>>> from furntype import constants as const
Для передачи значения в функции к3, такие как setpan6par требуется использовать <int>. Это не очень наглядно при передаче значений в коде.
>>> const.MAJORPLACE.SHELF.value 12
Часто приходится решать обратную задачу: получить обозначение по кодовому числу, которое возвращает функция в к3. Например getpan6par. Модуль const легко решает эту задачу.
>>> const.PANELSIDE(5).name 'E'
Что бы узнать все доступные имена надо вызвать свойство _member_names_ >>> const.MAJORPLACE._member_names_ [‘POST’, ‘SHELF’, ‘PUT_ON’, ‘WALL’]
>>> const.MAJORPLACE.POST <MAJORPLACE.POST: 11> >>> p = const.MAJORPLACE.POST >>> p == 11 True >>> p.value 11
Если попытаться задать неопределенное в типе значение полуим исключение AttributeError
>>> p.value = 1523 Traceback (most recent call last): Оболочка Python, prompt 19, строка 1 Файл "c:\PKM74\Data\PKM\Proto\site-packages\enum\__init__.py", строка 56, из __set__ raise AttributeError("can't set attribute") builtins.AttributeError: can't set attribute
- class furntype.constants.BACKWALLTYPE[source]#
Bases:
Enum
Типы задних стенок
- BUILT_IN = 'Built-in'#
- FOR_SINK = 'For-sink'#
- INCUT = 'Incut'#
- NONE = 'None'#
- PUT_ON = 'Put-on'#
- STIFF = 'Stiff'#
- class furntype.constants.COMPLECTCHILD[source]#
Bases:
Enum
Типы частей комплектующего (Complect) соответствуют свойству Accessory
- FIRST = 'First'#
- FOURTH = 'Fourth'#
- LEFT = 'Left'#
- NONE = 'None'#
- RIGHT = 'Right'#
- SECOND = 'Second'#
- THIRD = 'Third'#
- class furntype.constants.CUTLINEFORM[source]#
Bases:
Enum
- Формы линий врезки, наростов и линий маркировки
FREE - Свободная линия
CIRCLE - Окружность
ARC - Дуга
RECTANGLE - Прямоугольник
FIGURE - Фигурная линия
- ARC = 'Arc'#
- CIRCLE = 'Circle'#
- FIGURE = 'Figure'#
- FREE = 'Free'#
- RECTANGLE = 'Rectangle'#
- class furntype.constants.MAJORPLACE[source]#
Bases:
IntEnum
Типы положения панели#
- Допустимые имена и передаваемое значение:
Post : 11 Стойка
Shelf : 12 Полка
Put-on : 13 Накладная стенка
Wall : 14 Стенка
- Пример:
>>> const.MAJORPLACE(11).name 'POST' >>> const.MAJORPLACE.POST <MAJORPLACE.POST: 11> >>> const.MAJORPLACE.POST.value 11 >>>
- POST = 11#
- PUT_ON = 13#
- SHELF = 12#
- WALL = 14#
- class furntype.constants.MAP_SECTION[source]#
Bases:
Enum
Секция раскрашивания#
1 - сторона E (Y+); 2 - сторона D (Y-); 3 - сторона C (X+); 4 - сторона B (X-); 5 - пласть A (Z+); 6 - пласть F (Z-); 7 - угол 1; 8 - угол 2; 9 - угол 3; 10 - угол 4; 11 - дополнение 1; 12 - дополнение 2.
- MAP_A = 5#
- MAP_ANG1 = 7#
- MAP_ANG2 = 8#
- MAP_ANG3 = 9#
- MAP_ANG4 = 10#
- MAP_B = 4#
- MAP_C = 3#
- MAP_D = 2#
- MAP_DOPA = 11#
- MAP_DOPB = 12#
- MAP_E = 1#
- MAP_F = 6#
- class furntype.constants.PANELSIDE[source]#
Bases:
Enum
Cтороны прямоугольной мебельной панели#
- Допустимые уникальные имена и передаваемое значение:
B : 7 - Торец B
C : 3 - Торец C
D : 1 - Торец D
E : 5 - Торец E
ANG1 : 8 - Угол 1
ANG2 : 2 - Угол 2
ANG3 : 4 - Угол 3
ANG4 : 6 - Угол 4
ALL : -1 - На все
- для пропилов
FREE = 9 # Свободная привязка
- для вырезов
THROUGH = 0 # Привязка насквозь
- Пример:
>>> from furntype import constants as const >>> const.PANELSIDE._member_map_ {'B': <PANELSIDE.B: 7>, 'C': <PANELSIDE.C: 3>, 'D': <PANELSIDE.D: 1>, 'E': <PANELSIDE.E: 5>, 'FREE': <PANELSIDE.FREE: 9>} >>> const.PANELSIDE.B.value 7
>>> const.PANELSIDE.B <PANELSIDE.B: 7>
>>> const.PANELSIDE(5).name 'E'
- ALL = -1#
- ANG1 = 8#
- ANG2 = 2#
- ANG3 = 4#
- ANG4 = 6#
- B = 7#
- C = 3#
- D = 1#
- E = 5#
- FREE = 9#
- THROUGH = 0#
- class furntype.constants.PANELSIDE_BUTT[source]#
Bases:
Enum
Cтороны прямоугольной мебельной панели для торцевых обработок#
- Допустимые уникальные имена и передаваемое значение:
B : 7 - Торец B
C : 3 - Торец C
D : 1 - Торец D
E : 5 - Торец E
ANG1 : 8 - Угол 1
ANG2 : 2 - Угол 2
ANG3 : 4 - Угол 3
ANG4 : 6 - Угол 4
ALL : -1 - На все
- Пример:
>>> from furntype import constants as const >>> const.PANELSIDE_BUTT._member_map_ {'B': <PANELSIDE_BUTT.B: 7>, 'C': <PANELSIDE_BUTT.C: 3>, 'D': <PANELSIDE_BUTT.D: 1>, 'E': <PANELSIDE_BUTT.E: 5>, >>> const.PANELSIDE_BUTT.B.value 7
>>> const.PANELSIDE_BUTT.B <PANELSIDE_BUTT.B: 7>
>>> const.PANELSIDE_BUTT(5).name 'E'
- ALL = -1#
- ANG1 = 8#
- ANG2 = 2#
- ANG3 = 4#
- ANG4 = 6#
- B = 7#
- C = 3#
- D = 1#
- E = 5#
- class furntype.constants.PANELSIDE_CUT[source]#
Bases:
Enum
Cтороны прямоугольной мебельной панели для вырезов#
- Допустимые уникальные имена и передаваемое значение:
B : 7 - Торец B
C : 3 - Торец C
D : 1 - Торец D
E : 5 - Торец E
FREE = 9 # Свободная привязка
- для вырезов
THROUGH = 0 # Привязка насквозь
- Пример:
>>> from furntype import constants as const >>> const.PANELSIDE_CUT._member_map_ {'B': <PANELSIDE_CUT.B: 7>, 'C': <PANELSIDE_CUT.C: 3>, 'D': <PANELSIDE_CUT.D: 1>, 'E': <PANELSIDE_CUT.E: 5>, 'FREE': <PANELSIDE_CUT.FREE: 9>} >>> const.PANELSIDE_CUT.B.value 7
>>> const.PANELSIDE_CUT.B <PANELSIDE_CUT.B: 7>
>>> const.PANELSIDE_CUT(5).name 'E'
- B = 7#
- C = 3#
- D = 1#
- E = 5#
- FREE = 9#
- class furntype.constants.PANELSIDE_SLOT[source]#
Bases:
Enum
Cтороны прямоугольной мебельной панели для пропилов#
- Допустимые уникальные имена и передаваемое значение:
B : 7 - Торец B
C : 3 - Торец C
D : 1 - Торец D
E : 5 - Торец E
FREE = 9 Свободная привязка
- для вырезов
THROUGH = 0 # Привязка насквозь
- Пример:
>>> from furntype import constants as const >>> const.PANELSIDE_SLOT._member_map_ {'B': <PANELSIDE_SLOT.B: 7>, 'C': <PANELSIDE_SLOT.C: 3>, 'D': <PANELSIDE_SLOT.D: 1>, 'E': <PANELSIDE_SLOT.E: 5>, 'FREE': <PANELSIDE_SLOT.FREE: 9>} >>> const.PANELSIDE_SLOT.B.value 7
>>> const.PANELSIDE_SLOT.B <PANELSIDE_SLOT.B: 7>
>>> const.PANELSIDE_SLOT(5).name 'E'
- B = 7#
- C = 3#
- D = 1#
- E = 5#
- FREE = 9#
furntype.eventdispather module#
furntype.logger module#
furntype.types_ module#
- class furntype.types_.ext_int[source]#
Bases:
int
целое число в диапазоне MIN_EXT MAX_EXT
>>> class my_positive(ext_int): ... MIN_EXT = -2 ... MAX_EXT = 5 ... EXCEPT_MSG = """Экстремальные типы не должны выходить за пределы допустимых значений {} {}""".format(MIN_EXT, MAX_EXT) >>> p = my_positive(3) >>> print(p) 3 >>> print(p - 10) -2
- EXCEPT_MSG = 'Экстремальные типы не должны выходить за пределы\n допустимых значений 0 10000'#
- MAX_EXT = 10000#
- MIN_EXT = 0#
- class furntype.types_.extfloat[source]#
Bases:
float
класс числа в пределах допустимых значений
>>> ex = extfloat(10) print(ex) 10.0 >>> class my_ext(extfloat): ... MIN_EXT = -2 ... MAX_EXT = 5 ... >>> ex = my_ext(3) >>> ex extfloat(3.0) >>> print(ex) 3.0
- EXCEPT_MSG = 'Экстремальные типы не должны выходить за пределы\n допустимых значений -1 10000'#
- MAX_EXT = 10000#
- MIN_EXT = -1#
furntype.validate_meta module#
- class furntype.validate_meta.EntityMeta[source]#
Bases:
type
Метакласс для Бизнес-сущностей с проверенными полями
- class furntype.validate_meta.MapSectionPanelRectangle[source]#
Bases:
Validated
Секции раскрашивания прямоугольной панели
- class furntype.validate_meta.NonBlank[source]#
Bases:
Validated
строка, содержащая по крайней мере один символ, не являющийся пробелом
- class furntype.validate_meta.PanelSideButt[source]#
Bases:
Validated
Тип сторон и углов прямоугольной панели для торцевых обработок
- class furntype.validate_meta.PanelSideCut[source]#
Bases:
Validated
Тип сторон и углов прямоугольной панели для вырезов
- class furntype.validate_meta.PanelSideSlot[source]#
Bases:
Validated
Тип сторон и углов прямоугольной панели для пропилов
Bases:
Validated
Число больше нуля и в переделах от 0 до 1
вернуть проверенное значение или вызвать ValueError