Skip to main content

Python bindings for the maya C++26 TUI framework

Project description

maya-py

Python bindings for maya — a C++26 TUI framework with flexbox layout, a SIMD cell-diff renderer, and an Elm-style runtime. maya-py gives you a dead-simple Python API for building styled terminal UIs and interactive apps.

import maya_py as maya
from maya_py import card, field, b, hr

maya.show(card(
    b("maya-py").fg("sky"),
    hr(20),
    field("Status", "Online", value_color="green"),
    field("Region", "us-east-1"),
    title="service",
))

That's the whole program. Strings are UI — no manual element wrapping.

Documentation

A full reference manual lives in docs/:

  • Getting Started — install, first UI, first app.
  • Text & StyleT, markup helpers, colors.
  • Layoutcol, row, card, field, hr, options.
  • Apps — the App class, key bindings, state, the view.
  • Widgets — 44 native renderers: charts, controls, agent UI, scrolling.
  • Renderingshow, to_string, animate, run.
  • Performancememo, the boundary tax, benchmarks.
  • API Reference — every public symbol.
  • Low-Level API — primitives and the native binding.
  • Distribution — standalone wheels for old machines.

The 30-second tour

Text: just style strings

from maya_py import T, b, i, dim_text, c

b("bold")                 # bold
T("hi").bold.fg("sky")     # fluent chain
c("warn", "orange")        # colored
T("x").bg("red").fg("white")

Colors accept names ("red", "sky", "gold"), hex ("#ff8800", "#f80"), tuples ((255, 128, 0)), or ints (0xFF8800).

Layout: stacks that take bare strings

from maya_py import col, row, card, field, hr

col("top", "middle", "bottom")          # vertical
row("left", "right", gap=2)             # horizontal
card("body", title="hi", pad=1)          # bordered box
field("Name", "Ada")                     # "Name: Ada"
hr(40)                                   # horizontal rule

col / row / card accept the full maya flexbox surface as keywords:

  • box model: pad, margin, gap (int or 1/2/4-tuples)
  • border: border ("round"/"double"/"bold"/"dashed"/...), border_color, border_sides=sides(top=..., left=...), title, and positioned border_text=("Title", Top, Center) / border_text_end
  • sizing: width, height, min_width/max_width, min_height/max_height — each takes an int (cells), "50%", a float like 0.5, "auto", or pct(50)/cells(20)/auto()
  • flex: grow, shrink, basis, align, align_self, justify, wrap ("wrap"/"nowrap"/"reverse"), overflow ("hidden"/"scroll")
  • style: bg, fg, style=maya.style(...)

Full layout power

Everything maya C++ can express, the Python API can too:

from maya_py import T, col, row, card, center, stack, grow, component, pct, cells, sides

# percent widths + a flex child that fills the rest
row(
    card("nav", width=pct(30), title="sidebar"),
    grow(card("main content", title="body")),   # expands to fill
    gap=1,
)

# center anything in a region
center("ready", width=cells(20), height=5, border="round")

# z-stack: layers paint on top; the first sets the size
stack(card("  panel  ", height=6), T("NEW").fg("red").bold)

# partial borders
card("footer", border_sides=sides(top=True, right=False, bottom=False, left=False))

# a size-aware widget — render_fn(width, height) draws to fit its box
def bar(w, h):
    filled = int(w * 0.4)
    return T("█" * filled + "░" * (w - filled)).fg("green")
col("Loading", component(bar, height=1))

Widgets: maya's native renderers

maya ships a library of ready-made widgets — they render through the same C++ renderer maya uses, then drop straight into any layout:

from maya_py import col, row, sparkline, gauge, progress, badge, table, bar_chart

col(
    sparkline([3, 1, 4, 1, 5, 9, 2, 6], label="req/s", color="sky", show_last=True),
    gauge(0.72, "load", style="bar"),            # "arc" or "bar"
    progress(0.55, "build", width=24, fill="lime"),
    row(badge("PASS", kind="success"), badge("SKIP", kind="warning"), gap=1),
    table(["Name", ("Score", 0, "right")],       # (header, width, align)
          [["Ada", 99], ["Bob", 7]], bordered=True, title="top"),
    bar_chart([("jan", 4), ("feb", 9), ("mar", 6)]),
    gap=1,
)

