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.command_wrapper provides typed wrappers around selected maya.cmds commands, accepting brew objects and returning native node wrappers where appropriate. Return types may differ from Maya's conventions, including typed tuples instead of lists and enums instead of numeric values. maya_brew.cmds remains the raw Maya command module.

Currently wrapped commands:

  • createNode
  • 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.2.1

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.2.1
File Size Uploaded Provenance
maya_brew-0.2.1.tar.gz 72.7 kB With provenance Details

Built distribution (wheel)

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

Total release size: 133.0 kB

Release files / maya_brew-0.2.1.tar.gz

Download URL maya_brew-0.2.1.tar.gz
Size 72.7 kB
Tags Source
SHA-256 checksum
How to use checksums
9e83660cf0bc8ac1aa339770ed3b8cb5ca611e1e8171064cfe8c735cc979fc3c
BLAKE2b-256 checksum
How to use checksums
26aa42177970f321b331110b5f2a1a0ca7681c628d02680a17807163310a0397
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.2.1-py3-none-any.whl

Download URL maya_brew-0.2.1-py3-none-any.whl
Size 60.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
30d19184157716230cb16fb899dc467687f41b85a9837fa9eb9b3896029f44ad
BLAKE2b-256 checksum
How to use checksums
bc9f406f2f49fd5749c7bcc7699698d86ef2a2d58ad5092dfa2a3ccc5c8acc92
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.2.1

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.2.1.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