Skip to main content

pydeno

A JS sandbox for AI agents

pydeno = python + deno: a Python-embeddable JavaScript sandbox built on deno_core and V8.

Run untrusted, LLM-generated JavaScript safely in Python — real V8, real isolation, real tool-calling.


Publish PyPI License Docs

Documentation · Examples · Issues

Retain one Runtime per session. A warm Runtime does a complete host tool call — JS calls a bound Python function, the op crosses the boundary, a value comes back — in ~13.4 µs, and ~3.8 µs for a bare eval. That is the fast path, and it is the one that supports tool calling. Measured with Criterion and pytest-benchmark — proven, not claimed: see BENCHMARKS.md.

What this is

Agent frameworks and tool-execution runtimes increasingly need to run JavaScript the model itself wrote — a code-generation step, a small data transform, a "call this JS snippet to compute the answer" tool. That code is untrusted by construction. pydeno embeds a real V8 isolate per runtime (via Rust/PyO3) so that code runs with no filesystem, no network, and no ambient Node.js APIs by default, with heap and wall-clock limits you set, and a real way to kill it if it doesn't stop on its own.

It is not a general "embed any JS anywhere" library and not a JS interpreter reimplemented in Python — it's V8, the same engine behind Chrome and Node.js, so the JS your model writes actually behaves like JS.

import pydeno

pydeno.bind_function("add", lambda a, b: a + b)
print(pydeno.eval("add(2, 3)"))  # 5

Why it's different

  • Real V8, not a toy interpreter. Every language quirk, every standard library method, every performance characteristic your model expects from "JavaScript" is the real thing.

  • Cross-thread termination that actually works. A watchdog thread calling .terminate() on a runaway while(true){} used to panic instead of stopping the code (pyo3_runtime.PanicException: Runtime is unsendable, but sent to another thread) — a real bug in the upstream design that meant a stuck agent tool call couldn't be killed from outside. TerminationHandle fixes this: it exposes only the Send + Sync part of V8's isolate handle, so a watchdog on a separate thread can interrupt execution safely. See upstream-divergence.md for the full root cause and proof; tests/test_termination_handle.py is the regression test.

    As of 0.2.0 this works on every shape of stuck script, not just runaway loops. terminate() used to be a no-op against a runtime parked on a pending promise — V8 only acts on a termination when it next enters JavaScript, and new Promise(() => {}) never does, so it was unkillable. The dispatcher now reads the termination flag between polls, killing all such shapes in ~1.7 ms, while while(true){} still dies the cheap way at ~0.12 ms and a killed runtime keeps its bound functions. See BENCHMARKS.md and tests/test_parked_termination.py.

  • A host-callback bridge for tool-calling from JS. bind_function/ bind_object let the sandboxed JS call back into Python — the primitive an agent needs when the model's JS wants to invoke a real tool, not just compute a value. ToolBridge builds the product shape on top: hand it a dict of callables and get a call budget, fail-closed name checking, and JS-catchable typed errors, instead of hand-rolling all three.

  • Tool errors JS can branch on. A Python exception raised inside a bound tool reaches JavaScript as a real Error whose name is the exception's class name, so the model's JS can tell "bad arguments" from "rate limited" from "tool not found" with a plain catch (e) { if (e.name === ...) } — rather than string-matching one flattened TypeError. The same name/message shape a JS exception already carries into Python, so the two directions are symmetric.

  • console.log you can actually read. Sandboxed console.* output can be routed back to a Python callback with RuntimeConfig(on_console=...), receiving structured (level, args) — the single most common thing you want when showing a model what its own script printed. Composes with enable_console rather than replacing it.

Get Started

pip install pydeno  # or uv pip install pydeno

Requires Python 3.10+ on macOS or Linux. pydeno is experimental — expect breaking changes between versions.

Quickstart: sandboxed eval, tool-calling, and a timeout

import asyncio

from pydeno import Runtime, RuntimeConfig

# Cap memory; the runtime terminates itself if JS tries to exceed it.
config = RuntimeConfig(max_heap_size=10 * 1024 * 1024)  # 10 MB