Available — every color argument takes a name / (r,g,b) / "#rrggbb" / Color, same as everywhere else:

  • charts & meters: sparkline, gauge, progress, bar_chart, line_chart, heatmap, flame_chart, waterfall
  • controls (rendered in any state — pass checked/on/selected/cursor): checkbox, toggle, radio, select, slider, button
  • text & labels: badge, divider, spinner, callout, status_banner, breadcrumb, tabs, gradient, link, title_chip, model_badge, file_ref, markdown
  • structure & nav: table, tree, list_view, menu, disclosure, key_help, calendar, timeline, picker (bordered command palette)
  • agent UI: thinking, todo_list, toast, inline_diff
  • graphics: image (1-bit braille), canvas (color half-block grid), Canvas (imperative drawing surface: set_pixel/line/rect/fill)
from maya_py import col, row, checkbox, slider, todo_list, timeline, tree

col(
    checkbox("Ship it", checked=True),
    slider(0.6, "volume", width=24, fill="sky"),
    todo_list([("design", "completed"), ("build", "in_progress"), "test"],
              description="sprint", status="running"),
    timeline([("clone", "", "0.4s", "completed"),
              ("compile", "", "", "in_progress", 8)]),
    tree({"label": "src", "expanded": True,
          "children": [{"label": "main.py"}, {"label": "util.py"}]}),
    gap=1,
)

List/tuple inputs are flexible: list items accept "str", (label, description, icon), or {...} dicts; timeline/todo statuses accept strings ("completed", "in_progress", ...) or the exported enums (TaskStatus, TodoItemStatus, ToastLevel, ButtonVariant).

Scrolling: viewport + scrollbar

Clip tall/wide content to a window and pair it with a live scrollbar. Scrolling just works with no handler code — exactly like maya, the run loop auto-forwards ↑↓ / PgUp / PgDn / Home / End and the mouse wheel + scrollbar drag to every on-screen scroll state:

from maya_py import App, col, row, T, scroll_state, viewport, scrollbar

app = App("log", mouse=True)            # mouse=True for wheel + thumb drag
s = scroll_state()                      # auto-dispatch on (the maya default)
app.state(s=s)
content = col(*[T(f"line {i}") for i in range(200)])

@app.on("q", "esc")
def quit(st): app.stop()

@app.view
def view(st):
    return row(
        viewport(content, st.s, height=14, grow=1),   # 14-row window, fills width
        scrollbar(st.s, 14, style="neon", thumb_color="sky"),
        gap=1,
    )

app.run()

That's the whole thing — no scroll handler. viewport(content, state, width=, height=, grow=) clips + scrolls (0 on an axis = fill; grow=1 expands to fill its row/column so a sibling scrollbar pins to the edge). scrollbar(state, size, axis="y"|"x", style=, thumb_color=, track_color=) draws the bar; style is a preset name — line, block, slim, heavy, double, dotted, dashed, braille, ascii, shadow, minimal, neon, retro, danger, pixel. The ScrollState exposes x/y/max_x/max_y, scroll_by, scroll_to, scroll_to_top/bottom, at_top()/at_bottom(), and viewport_bounds (the painted rect, for click hit-testing).

Need custom routing (several independent scroll regions)? Set state.auto_dispatch = False and call scroll_handle(state, ev) yourself inside @app.on_key / @app.on_mouse. Don't do both — that double-scrolls.

Apps: a class with decorators, no event loop

from maya_py import App, card, b

app = App("counter")
app.state(n=0)

@app.on("+", "=")
def inc(s): s.n += 1

@app.on("-")
def dec(s): s.n -= 1

@app.on("q", "esc")
def quit(s): app.stop()

@app.view
def view(s):
    return card(b(f"Count: {s.n}").fg("sky"), title="counter")

app.run()

Key names: single chars ("q", "+"), "up"/"down"/"left"/"right", "enter", "esc", "space", "tab", "ctrl+c", "alt+x", etc. Handlers get the state object; the view re-renders every frame.

Mouse: clicks, scroll, drag

Decorate handlers for mouse input — registering any of them auto-enables mouse reporting (no mouse=True needed):

