> This page is for NeMo Relay, version v0.10.0.
> For other versions, use one of these documentation indexes:
> - Latest (v0.10.0) (default): https://docs.nvidia.com/nemo/relay/latest/llms.txt
> - dev: https://docs.nvidia.com/nemo/relay/dev/llms.txt
> - v0.10.0: https://docs.nvidia.com/nemo/relay/v0.10.0/llms.txt
> - v0.9.4: https://docs.nvidia.com/nemo/relay/v0.9.4/llms.txt
> - v0.8.4: https://docs.nvidia.com/nemo/relay/v0.8.4/llms.txt
> - v0.7.3: https://docs.nvidia.com/nemo/relay/v0.7.3/llms.txt
> - v0.6.0: https://docs.nvidia.com/nemo/relay/v0.6.0/llms.txt
> - v0.5.0: https://docs.nvidia.com/nemo/relay/v0.5.0/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/nemo/relay/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/nemo/relay/_mcp/server.

# nemo_relay.scope

> Scope stack operations.

Generated from `python/nemo_relay/scope.py`.

Module `nemo_relay.scope`.

Scope stack operations.

## Functions

### `get_handle`

```python
def get_handle() -> ScopeHandle
```

Return the current top-of-stack `ScopeHandle`.

### `push`

```python
def push(name: str, scope_type: ScopeType, *, handle: ScopeHandle | None = None, attributes: ScopeAttributes | None = None, data: Json | None = None, metadata: Json | None = None, input: Json | None = None, timestamp: datetime | None = None) -> ScopeHandle
```

Push a new child scope and return its handle.

### `pop`

```python
def pop(handle: ScopeHandle, *, output: Json | None = None, metadata: Json | None = None, timestamp: datetime | None = None) -> None
```

Pop a scope previously returned by `push()` or `scope()`.

### `event`

```python
def event(name: str, *, handle: ScopeHandle | None = None, data: Json | None = None, data_schema: DataSchema | None = None, metadata: Json | None = None, severity: LogSeverity | None = None, timestamp: datetime | None = None) -> None
```

Emit a `Mark` event under the current or provided scope.

### `metric`

```python
def metric(name: str, measurements: Sequence[MetricMeasurement], *, handle: ScopeHandle | None = None, metadata: Json | None = None, timestamp: datetime | None = None) -> None
```

Emit a validated group of OpenTelemetry metric recording operations.

### `scope`

```python
def scope(name: str, scope_type: ScopeType, *, handle: ScopeHandle | None = None, attributes: ScopeAttributes | None = None, data: Json | None = None, metadata: Json | None = None, input: Json | None = None, timestamp: datetime | None = None, end_timestamp: datetime | None = None) -> Iterator[ScopeHandle]
```

Create a scope for the duration of a `with` block.