async def main():
    with Runtime(config) as runtime:
        # The tool-calling primitive: expose a Python function to the sandboxed JS.
        def get_weather(city: str) -> str:
            return f"72F and sunny in {city}"

        runtime.bind_function("getWeather", get_weather)

        # Model-generated JS calling back into your tool.
        result = runtime.eval("getWeather('Zurich')")
        print(result)  # "72F and sunny in Zurich"

        # Enforce a wall-clock timeout on code that might not terminate.
        try:
            await runtime.eval_async("while (true) {}", timeout=2.0)
        except Exception as exc:
            print(f"killed a runaway eval after 2s: {exc}")


asyncio.run(main())

Running an untrusted sync eval() you can't await? Grab a TerminationHandle before the call and .terminate() it from a watchdog thread — see tests/test_termination_handle.py for the exact pattern (and the bug it fixed, in docs/contributing/upstream-divergence.md).

Many tools, one budget

When the model gets more than one tool, ToolBridge gives you the whole surface — budget, name checking, typed errors — in one object:

from pydeno import Runtime, ToolBridge

bridge = ToolBridge(
    {"get_weather": get_weather, "send_email": send_email},
    max_calls=50,  # total tool calls this agent turn may make
)

with Runtime() as runtime:
    bridge.attach(runtime)
    runtime.eval("tools.get_weather('Zurich')")

The call that exceeds max_calls never reaches your Python function — JS gets a catchable ToolBudgetError.

Integrations

  • FastMCP tool bridge - expose FastMCP tools to sandboxed JS via bind_function and an in-process fastmcp.Client
  • pydantic-ai "code mode" agent - an agent tool where the model submits one JS batch script instead of many separate tool calls, run safely with a timeout
  • ToolBridge - hand a sandbox several Python tools with a total call budget, typed errors the model's JS can branch on, and console.log routed back to Python
  • Vendored npm libraries - run real npm document-generation libraries (pptxgenjs, pdf-lib) from their browser bundles inside the sandbox; see the guide for what makes a library a good candidate
  • Arrow IPC dataframes - move 100k+ row tables into the sandbox as Arrow IPC bytes instead of JSON objects (5 ms vs 253 ms, and it works at the default 10 MB serialization limit that rejects the JSON payload); see the guide

Documentation

  • Quick Start
  • Concepts: runtimes, type conversion, resource controls
  • Guides: binding functions, module loading, snapshots
  • Use cases: AI agent sandboxes, workflow runners, plugin systems
  • API reference
  • Agent skill: an Agent Skills SKILL.md that teaches coding agents (Claude Code and others) to use pydeno correctly. Copy skills/pydeno/ into your agent's skills directory, e.g. .claude/skills/
  • Benchmarks — measured, reproducible numbers, including the pooling comparison above

Metadata

Release files for pydeno 0.4.3

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

Source distribution (sdist)

Source distribution for pydeno 0.4.3
File Size Uploaded
pydeno-0.4.3.tar.gz 743.4 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for pydeno 0.4.3
File
pydeno-0.4.3-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl PyPy 3.11 PyPy 3.11 7.3 Linux glibc 2.28+ x86-64 Details
pydeno-0.4.3-cp314-cp314t-manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ x86-64 Details
pydeno-0.4.3-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
pydeno-0.4.3-cp314-cp314-manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64 Details
pydeno-0.4.3-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
pydeno-0.4.3-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
pydeno-0.4.3-cp313-cp313-manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64 Details
pydeno-0.4.3-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
pydeno-0.4.3-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
pydeno-0.4.3-cp312-cp312-manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64 Details
pydeno-0.4.3-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
pydeno-0.4.3-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
pydeno-0.4.3-cp311-cp311-manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64 Details
pydeno-0.4.3-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
pydeno-0.4.3-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
pydeno-0.4.3-cp310-cp310-manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64 Details

Total release size: 328.3 MB

Release files / pydeno-0.4.3.tar.gz

Download URL pydeno-0.4.3.tar.gz
Size 743.4 kB
Tags Source
SHA-256 checksum
How to use checksums
a3cb5c7058d9cee3103ac04124bde43de08c36f99020084ce2e5f2b43c758b72
BLAKE2b-256 checksum
How to use checksums
b9852c9f56f2f142f6758e9678d664e506c392de543abc329966b5b19bb155e5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 27, 2026.

Transparency log

