nemo_gym.sandbox.api

View as Markdown

Provider-neutral public sandbox API.

Module Contents

Classes

NameDescription
AsyncSandboxAsync sandbox object backed by a runtime provider.
SandboxSynchronous wrapper around AsyncSandbox.
_AsyncLoopRunnerRun async sandbox operations for sync callers.

Data

SYNC_LOOP_CLOSE_TIMEOUT_S

SYNC_OPERATION_TIMEOUT_S

T

API

class nemo_gym.sandbox.api.AsyncSandbox(
provider: collections.abc.Mapping[str, typing.Any] | nemo_gym.sandbox.providers.SandboxProvider,
spec: nemo_gym.sandbox.providers.SandboxSpec | None = None
)

Async sandbox object backed by a runtime provider.

_handle
SandboxHandle | None = None
_provider
async
nemo_gym.sandbox.api.AsyncSandbox.__aexit__(
exc_type: typing.Any,
exc_val: typing.Any,
exc_tb: typing.Any
) -> None
async
nemo_gym.sandbox.api.AsyncSandbox._require_handle() -> nemo_gym.sandbox.providers.SandboxHandle
nemo_gym.sandbox.api.AsyncSandbox.download(
remote_path: str,
local_path: pathlib.Path | str
) -> None
async
nemo_gym.sandbox.api.AsyncSandbox.exec(
command: str,
cwd: str | None = None,
env: dict[str, str] | None = None,
timeout_s: int | float | None = 180,
user: str | int | None = None
) -> nemo_gym.sandbox.providers.SandboxExecResult
async
nemo_gym.sandbox.api.AsyncSandbox.start(
spec: nemo_gym.sandbox.providers.SandboxSpec | None = None
) -> nemo_gym.sandbox.api.AsyncSandbox
async
nemo_gym.sandbox.api.AsyncSandbox.status() -> nemo_gym.sandbox.providers.SandboxStatus
async
nemo_gym.sandbox.api.AsyncSandbox.stop() -> None
async
nemo_gym.sandbox.api.AsyncSandbox.upload(
local_path: pathlib.Path | str,
remote_path: str
) -> None
async
class nemo_gym.sandbox.api.Sandbox(
provider: collections.abc.Mapping[str, typing.Any] | nemo_gym.sandbox.providers.SandboxProvider,
spec: nemo_gym.sandbox.providers.SandboxSpec | None = None
)

Synchronous wrapper around AsyncSandbox.

_async_sandbox
_runner
= _AsyncLoopRunner()
nemo_gym.sandbox.api.Sandbox.__del__() -> None
nemo_gym.sandbox.api.Sandbox.__exit__(
exc_type: typing.Any,
exc_val: typing.Any,
exc_tb: typing.Any
) -> None
nemo_gym.sandbox.api.Sandbox.download(
remote_path: str,
local_path: pathlib.Path | str
) -> None
nemo_gym.sandbox.api.Sandbox.exec(
command: str,
cwd: str | None = None,
env: dict[str, str] | None = None,
timeout_s: int | float | None = 180,
user: str | int | None = None
) -> nemo_gym.sandbox.providers.SandboxExecResult
nemo_gym.sandbox.api.Sandbox.start(
spec: nemo_gym.sandbox.providers.SandboxSpec | None = None
) -> nemo_gym.sandbox.api.Sandbox
nemo_gym.sandbox.api.Sandbox.status() -> nemo_gym.sandbox.providers.SandboxStatus
nemo_gym.sandbox.api.Sandbox.stop() -> None
nemo_gym.sandbox.api.Sandbox.upload(
local_path: pathlib.Path | str,
remote_path: str
) -> None
class nemo_gym.sandbox.api._AsyncLoopRunner(
wait_timeout_s: float = SYNC_OPERATION_TIMEOUT_S,
close_timeout_s: float = SYNC_LOOP_CLOSE_TIMEOUT_S
)

Run async sandbox operations for sync callers.

_loop
= asyncio.new_event_loop()
_ready
= threading.Event()
_thread
nemo_gym.sandbox.api._AsyncLoopRunner._ensure_can_block(
operation: str
) -> None
nemo_gym.sandbox.api._AsyncLoopRunner._run_loop() -> None
nemo_gym.sandbox.api._AsyncLoopRunner._wait_for_result(
operation: str,
future: concurrent.futures.Future[nemo_gym.sandbox.api.T]
) -> nemo_gym.sandbox.api.T
nemo_gym.sandbox.api._AsyncLoopRunner.call(
operation: str,
func: collections.abc.Callable[[], nemo_gym.sandbox.api.T]
) -> nemo_gym.sandbox.api.T
nemo_gym.sandbox.api._AsyncLoopRunner.close() -> None
nemo_gym.sandbox.api._AsyncLoopRunner.run(
operation: str,
awaitable_factory: collections.abc.Callable[[], collections.abc.Awaitable[nemo_gym.sandbox.api.T]]
) -> nemo_gym.sandbox.api.T
nemo_gym.sandbox.api.SYNC_LOOP_CLOSE_TIMEOUT_S = 5.0
nemo_gym.sandbox.api.SYNC_OPERATION_TIMEOUT_S = 3600.0
nemo_gym.sandbox.api.T = TypeVar('T')