Skip to main content

Declarative menu builder for DCC applications

Project description

menuet

PyPI Buy Me a Coffee

Declarative menu builder for DCC applications

DocumentationPyPIGitLabGitHubChangelogContributing


Blender 3ds Max
Maya macOS Native
macOS Windows
Unreal Houdini

Features

  • Load menu from a TOML or JSON configuration, from a dict, from entry points, or build it programmatically.
  • Supports, Blender, 3ds Max, Maya, MotionBuilder, Unreal, Houdini and any PySide6 application.
  • Declare one or more menus in a dedicated .toml file.
  • Compose menu from multiple .toml files.
  • Declare a 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

menuet-1.5.0.tar.gz (484.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

menuet-1.5.0-py3-none-any.whl (28.4 kB view details)

Uploaded Python 3

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page