Release files / pydeno-0.4.3-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl

Download URL pydeno-0.4.3-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl
Size 21.9 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
4469e843f1ffaadac7e8eaa197fcd0409f1f20e7c01998b9c79ca3638379dab0
BLAKE2b-256 checksum
How to use checksums
41d36d218491e634ded1e8b3a31431afd1f6c966854fc36e28eb7e724573e902
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 27, 2026.

Transparency log

Release files / pydeno-0.4.3-cp314-cp314t-manylinux_2_28_x86_64.whl

Download URL pydeno-0.4.3-cp314-cp314t-manylinux_2_28_x86_64.whl
Size 21.9 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
1ee3139cb51da571f2bf61710de32e156eeb42fc70328599900ad83ca59f13b9
BLAKE2b-256 checksum
How to use checksums
6387e2f2a3da3bb64b49f0b80b5ef68d206722700bfefbe3a367a4bc91cf53bc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 27, 2026.

Transparency log

Release files / pydeno-0.4.3-cp314-cp314-win_amd64.whl

Download URL pydeno-0.4.3-cp314-cp314-win_amd64.whl
Size 18.9 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
89ac1660cabbabf55e732f28ca51becf38f9ef711ee5fa11f0e668eff1a6ffe0
BLAKE2b-256 checksum
How to use checksums
309711fb04249b726daa3e49edd94746f86fd78f51b9c235b10bacde31c1b271
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 27, 2026.

Transparency log

Release files / pydeno-0.4.3-cp314-cp314-manylinux_2_28_x86_64.whl

Download URL pydeno-0.4.3-cp314-cp314-manylinux_2_28_x86_64.whl
Size 21.9 MB
Tags CPython 3.14 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
e7f584cd69a025d196c9b24ceaf35365b6114509901dd631f1815727a3abe9b4
BLAKE2b-256 checksum
How to use checksums
f3bdff69b9679c4997ad712ccf33c7ab7bb5ffff729aff807ff41110be4adb58
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 27, 2026.

Transparency log

Release files / pydeno-0.4.3-cp314-cp314-macosx_11_0_arm64.whl

Download URL pydeno-0.4.3-cp314-cp314-macosx_11_0_arm64.whl
Size 19.9 MB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
cd1cec7d2b48920ac646077578f62bcbd99fea3f1f20346a8e571e29b2543fbd
BLAKE2b-256 checksum
How to use checksums
f32e4f7bcc059c7b39ab2ae37d8d53de5d9b605b24843561d2c7ef1905186a92
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 27, 2026.

Transparency log

Release files / pydeno-0.4.3-cp313-cp313-win_amd64.whl

Download URL pydeno-0.4.3-cp313-cp313-win_amd64.whl
Size 19.0 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
c04fe4091805b9974cd5138e8e3e87a896b7e4fd603f6dd71d25a6b05396fb9d
BLAKE2b-256 checksum
How to use checksums
16f54e316aaade971f392c3c68f3e91f53b8ee577171fe5a3249e6f7aaf17c17
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 27, 2026.

Transparency log

Release files / pydeno-0.4.3-cp313-cp313-manylinux_2_28_x86_64.whl

Download URL pydeno-0.4.3-cp313-cp313-manylinux_2_28_x86_64.whl
Size 21.9 MB
Tags CPython 3.13 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
bc1177ba544f0e7e5369e54f11ab28760bf7f81aa74c9ce1956b69ec1b462777
BLAKE2b-256 checksum
How to use checksums
9cd8d867743d3a0b8bf3515a79949a83f6aaad7aa58e8ab8934e943b55357e62
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 27, 2026.

Transparency log

Release files / pydeno-0.4.3-cp313-cp313-macosx_11_0_arm64.whl

Download URL pydeno-0.4.3-cp313-cp313-macosx_11_0_arm64.whl
Size 19.9 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
7e547acd738cb3d320659398be2399be2b19c9d2c259c42f8a1f766bc6db3c0e
BLAKE2b-256 checksum
How to use checksums
a88dc47aa6d079cab9821e83aaa02b6e465aa41d5b088ef9ab5fba59205ef930
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 27, 2026.

Transparency log

Release files / pydeno-0.4.3-cp312-cp312-win_amd64.whl

