API Reference¶
menuet
¶
MenuSortKey
¶
Mode.iter sort key function.
Must be a function that accepts a Menu or Action argument that is used to extract a comparison key from each element.
Action
¶
Runtime action definition.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
id
|
str
|
Action identifier. Identifier must abide by these rules:
|
required |
cb
|
Callable[[], Any]
|
Callback to execute when action is requested. |
<function passthrough at 0x7f9dcfcf47d0>
|
menu
|
tuple[str, ...]
|
Menu labels hierarchy. The root menu is represented by an empty tuple |
()
|
label
|
str | None
|
Display name. |
None
|
group
|
str | None
|
A group under Items under the same |
None
|
icon
|
Traversable | None
|
Path to an icon. Icons are displayed alongside the |
None
|
desc
|
str | None
|
Short description. Displayed as a menu tooltip. |
None
|
ItemAction
¶
ItemGroup
¶
Group wrapper, returned by Model.iter.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
inner
|
ForwardRef
|
|
None
|
menu
|
ForwardRef
|
|
None
|
ItemMenu
¶
Menu
¶
Menu node definition.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
label
|
str
|
Display name. |
required |
menu
|
tuple[str, ...]
|
Menu labels hierarchy. The root menu is represented by an empty tuple |
()
|
group
|
str | None
|
A group under Items under the same |
None
|
icon
|
Traversable | None
|
Path to an icon. Icons are displayed alongside the |
None
|
desc
|
str | None
|
Short description. Displayed as a menu tooltip. |
None
|
Model
¶
The main Action and Menu storage abstraction.
get_action
¶
iter
¶
iter(
menu: tuple[str, ...] = (),
*,
sort_key: MenuSortKey | None = None,
recursive: bool = False
) -> Iterator[ItemGroup | ItemMenu | ItemAction]
Iter menu items.
By default, menu items are sorted as follow:
- Sort groups, alphabetically
- In the current group, place menus above actions
- Sort elements alphabetically
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
menu
|
tuple[str, ...]
|
The start menu. An empty tuple |
()
|
sort_key
|
MenuSortKey | None
|
Customize the sort order of menu items. |
None
|
recursive
|
bool
|
Iter sub-menus in depth-first search. |
False
|
deserialize
¶
deserialize(
config: dict[str, Any],
model: Model,
root_keys: tuple[str, ...] | None = None,
) -> None
Deserialize config and add its content to the model.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
config
|
dict[str, Any]
|
A dict containing a configuration of menus and actions. |
required |
model
|
Model
|
Target model. |
required |
root_keys
|
tuple[str, ...] | None
|
The sequence of keys that lead to the root configuration structure.
For example, a |
None
|
load
¶
Load fp and deserialize its content to model.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
fp
|
SupportsRead[bytes]
|
a |
required |
model
|
Model
|
Target model. |
required |
root_keys
|
tuple[str, ...] | None
|
The sequence of keys that lead to the root configuration structure.
For example, a |
None
|
loads
¶
Load s and deserialize its content to model.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
s
|
str
|
a |
required |
model
|
Model
|
Target model. |
required |
root_keys
|
tuple[str, ...] | None
|
The sequence of keys that lead to the root configuration structure.
For example, a |
None
|
menuet.builders.text
¶
Render
¶
TextMenuBuilder render options.
TextMenuBuilder
¶
TextMenuBuilder(
model: Model,
*,
root_menu: str | None = None,
sort_key: MenuSortKey | None = None,
render: Render = Render.ASCII
)
Text menu builder.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
model
|
Model
|
Model to build. |
required |
root_menu
|
str | None
|
Specify a root menu name.
If not, the model items whose parent is an empty tuple |
None
|
sort_key
|
MenuSortKey | None
|
Customize the sort order of menu items. |
None
|
render
|
Render
|
Text render option. |
Render.ASCII
|
menuet.builders.qt
¶
QMenuBuilder
¶
QMenuBuilder(
model: Model,
*,
root_menu: QtWidgets.QMenu | str,
sort_key: MenuSortKey | None = None
)
Qt Menu Builder.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
model
|
Model
|
Model to build. |
required |
root_menu
|
QtWidgets.QMenu | str
|
Menu to populate.
All existing actions in the menu are removed during |
required |
sort_key
|
MenuSortKey | None
|
Customize the sort order of menu items. |
None
|
menuet.builders.blender
¶
Added in 1.1.0
BlenderMenuBuilder
¶
BlenderMenuBuilder(
model: Model,
*,
root_menu: str,
sort_key: MenuSortKey | None = None
)
Blender Menu Builder.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
model
|
Model
|
Model to build. |
required |
root_menu
|
str
|
Root menu name. |
required |
sort_key
|
MenuSortKey | None
|
Customize the sort order of menu items. |
None
|
menuet.builders.maya
¶
Added in 1.2.0
MayaMenuBuilder
¶
MayaMenuBuilder(
model: Model,
*,
root_menu: str,
parent: str = "MayaWindow",
sort_key: MenuSortKey | None = None
)
Maya Menu Builder.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
model
|
Model
|
Model to build. |
required |
root_menu
|
str
|
Root menu name. |
required |
parent
|
str
|
Specify the window or menu that the menu will appear in. Default to Maya main menubar. |
'MayaWindow'
|
sort_key
|
MenuSortKey | None
|
Customize the sort order of menu items. |
None
|
menuet.builders.unreal
¶
Added in 1.3.0
UnrealMenuBuilder
¶
UnrealMenuBuilder(
model: Model,
*,
parent: unreal.ToolMenu,
root_name: str,
root_label: str | None = None,
to_string_command: Callable[[str], str],
sort_key: MenuSortKey | None = None
)
Unreal Menu Builder.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
model
|
Model
|
Model to build. |
required |
parent
|
unreal.ToolMenu
|
Parent menu. |
required |
root_name
|
str
|
Root menu name. Serve as the 'owner' name of all sub-menu and entries created by the builder and used as an identifier during build. |
required |
root_label
|
str | None
|
Root menu display name. Default to |
None
|
to_string_command
|
Callable[[str], str]
|
Callable that accept an |
required |
sort_key
|
MenuSortKey | None
|
Customize the sort order of menu items. |
None
|
model_reference_to_string_command
¶
Generate the to_string_command argument from a Model reference.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
reference
|
str
|
Points to a Callable returning a |
required |
Example
>>> func = model_reference_to_string_command('menuet.demo:demo_model')
>>> print(func('anim-bake'))
import menuet
from menuet.utils import load_entry_point
model = load_entry_point('menuet.demo:demo_model')
if not isinstance(model, menuet.Model):
raise TypeError(f"Expected 'Model', found '{type(model)}'")
model.get_action('anim-bake').cb()
menuet.demo
¶
Added in 1.1.0
demo_model
¶
demo_model() -> Model
An example model to demonstrate what menuet can do.
Example
>>> from menuet.demo import demo_model
>>> from menuet.builders.text import Render, TextMenuBuilder
>>> model = demo_model()
>>> builder = TextMenuBuilder(model, root_menu="Demo", render=Render.UTF8)
>>> print(builder.build())
Demo
├── Animation
│ ├── FBX
│ │ ├── FBX Animation Exporter
│ │ └── FBX Animation Importer
│ ├── Bake Animation
│ ├── Edit ───
│ ├── Adjustment Blending
│ └── Tween Machine
├── Development
│ └── Start Debugger
├── Modeling
│ ├── Mesh Cleaner
│ ├── Mesh Randomizer
│ └── Mirror Geometry
├── Rigging
│ ├── Joint Tools
│ ├── Skinning Tools
│ ├── Controller ───
│ ├── Controller Creator
│ └── Controller Editor
└── Open Documentation