from maya_py import App, card

app = App("clicker")
app.state(hits=0, pos=(0, 0))

@app.on_click("left")          # "left" / "right" / "middle" / "any"
def click(s, col, row):        # col, row are 1-based screen cells
    s.hits += 1
    s.pos = (col, row)

@app.on_scroll
def scroll(s, direction):      # -1 up, +1 down
    s.hits += direction

@app.on_mouse
def any_mouse(s, ev):          # every mouse event (press/release/move/scroll)
    ...

@app.on("q", "esc")
def quit(s): app.stop()

@app.view
def view(s):
    return card(f"clicks {s.hits}  at {s.pos}", title="clicker")

app.run()

Low-level predicates work on any event too: mouse_clicked(ev, button), mouse_released(ev), mouse_moved(ev), scrolled_up/down(ev), mouse_pos(ev) -> (col, row) | None, mouse_button(ev), mouse_kind(ev), is_mouse(ev). Mouse needs a terminal that reports it (xterm, kitty, iTerm2, Windows Terminal, or tmux with set -g mouse on).

Animation

import maya_py as maya
from maya_py import animate, card

frames = "⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏"
n = 0
def render(dt):
    global n; n += 1
    return card(frames[n % len(frames)] + " working")
animate(render, fps=30)   # maya.quit() to stop

Examples

Every maya C++ example is ported 1:1 to Python — 34 of them, plus extras. Most are full apps you can drive; run any with PYTHONPATH=src python examples/NAME.py. A headless examples/smoke_all.py renders one frame of each (CI-friendly, no TTY needed).

Games & toys (half-block pixel rendering via examples/_halfblock.py):

  • snake.py — playable Snake (arrow keys / WASD).
  • breakout.py — Breakout/Arkanoid with bricks, comet trail, particles.
  • life.py — Conway's Game of Life with heat-aging palettes + patterns.
  • sorts.py — five sorting algorithms racing side by side.
  • maze.py — watch a maze carve itself (recursive backtracker) then a BFS flood-solve it; click to set the start cell, right-click the goal.

Graphics & sims (animate / App render loops):

  • doom_fire.py — the classic Doom fire effect, 3 palettes.
  • fluid.py — advection fluid / plasma with curl-noise velocity.
  • particles.py — a gravity particle fountain.
  • space.py — warp-speed starfield. space3d.py — rotating 3D wireframes.
  • raymarch.py — a real-time raymarched SDF scene (sphere + plane).
  • fps.py — a Wolfenstein-style textured raycaster with a minimap.
  • mandelbrot.py — a zooming coloured Mandelbrot. matrix.py — digital rain.
  • canvas.py — the Canvas drawing surface: lines, rects, a live plot.
  • clock.py — a live analog clock drawn on the Canvas (hands, ticks, arc).
  • gravity.py — an n-body gravity sandbox; mouse-hover crosshair, click to spawn an orbiting burst at the exact pixel.
  • boids.py — Reynolds flocking; the mouse leads or scatters the flock (precise, viewport-bounds hit-testing — no hardcoded offsets).

Dashboards & data:

  • dashboard.py — full-power layout (sidebar, z-stack, size-aware bars).
  • sysmon.py — live system monitor (sparklines, gauges, log feed).
  • stocks.py — stock ticker with sparklines + a gainers board.
  • spectrum.py — a faux audio spectrum analyzer. music.py — a player UI.
  • hacker.py — a "hollywood hacker" terminal of fake breaches.

Apps & agent UI:

  • deploy.py — a CI/CD pipeline dashboard with a live stage timeline.
  • chat.py — a chat client with bubbles + typing indicator.
  • messenger.py — multi-channel chat with unread badges + a composer.
  • ide.py — a VS Code / Zed-style mini IDE (tree, tabs, diagnostics, git).
  • agent.py / agent_session.py — Claude-Code-style agent sessions: thinking → tool cards → todo plan → streaming markdown answer.
  • widgets.py — one-shot widget showcase. widgets_gallery.py — live version.
  • markup.py — a GFM markdown render that flows into scrollback (pipe to less -R).
  • inline_progress.py — inline print + live (no alt-screen takeover).

