Skip to main content

maya-brew

Status: Pre-Alpha – Interfaces are experimental and may change without notice. Pin exact versions if using in automation.

What you need after a long day of wrestling with Maya Python.

Super-Linter


Overview

maya-brew aims to provide safer, more structured interaction patterns when scripting or tooling inside Autodesk Maya.

Goals:

  • Reduce foot‑guns when using Python inside Maya
  • Offer utilities that behave well with Maya’s quirks

Background

maya-brew draws inspiration from some of the ergonomic goals that motivated PyMEL: making Maya’s Python interface feel more “Pythonic,” safer, and more discoverable. PyMEL historically provided rich object wrappers around nodes, attributes, and other scene elements; for many workflows this improved readability and reduced boilerplate.

However, over time several practical factors led to the decision to start a lightweight alternative instead of extending PyMEL itself:

  • Scope & Complexity: PyMEL’s dynamic wrapping and layered abstractions can introduce startup overhead, indirection, and occasional debugging friction.
  • Historical Churn: A long evolution, multiple contributors, and some legacy design choices make selective modernization non‑trivial.
  • Maintenance & Momentum: While still usable, PyMEL no longer appears to have the same pace of active development or broad community push it once did.
  • Adoption Fit: Many pipelines only need a thin set of safety/ergonomic helpers—not a full object layer over maya.cmds.

Acknowledgment

PyMEL significantly influenced how many technical artists approach Maya scripting, and this project stands on that conceptual foundation. maya-brew simply narrows the focus: take the useful ergonomic ideas, shed the heavy wrapping, and keep to the canonical APIs.

Native node wrappers

User-facing exceptions are defined in maya_brew.exceptions. Catch specific failures such as NoMatchingNodes, broader categories such as NodeCastingException, or MayaBrewException for all library-defined errors.

Python node classes follow Maya's node-type inheritance, including intermediate ancestors. cast selects the exact native class for an existing node; direct constructors remain explicit.

from maya_brew.nodes.casting import cast
from maya_brew.nodes.node_types import Transform

node = cast("my_transform")
assert isinstance(node, Transform)

transform = cast("my_transform", Transform)  # Typed and checked as Transform

Command wrappers

maya_brew.cmds provides typed wrappers around selected maya.cmds commands. Wrapper docstrings describe differences from Maya's behavior. Use maya.cmds directly for commands that are not yet wrapped.

Currently wrapped commands:

  • createNode
  • ls
  • polyPlane

Run mayapy -m tools.generate to regenerate signatures from Maya's command help and tool-side metadata. Handwritten stubs supply command-specific typing where needed.

Generated hierarchies

Offline generation infrastructure lives in tools/node_hierarchy, outside the installed runtime package. Its versioned outputs live exclusively in src/maya_brew/nodes/_generated/maya_<version>:

Artifact Purpose
classes.py Explicit, importable native classes
constants.py TYPE_CLASSES mapping from Maya names to generated classes

The runtime selects generated classes by Maya's major version, with runtime fallback for missing releases or types.

Metadata

Release files for maya-brew 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for maya-brew 0.3.0
File Size Uploaded Provenance
maya_brew-0.3.0.tar.gz 79.4 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for maya-brew 0.3.0
File Interpreter ABI Platform
maya_brew-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 143.1 kB

Release files / maya_brew-0.3.0.tar.gz

Download URL maya_brew-0.3.0.tar.gz
Size 79.4 kB
Tags Source
SHA-256 checksum
How to use checksums
80c5419c70a00263aa1e8cfe21772393db6476dac6071ec7fd33f042cfe93cf2
BLAKE2b-256 checksum
How to use checksums
6323f4cac9cb3d4bea9500ddd5e8e10c6cfe068b1b1ba61dea456e618022a04e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

Release files / maya_brew-0.3.0-py3-none-any.whl

Download URL maya_brew-0.3.0-py3-none-any.whl
Size 63.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9ca33245d1fc430f74071edff63ff569483c9de49ed25f67887453a9627deee5
BLAKE2b-256 checksum
How to use checksums
a2451a565de5b135b49f7800285f57852aed370fb2166cb09a4ef6a55440e74e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

Security for maya-brew 0.3.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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for maya_brew-0.3.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page