Download URL pydeno-0.4.3-cp312-cp312-win_amd64.whl
Size 19.0 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
2ec98be3850e089ba55cf2074005285407b402ab24e0a07ed74091b653a1b80b
BLAKE2b-256 checksum
How to use checksums
a0c361267b7ee17bf18c36a5ce3a9039112b01bf226c3d82b0b89a43b5514e56
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 27, 2026.

Transparency log

Release files / pydeno-0.4.3-cp312-cp312-manylinux_2_28_x86_64.whl

Download URL pydeno-0.4.3-cp312-cp312-manylinux_2_28_x86_64.whl
Size 21.9 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
1ea4923c5365e7662a50077f29e029305117ccf84196c08f8aea26a276016459
BLAKE2b-256 checksum
How to use checksums
133b41c94bfac7fb4a2b17f47f7e12c6d04dcb3d1a12451bb88e9753925a5a9f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 27, 2026.

Transparency log

Release files / pydeno-0.4.3-cp312-cp312-macosx_11_0_arm64.whl

Download URL pydeno-0.4.3-cp312-cp312-macosx_11_0_arm64.whl
Size 19.9 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
3385cd811d785616e714b9344366110553fc9e383e8a0e4c2e62f0f3b2d3f0dc
BLAKE2b-256 checksum
How to use checksums
0c2af894c63ae6c9baf17f2d888d4775128d91e3a5fa3a895e53a59a7a4a17e2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 27, 2026.

Transparency log

Release files / pydeno-0.4.3-cp311-cp311-win_amd64.whl

Download URL pydeno-0.4.3-cp311-cp311-win_amd64.whl
Size 18.9 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
cba8a528fc4d53a3ceba9f64bb7543b970a7cd203eaaf57dd4d377175d39bea7
BLAKE2b-256 checksum
How to use checksums
878e5af980cc037b3a55d9b176ee927f762296ab1c79bf9e5117bbd47b11d696
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 27, 2026.

Transparency log

Release files / pydeno-0.4.3-cp311-cp311-manylinux_2_28_x86_64.whl

Download URL pydeno-0.4.3-cp311-cp311-manylinux_2_28_x86_64.whl
Size 21.9 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
01f5a1be8f839e951b3ad04fa8386f88d14a24c8a21af263ab0a905bac6ee76e
BLAKE2b-256 checksum
How to use checksums
306bc17e0c99c3cef39efb1359caf55af7860ef77cbd77afe8dffbea9c7bc145
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 27, 2026.

Transparency log

Release files / pydeno-0.4.3-cp311-cp311-macosx_11_0_arm64.whl

Download URL pydeno-0.4.3-cp311-cp311-macosx_11_0_arm64.whl
Size 19.9 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
81e316a80af9fd533c2b260c327280a2c87b2af627c59568655634feb84e0093
BLAKE2b-256 checksum
How to use checksums
d5be938d26f86d748f31eca9728325d91c3febb57124d885696c637345cfb5b7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 27, 2026.

Transparency log

Release files / pydeno-0.4.3-cp310-cp310-win_amd64.whl

Download URL pydeno-0.4.3-cp310-cp310-win_amd64.whl
Size 18.9 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
45f0c41b7e479ef6b584d3d75cd65f003d2280191fd762086fc34c9c96df238f
BLAKE2b-256 checksum
How to use checksums
a8d45979c9256cc856b9d2d130c5f9b35c9d8376b2bed67aa3c70b9aac0e0592
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 27, 2026.

Transparency log

Release files / pydeno-0.4.3-cp310-cp310-manylinux_2_28_x86_64.whl

Download URL pydeno-0.4.3-cp310-cp310-manylinux_2_28_x86_64.whl
Size 21.9 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
372ae5fa67ea887d59d09f0666258d795f2230f8e469926b47b59a2db50807fd
BLAKE2b-256 checksum
How to use checksums
7cae717eae120ca3c45e704d9be316e293d2d4e6c4ed0fe9a6c1e973ea9c7a3e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 27, 2026.

Transparency log

Release history Release notifications | RSS feed

0.4.5

24 release files

0.4.4

17 release files

This release

0.4.3 This release

17 release files

0.4.2

17 release files

0.4.1

17 release files

0.4.0

17 release files

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