Skip to content

Tunnel

@final
class Tunnel

A running tunnel. Use as a context manager, or call stop().

Keep a reference: dropping this object stops the tunnel and cuts its open connections.

Tunnel declares no __new__ or __init__, so it is not constructed directly: an instance comes back from another call in this package.

local_address: str

The local address to connect to, host:port, with the port the OS picked.

running: bool

Whether the tunnel is still serving.

def stop(timeout: SupportsFloat | SupportsIndex | None = None) -> TunnelReport

Stops accepting, waits for the connections still open to end, and returns the report.

With timeout, connections still open after that many seconds are cut and listed as "failed". Without it, a client that keeps its connection open keeps this waiting. Callable again, with the same report.

def stop_async(timeout: SupportsFloat | SupportsIndex | None = None) -> TunnelReport

The awaitable twin of stop.

def __aenter__() -> Tunnel

async with session.tunnel(...) as t:.

def __aexit__(
exc_type: Any | None = None,
exc_value: Any | None = None,
traceback: Any | None = None,
) -> bool

__exit__, awaited.

def __enter__() -> Tunnel
def __exit__(
exc_type: Any | None = None,
exc_value: Any | None = None,
traceback: Any | None = None,
) -> bool

Stops the tunnel, waiting for its open connections. An error stopping it doesn’t mask an exception already in flight.

def __repr__() -> str

This page is generated from bindings/microvms-py/microvms.pyi by Griffe 2.3.0, run from site/scripts/gen-reference.mjs on every pnpm run sync, so an edit made here is overwritten by the next run.

To change the page, change the doc comment in the binding’s Rust source, then regenerate the declarations with mise run stubs. mise run stubs:check fails when the committed file no longer matches the source.