Primitives & basics:

  • hello.py static card · counter.py / stopwatch.py / todo.py App basics · paint.py mouse painter · live_spinner.py inline animation.
  • scroll.py / scroll_clip.py / scroll_2d.py / scroll_slice.py / scroll_styles.py — every scrolling pattern (clip, two-axis, million-row slice, and all 15 scrollbar styles).

Run any of them:

PYTHONPATH=src python examples/agent_session.py

Install

The wheels are standalone — no compiler needed. maya-py ships precompiled binary wheels for CPython 3.9–3.14 on Linux (x86_64 + aarch64), macOS (universal2 — Apple Silicon and Intel in one wheel, macOS 11+), and Windows (x64), so on a normal machine you just:

pip install maya-py

That's it — the wheel already contains the compiled extension, and pip picks the right one for your OS / architecture / Python automatically.

Terminal note. maya speaks ANSI/VT escapes + truecolor + UTF-8. On Linux and macOS any modern terminal works. On Windows use Windows Terminal (the default on Windows 11; free on Windows 10) or any VT-capable host — the legacy cmd.exe console works too (maya enables ENABLE_VIRTUAL_TERMINAL_PROCESSING on startup), but Windows Terminal gives the best Unicode + color fidelity.

Installing straight from a GitHub Release (no PyPI)

If you'd rather not use PyPI (or want a specific build), install from the release assets. Let pip pick the right wheel for your Python:

pip install --find-links \
  https://github.com/1ay1/maya-py/releases/expanded_assets/v0.1.3 \
  maya-py

Or install a specific .whl by direct URL:

# e.g. CPython 3.13 on x86_64 Linux
pip install https://github.com/1ay1/maya-py/releases/download/v0.1.3/maya_py-0.1.3-cp313-cp313-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl

The Linux wheel works even on machines with a very old C++ toolchain (or none at all), because:

  • the wheel is built inside a manylinux_2_28 container, so it targets glibc 2.28 (2019) and runs on that-or-newer distros;
  • it statically links libstdc++/libgcc, so it doesn't need the host's (old) C++ runtime — it depends only on baseline libc/libm.

The macOS wheel targets macOS 11.0+ and uses the system libc++; the Windows wheel links the UCRT present on every Windows 10+ machine. Nothing on your machine is compiled at install time, so your system compiler is irrelevant.

No matching wheel? Build from the sdist

If no prebuilt wheel matches your platform/Python, install the source distribution — this compiles the extension locally and needs a C++23-capable toolchain and CMake ≥ 3.28:

  • Linux: GCC ≥ 14 or Clang ≥ 18
  • macOS: AppleClang ≥ 15 (Xcode 15 — xcode-select --install)
  • Windows: Visual Studio 2022 ≥ 17.10 (MSVC cl ≥ 19.40), "Desktop development with C++" workload
pip install \
  https://github.com/1ay1/maya-py/releases/download/v0.1.3/maya_py-0.1.3.tar.gz

The compile pulls maya in via CMake FetchContent and takes ~1–2 minutes (it builds maya from source). If your compiler is too old, the build aborts early with a clear, actionable message rather than a wall of template errors.

Development build

To hack on maya-py, build the extension in place (uses a sibling ../maya-src checkout if present, else clones maya):

cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j
cp build/_maya*.so src/maya_py/
PYTHONPATH=src python examples/hello.py

Wheels are produced by cibuildwheel via .github/workflows/wheels.yml — push a vX.Y.Z tag to build them and attach them to a GitHub Release automatically.

Low-level API

The friendly layer above is built on a thin primitive surface. You rarely need it, but it's there when you want raw control. box/text take explicit Style/Color objects:

