menuet
Declarative menu builder for DCC applications
Documentation • PyPI • GitLab • GitHub • Changelog • Contributing
Blender |
3ds Max |
Maya |
Maya Marking Menu |
macOS |
macOS Native |
Windows |
MotionBuilder |
Unreal Engine |
Houdini |
Substance Painter |
Substance Designer |
Nuke |
Features
- Load menu from a TOML, JSON, YAML, from a Python dict, from entry points, or build it programmatically
- Supports, Blender, 3ds Max, Maya, MotionBuilder, Unreal, Houdini, Substance Designer, Substance Painter, and any PySide6 application
- Declare one or more menus in a dedicated
.toml,.jsonor.yamlfile - Compose menu from multiple files
- Declare menu in a
pyproject.toml
Installation
pip install menuet
Usage
Create a menu configuration in TOML format.
# menu.toml
[[action]]
id = "print-hello"
label = "Print Hello"
cb = "print('Hello')"
group = "Separator"
[[action]]
id = "open-gui"
label = "Open GUI"
cb = "ep:myapp.gui:open_gui"
menu = ["Foo", "Bar"]
Load the above configuration into a Model and pass
that model to a Menu Builder to create a menu.
from pathlib import Path
from menuet import Model, loads
from menuet.builders.text import Render, TextMenuBuilder
model = Model()
loads(Path("menu.toml").read_text(), model)
builder = TextMenuBuilder(model, root_menu="Demo", render=Render.UTF8)
print(builder.build())
Demo
├── Foo
│ └── Bar
│ └── Open GUI
├── Separator ───
└── Print Hello
For more information and examples, visit the documentation at tahv.gitlab.io/menuet.
Contributing
Contributions of any kind are welcome. Please open an issue, or read the contribution guidelines and open a merge request.
Alternatives
Metadata
Release files for menuet 1.10.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| menuet-1.10.0.tar.gz | 604.3 kB | Without provenance | Details for menuet-1.10.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| menuet-1.10.0-py3-none-any.whl | Python 3 | none | any | Details for menuet-1.10.0-py3-none-any.whl |
Total release size: 637.5 kB
Security for menuet 1.10.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.