maya.box(
    maya.text("Hello", maya.bold | maya.fg(255, 128, 0)),
    border=maya.Round, padding=1,
)
  • text(content, style=None, wrap=...), box(*children, **opts), vstack/hstack/zstack, center, blank(), nothing().
  • box opts mirror maya's BoxBuilder 1:1: direction, wrap, gap, padding, margin, border, border_color, border_sides, border_text, border_text_end, bg, fg, style, overflow, grow, shrink, basis, align, align_self, justify, and width/height/min_*/max_* (each accepts an int, "50%", "auto", or a Dimension).
  • component(fn, grow=..., width=..., height=...) — a lazy element whose fn(width, height) runs once layout allocates a size and returns the tree to fill it.
  • scroll_state(), viewport(content, state, width=, height=), scrollbar(state, size, axis=, style=), scroll_handle(state, ev) — the scrollable-window + scrollbar pair (maya's ScrollState + scrollbar_y/x).
  • Styles compose with |: maya.bold | maya.fg(255, 128, 0), or maya.style(fg=(80,220,120), bold=True).
  • render_to_string(element, width=80), print(element), live(render_fn, fps=30), run(event_fn, render_fn, ...).
  • Event predicates: key(ev, "q"), key_special(ev, SpecialKey.Up), ctrl(ev, "c"), alt(ev, "x"), any_key(ev), resized(ev).

Notes

maya's compile-time DSL (t<"...">, type-state pipes) is resolved by the C++ compiler and can't cross the Python boundary, so maya-py routes everything through maya's equivalent runtime builders. The element trees produced are identical — anything the DSL can express, the runtime API can too.

The widget functions wrap maya's own widget classes (Sparkline, Gauge, Table, ...) and return the Element they build, so what you see is maya's native rendering, not a Python reimplementation. Interactive controls that need maya's Program runtime + focus + signals (Input, TextArea, full List/Tree navigation) aren't wrapped — drive interactivity from the App class instead.

Performance

Honest numbers from examples/bench.py and examples/bench_live.py (30-row dashboard, this machine — yours will differ):

Rendering to a string (one-shot output). Here a tuned pure-Python renderer wins — building the element tree in Python and crossing pybind11 costs more than maya's native render saves:

path per render
maya-py (build + render) ~340 µs
pure-Python equivalent ~68 µs

~65% of maya-py's time is the Python tree construction + boundary crossing, not maya. So if you only render static output, a pure-Python lib like Rich will likely be faster.

Live redraw to a terminal (what maya is built for). When you redraw a frame and only part changed, maya's SIMD cell-diff emits only the changed cells. A string renderer must re-emit the whole frame:

path bytes written / frame
maya-py (diff) ~112 B
re-emit whole frame ~1238 B

maya writes ~11× fewer bytes to the terminal. On a real tty — especially over SSH or a slow connection — bytes-on-wire is the bottleneck, and this is a decisive win. This is the scenario maya was designed for.

Making it fast

Three levers close most of the Python-side gap:

  1. Fluent styling is free. T("x").bold.fg("sky") accumulates state in pure Python and makes a single boundary crossing when the element is built (4.8× faster than the naive one-call-per-.bold approach).

  2. Pass styled cells as tuples to skip the T objects. row/col accept (text, fg[, bg[, attrs]]) tuple specs directly — in a hot redraw path (tables, lists, dashboards) the throwaway T per cell is the dominant build cost, and the tuple form flattens the whole row in one boundary crossing. Byte-identical output, same API:

    from maya_py import row, T, c, DIM
    
    # reads nicer for one-off UI:
    row(T(name).fg("sky"), c(status, color), T(latency).dim, gap=2)
    # faster (tuple cells, zero T allocations — use in per-frame loops):
    row((name, "sky"), (status, color), (latency, None, None, DIM), gap=2)
    

    You can mix both, and any built Element / nested box / component child transparently falls back to the general path — so row(sidebar, grow(main)) still works. (trow/tcol are kept as back-compat aliases; new code can just use row/col.)

  3. memo caches unchanged sub-trees. In a live app, wrap builders whose inputs rarely change — the hot frame then does no Python tree construction, just maya's native diff:

    from maya_py import memo, card, col, b
    
    @memo
    def header(title, count):     # rebuilt only when title/count change
        return card(b(title), f"{count} items")
    
    def view(s):
        return col(header(s.title, len(s.items)), body(s))
    

Bottom line: building a UI in Python always costs Python calls, but the thing that actually matters in a terminal — the per-frame redraw — is now faster than a hand-tuned pure-Python renderer: maya's native layout + paint renders the cached tree in ~25µs vs ~70µs for the bespoke string-builder in examples/bench.py, while still doing real flexbox, wrapping, and a partial-frame diff. memo + tuple-cell row/col let the steady-state frame skip Python almost entirely.

License

MIT (same as maya).

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

maya_py-0.2.0.tar.gz (190.1 kB view details)

Uploaded Source

Built Distributions

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

maya_py-0.2.0-cp314-cp314-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.14Windows x86-64

maya_py-0.2.0-cp314-cp314-manylinux_2_28_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

maya_py-0.2.0-cp314-cp314-macosx_11_0_arm64.whl (2.0 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

maya_py-0.2.0-cp313-cp313-win_amd64.whl (1.0 MB view details)

Uploaded CPython 3.13Windows x86-64

maya_py-0.2.0-cp313-cp313-manylinux_2_28_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

maya_py-0.2.0-cp313-cp313-macosx_11_0_arm64.whl (2.0 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

maya_py-0.2.0-cp312-cp312-win_amd64.whl (1.0 MB view details)

Uploaded CPython 3.12Windows x86-64

maya_py-0.2.0-cp312-cp312-manylinux_2_28_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

maya_py-0.2.0-cp312-cp312-macosx_11_0_arm64.whl (2.0 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

maya_py-0.2.0-cp311-cp311-win_amd64.whl (1.0 MB view details)

Uploaded CPython 3.11Windows x86-64

maya_py-0.2.0-cp311-cp311-manylinux_2_28_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

maya_py-0.2.0-cp311-cp311-macosx_11_0_arm64.whl (2.0 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

maya_py-0.2.0-cp310-cp310-win_amd64.whl (1.0 MB view details)

Uploaded CPython 3.10Windows x86-64

maya_py-0.2.0-cp310-cp310-manylinux_2_28_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

maya_py-0.2.0-cp310-cp310-macosx_11_0_arm64.whl (2.0 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

maya_py-0.2.0-cp39-cp39-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.9Windows x86-64

maya_py-0.2.0-cp39-cp39-manylinux_2_28_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

maya_py-0.2.0-cp39-cp39-macosx_11_0_arm64.whl (2.0 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

Details for the file maya_py-0.2.0.tar.gz.

File metadata

  • Download URL: maya_py-0.2.0.tar.gz
  • Upload date:
  • Size: 190.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for maya_py-0.2.0.tar.gz
Algorithm Hash digest
SHA256 5003fc10feb5738e9dcf992a227e0a334a4716b893cac119024a8038012a86ee
MD5 cf09f295f7913f8bf0ec65e921988645
BLAKE2b-256 3bccc32e2cafb569520fee6be16fc49fef8b2688579a203cde393eeb099d011b

See more details on using hashes here.

Provenance

The following attestation bundles were made for maya_py-0.2.0.tar.gz:

Publisher: wheels.yml on 1ay1/maya-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file maya_py-0.2.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: maya_py-0.2.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for maya_py-0.2.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 674649dbdfd873fb48247b72c3fcd52d30863fa734cac6f0e7a3584349bcdcf5
MD5 2481ed81f450a36eb7c892bcbf1ea06f
BLAKE2b-256 c7f619aa2743068a3ae07ecde4f5a105703d06c4695f69944e03a1c3c7499ca7

See more details on using hashes here.

Provenance

The following attestation bundles were made for maya_py-0.2.0-cp314-cp314-win_amd64.whl:

Publisher: wheels.yml on 1ay1/maya-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file maya_py-0.2.0-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for maya_py-0.2.0-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 83bcc6244925dab443ff5a4e39ea2cb2203ddd97122df8a3bb1363c7c23c9a2e
MD5 8943a0b89e9218ad84b51d8e61c5aab3
BLAKE2b-256 7a52a9bc8087506d08488911c4fa94d72f23fa323956e166b56e6349cc544b3b

See more details on using hashes here.

Provenance

The following attestation bundles were made for maya_py-0.2.0-cp314-cp314-manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on 1ay1/maya-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file maya_py-0.2.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for maya_py-0.2.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c824b83231b8b21575415389359aa17233aca570dddb3dd83e83ebc6b6b8b1ac
MD5 7d1a74eb08ce42cdaaae679dbeaf11f9
BLAKE2b-256 22321cec934ddefed1aea4f7f3dfd320299a6e7459688762a4e2ecc8a4af0940

See more details on using hashes here.

Provenance

The following attestation bundles were made for maya_py-0.2.0-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: wheels.yml on 1ay1/maya-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file maya_py-0.2.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: maya_py-0.2.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for maya_py-0.2.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 fe3c4c4cb96d121598e121471b5376540e40d2ed6b7f2910c0eaa919c72c0db0
MD5 eacc22b5ad88ddbb7ac5fd793d3f218d
BLAKE2b-256 3f3f43bda8fb75c38aa35061b67b34bd0e6f1bed9dc5600bf85b4a3cee6929f9

See more details on using hashes here.

Provenance

The following attestation bundles were made for maya_py-0.2.0-cp313-cp313-win_amd64.whl:

Publisher: wheels.yml on 1ay1/maya-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file maya_py-0.2.0-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for maya_py-0.2.0-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1c63261f613ca8ee8778c99daec15379a35ff42b1aa212255d031140b5c2c4b6
MD5 1b52eb4b1b7702271785c0ff14c908bd
BLAKE2b-256 0854a42718ab847273f99c1d71a4ca18cad066f3ad4c93b2f57592809efd0e2c

See more details on using hashes here.

Provenance

The following attestation bundles were made for maya_py-0.2.0-cp313-cp313-manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on 1ay1/maya-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file maya_py-0.2.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for maya_py-0.2.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 99566a98caf2d9f3dc3e715cacf832b888cc9d139f873de03e98d2f100679bac
MD5 3cf7abe05f642615ece3aa4723cf3388
BLAKE2b-256 ea5df13f5248c41dd78555f92a9fd64cca8525ec022c7f2a084eb11c58b4522b

See more details on using hashes here.

Provenance

The following attestation bundles were made for maya_py-0.2.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: wheels.yml on 1ay1/maya-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file maya_py-0.2.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: maya_py-0.2.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for maya_py-0.2.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 9694174e6343634019db121eebabc7f30f4bdee543b4e31777b4ce3c1cf3e420
MD5 351e02892e529d7d364e9d008c3990c0
BLAKE2b-256 3571f307bd28cba9c14716ca16d58217b78ac2f816c6a008ef5051006dc2588f

See more details on using hashes here.

Provenance

The following attestation bundles were made for maya_py-0.2.0-cp312-cp312-win_amd64.whl:

Publisher: wheels.yml on 1ay1/maya-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file maya_py-0.2.0-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for maya_py-0.2.0-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 470d4bb2c5d9b15d22b669f7b723d33ba196d7a73ddcb37994f78b6d65225927
MD5 1dd8c223867c04d4617c1334d53a5d50
BLAKE2b-256 b9300b79b3991675e6473515e1d03601d788ac941fedd724e7287727907d15d3

See more details on using hashes here.

Provenance

The following attestation bundles were made for maya_py-0.2.0-cp312-cp312-manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on 1ay1/maya-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file maya_py-0.2.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for maya_py-0.2.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cf174189399a6c42e2680d425c0528045dc447fd0ef004a11635ba8bd79eca51
MD5 710ddf0d94fee1b0aa6b23d6922a52ac
BLAKE2b-256 eab8e0fa0b15e287ef8a386da415e2f92b1e3dbddb1ab61873d9cb426f627ae9

See more details on using hashes here.

Provenance

The following attestation bundles were made for maya_py-0.2.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: wheels.yml on 1ay1/maya-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file maya_py-0.2.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: maya_py-0.2.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for maya_py-0.2.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 686c5750fd3303410be7bf467d5b4b48e15faa3d524adcbeb25d41a4e615f4b8
MD5 68f5b2309ab29022aa0f9e31b10112f1
BLAKE2b-256 d965584710b39fc14a865678ac046fe1776147262ca0051659cc9c337de8119c

See more details on using hashes here.

Provenance

The following attestation bundles were made for maya_py-0.2.0-cp311-cp311-win_amd64.whl:

Publisher: wheels.yml on 1ay1/maya-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file maya_py-0.2.0-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for maya_py-0.2.0-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fe08271dc69dd3e68c8f376f861b576f09510be5e57945e400a7618a79282d86
MD5 39fb856f3e4b28d57b5675742e412d8c
BLAKE2b-256 605950303e5cfd6f253551254fdec434de6a4c7d859134e99a890448a897f0d1

See more details on using hashes here.

Provenance

The following attestation bundles were made for maya_py-0.2.0-cp311-cp311-manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on 1ay1/maya-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file maya_py-0.2.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for maya_py-0.2.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d80c535fff6a9a51d34fed30b7b5701b5623fd5df96a1c4ed6577d1c2c517014
MD5 b966b7fe0b14a0b669e58c273ab39b83
BLAKE2b-256 4b2382b7d4a2f3694eda86a62891ce4028d26dec11f64d6badbe938ffc6cb260

See more details on using hashes here.

Provenance

The following attestation bundles were made for maya_py-0.2.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: wheels.yml on 1ay1/maya-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file maya_py-0.2.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: maya_py-0.2.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for maya_py-0.2.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 660a9684a7e760c1a2cabf1064c3da44272e797f4b38bee9eec2b5485295f64e
MD5 c5da254ec4809c814253a16d549e4dc7
BLAKE2b-256 15a2e295527908cb01ad735df391945f851e0e369d4405d10fc3fba6a0e8400a

See more details on using hashes here.

Provenance

The following attestation bundles were made for maya_py-0.2.0-cp310-cp310-win_amd64.whl:

Publisher: wheels.yml on 1ay1/maya-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file maya_py-0.2.0-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for maya_py-0.2.0-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 38947256e6216d5dcb8dcd847c0c35aba37c8b58f2f12c08cc6fafb75c4e97bf
MD5 62900ff0eb1b8229bba6b983b144435d
BLAKE2b-256 5ca50a1f1195c1ce3c04f310c8e3be65ce44c27b2e1a77d9d74b65998912eb02

See more details on using hashes here.

Provenance

The following attestation bundles were made for maya_py-0.2.0-cp310-cp310-manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on 1ay1/maya-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file maya_py-0.2.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for maya_py-0.2.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e80cba85229f5df767790a38a101509b2987806a2a811378e33fb428dcc3c4bc
MD5 4e7c82a2a6553d59f4ccc270fe5ab2a5
BLAKE2b-256 3df6647af8e7ec57c4e73d1101df9b0d8ac855f2a02c9f264c2667a754eaf7b8

See more details on using hashes here.

Provenance

The following attestation bundles were made for maya_py-0.2.0-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: wheels.yml on 1ay1/maya-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file maya_py-0.2.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: maya_py-0.2.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for maya_py-0.2.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 5cf1740568d6e7715a32b4ba73025149f14326fdd9380e6b0618457e1b93f381
MD5 71c9280e2f5e4d4c7f6bae3a0268b036
BLAKE2b-256 ae3da0e99d2029b3396fa9170689305c0048410048db0947b560302fae59cddf

See more details on using hashes here.

Provenance

The following attestation bundles were made for maya_py-0.2.0-cp39-cp39-win_amd64.whl:

Publisher: wheels.yml on 1ay1/maya-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file maya_py-0.2.0-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for maya_py-0.2.0-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e9cc154b0fb9c1ec24ea5aaa5cfe8d7c3dbf5d20be839133b8185e8e8f0ccccd
MD5 10a2aeefc6d32e185506b324f5562e04
BLAKE2b-256 6e155d4f586d5d185915a80344a747087aa774505592e2bb6b6f40a3cb098414

See more details on using hashes here.

Provenance

The following attestation bundles were made for maya_py-0.2.0-cp39-cp39-manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on 1ay1/maya-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file maya_py-0.2.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for maya_py-0.2.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c59c775f5994b9e229f6831f8bd4385b4134740ce2d5237b17fc48e76baece7f
MD5 4600d96435de75f6753a5349229532f4
BLAKE2b-256 304f37e5054fd9bb6a0150c42d8160dd19995c7e064e49a10adad9fe31d3905e

See more details on using hashes here.

Provenance

The following attestation bundles were made for maya_py-0.2.0-cp39-cp39-macosx_11_0_arm64.whl:

Publisher: wheels.yml on 1ay1/maya-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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