PendingRun context described in the operation guide.
ContreeSession and ContreeAsyncSession save each command by default.
disposable=True leaves the session image unchanged. LazySession and
AsyncLazySession reuse a VM until snapshot. Snapshots are lightweight and can
run after every command, but they stop the VM. An unchanged filesystem can return
the same image UUID. See Save after every command.
class AbstractCommitPolicy
class AbstractSnapshotPolicy
Methods
notify()
required
None
should_snapshot()
Future[None]
A future shared by all readers of the current policy decision.
class ApiSuccessCommitPolicy
class AsyncLazySession
Attributes
BaseException | None
Literal['cold', 'starting', 'running', 'draining', 'snapshotting', 'failed', 'closed']
str
Methods
abort()
None
close()
default:"None"
None
RuntimeError – Saving failed; the cause is available as error.
TimeoutError – The caller’s wait expired; closing continues in the worker.
create_branch()
required
default:"None"
None
execute()
required
InstanceResult
grep()
required
default:"None"
default:"None"
default:"None"
default:"None"
default:"None"
default:"None"
default:"None"
GrepResult
Matching lines and the server’s truncation indicator.
inspect()
default:"None"
AsyncSessionInspector
A session-bound inspector; creating it starts no VM.
inspect_snapshot()
default:"None"
AsyncImageInspector
An inspector borrowing the underlying client and file transfer.
inspection_source()
default:"None"
AsyncIterator[AsyncImageInspector | str]
A saved image inspector or an active operation UUID.
RuntimeError – The session fails or closes before inspection starts.
TimeoutError – Admission or VM startup exceeds the timeout.
keepalive_request()
RunRequest
RunRequestThe non-disposable request used to start each VM.list_dir()
default:"'/'"
DirectoryList
Directory entries and their filesystem metadata.
observe()
required
required
None
prepare_request()
required
RunRequest
RunRequestThe effective request.ValueError – The request needs a disposable VM or startup-only options.
read_file()
required
bytes
The complete file as bytes.
rollback()
default:"1"
None
run()
default:"None"
InstanceResult
The subprocess result, including a nonzero exit code.
snapshot()
default:"None"
HistoryEntry | None
HistoryEntry | NoneThe saved history entry, or None if no VM has run yet.spawn()
default:"None"
AsyncSubprocessContract
spawn_request()
required
AsyncSubprocessContract
AsyncSubprocessContractThe subprocess handle from the operation factory.switch_branch()
required
None
write_file()
required
required
None
class AsyncOperation
Attributes
str
OperationContext | None
OperationContext | NoneOperationResponse | None
Methods
add_observer()
required
None
apply_files()
required
None
cancel()
None
claim_queue()
required
Queue[OperationEvent | None]
create_subprocess()
required
required
AsyncSubprocessContract
AsyncSubprocessContractA handle consuming the supplied event queue.events()
default:"None"
default:"None"
default:"None"
AsyncIterator[OperationEvent]
Events after
since whose process matches spid, when specified.TimeoutError – The subscription did not finish before timeout.
open_event_stream()
AsyncIterator[OperationEvent]
The single transport stream consumed by the operation.
pipe_stdin()
required
default:"1"
default:"True"
default:"65536"
StdinResult
StdinResultAcknowledged bytes, EOF delivery, and observed early completion.ValueError – chunk_size or spid is not positive.
pump()
None
route_event()
required
None
run()
required
default:"False"
default:"()"
default:"None"
default:"None"
default:"None"
default:"None"
default:"None"
default:"False"
default:"None"
AsyncSubprocessContract
send_stdin()
required
default:"1"
default:"True"
None
shutdown()
None
signal()
default:"None"
default:"1"
None
status()
default:"False"
OperationResponse
wait()
default:"None"
InstanceResult
class AsyncOperationContract
Attributes
str
OperationContext | None
OperationContext | NoneOperationResponse | None
Methods
add_observer()
required
None
apply_files()
required
None
cancel()
None
events()
default:"None"
default:"None"
default:"None"
AsyncIterator[OperationEvent]
pipe_stdin()
required
default:"1"
default:"True"
default:"65536"
StdinResult
run()
required
default:"False"
default:"()"
default:"None"
default:"None"
default:"None"
default:"None"
default:"None"
default:"False"
default:"None"
AsyncSubprocessContract
send_stdin()
required
default:"1"
default:"True"
None
shutdown()
None
signal()
default:"None"
default:"1"
None
status()
default:"False"
OperationResponse
wait()
default:"None"
InstanceResult
class AsyncSubprocessContract
Attributes
int
Methods
pipe_to()
default:"None"
default:"None"
InstanceResult
wait()
default:"None"
InstanceResult
class AsyncSubprocessHandle
Attributes
int
Methods
iterate()
AsyncIterator[OperationEvent]
pipe_to()
default:"None"
default:"None"
InstanceResult
wait()
default:"None"
InstanceResult
class CommandCountSnapshotPolicy
Methods
notify()
required
None
should_snapshot()
Future[None]
A future shared by all readers of the current policy decision.
class CompositeSnapshotPolicy
Methods
notify()
required
None
should_snapshot()
Future[None]
A future shared by all readers of the current policy decision.
class ContreeAsyncSession
Attributes
str
Methods
check_operation_endpoint()
required
None
ValueError – The current client targets a different endpoint.
commit_result()
required
default:"None"
default:"None"
default:"None"
default:"None"
HistoryEntry | None
HistoryEntry | Nonecreate_branch()
required
default:"None"
None
create_file_transfer()
AsyncFileTransfer
AsyncFileTransferA file-transfer component using the session client.create_inspector()
required
AsyncImageInspector
An inspector borrowing the client’s connection and file transfer.
create_operation()
required
required
AsyncOperationContract
AsyncOperationContractAn implementation of the matching operation lifecycle contract.create_operation_record()
required
OperationRecord
OperationRecordA pending record without local input sources.ValueError – The operation does not belong to this session.
create_pending_run()
required
default:"None"
PendingRun
PendingRunA one-use wrapper for awaiting or entering the operation.create_store()
AsyncStore
AsyncStoreA new memory store owned by this session.delete_branch()
required
None
detach()
required
OperationRecord
OperationRecordIts durable record. The caller still owns the live handle.ValueError – The operation does not belong to this session.
ensure_ready()
None
execute()
required
default:"None"
InstanceResult
The completed process result, including nonzero exit codes.
get_entry()
required
HistoryEntry
get_operation()
required
OperationRecord
grep()
required
default:"None"
default:"None"
default:"None"
default:"None"
default:"None"
default:"None"
default:"None"
GrepResult
Matching lines and the server’s truncation indicator.
history()
tuple[list[HistoryEntry], dict[str, list[str]]]
tuple[list[
HistoryEntry], dict[str, list[str]]]inspect()
AsyncImageInspector
A read-only view that borrows this session’s client and file transfer.
list_branches()
list[tuple[str, bool]]
list_dir()
default:"'/'"
DirectoryList
Directory entries and their filesystem metadata.
list_operations()
default:"True"
tuple[OperationRecord, ...]
tuple[
OperationRecord, …]navigate()
required
None
navigate_forward()
default:"1"
None
pending_files()
default:"None"
tuple[StagedFile, ...]
tuple[
StagedFile, …]prepare_environment()
required
dict[str, str] | None
A fresh mapping, or None when both inputs omit environment variables.
prepare_request()
required
RunRequest
RunRequestThe effective command with session defaults applied.read_file()
required
bytes
refresh_from_entry()
required
None
resolve_image()
required
str
The resolved image UUID.
restore_operation()
required
AsyncOperationContract
AsyncOperationContractAn unentered handle. Use wait_operation to reuse a stored final result.restore_operation_context()
required
OperationContext
OperationContextIts immutable source context, ready for an operation factory or policy.rollback()
default:"1"
None
run()
default:"None"
default:"None"
default:"()"
default:"None"
default:"None"
default:"None"
default:"False"
default:"None"
default:"None"
default:"False"
default:"None"
default:"False"
default:"None"
default:"None"
default:"None"
default:"None"
default:"None"
default:"None"
PendingRun
set_cwd()
required
None
set_env()
required
None
spawn()
default:"None"
default:"None"
default:"()"
default:"None"
default:"None"
default:"None"
default:"False"
default:"None"
default:"None"
default:"False"
default:"None"
default:"False"
default:"None"
default:"None"
default:"None"
default:"None"
default:"None"
AsyncOperationContract
spawn_detached()
default:"None"
OperationRecord
OperationRecordA durable record whose UUID can be passed to wait_operation.spawn_request()
required
AsyncOperationContract
AsyncOperationContractA bound operation whose context records the effective request.stage_files()
required
HistoryEntry
submit_request()
required
required
required
required
InstanceSpawnResponse
The transport response identifying the spawned operation.
switch_branch()
required
None
wait_operation()
required
default:"None"
default:"None"
InstanceResult
The stored process result, including nonzero exit codes.
write_file()
required
required
None
class ContreeSession
Attributes
str
Methods
check_operation_endpoint()
required
None
ValueError – The current client targets a different endpoint.
commit_result()
required
default:"None"
default:"None"
default:"None"
default:"None"
HistoryEntry | None
HistoryEntry | Nonecreate_branch()
required
default:"None"
None
create_file_transfer()
SyncFileTransfer
SyncFileTransferA file-transfer component using the session client.create_inspector()
required
ImageInspector
An inspector borrowing the client’s connection and file transfer.
create_operation()
required
required
OperationContract
OperationContractAn implementation of the matching operation lifecycle contract.create_operation_record()
required
OperationRecord
OperationRecordA pending record without local input sources.ValueError – The operation does not belong to this session.
create_store()
delete_branch()
required
None
detach()
required
OperationRecord
OperationRecordIts durable record. The caller still owns the live handle.ValueError – The operation does not belong to this session.
execute()
required
default:"None"
InstanceResult
The completed process result, including nonzero exit codes.
ValueError – The operation factory returned an unbound operation.
get_entry()
required
HistoryEntry
get_operation()
required
OperationRecord
grep()
required
default:"None"
default:"None"
default:"None"
default:"None"
default:"None"
default:"None"
default:"None"
GrepResult
Matching lines and the server’s truncation indicator.
history()
tuple[list[HistoryEntry], dict[str, list[str]]]
tuple[list[
HistoryEntry], dict[str, list[str]]]inspect()
ImageInspector
A read-only view that borrows this session’s client and file transfer.
list_branches()
list[tuple[str, bool]]
list_dir()
default:"'/'"
DirectoryList
Directory entries and their filesystem metadata.
list_operations()
default:"True"
tuple[OperationRecord, ...]
tuple[
OperationRecord, …]navigate()
required
None
navigate_forward()
default:"1"
None
pending_files()
default:"None"
tuple[StagedFile, ...]
tuple[
StagedFile, …]prepare_environment()
required
dict[str, str] | None
A fresh mapping, or None when both inputs omit environment variables.
prepare_request()
required
RunRequest
RunRequestThe effective command with session defaults applied.read_file()
required
bytes
refresh_from_entry()
required
None
resolve_image()
required
str
The resolved image UUID.
restore_operation()
required
OperationContract
OperationContractAn unentered handle. Use wait_operation to reuse a stored final result.restore_operation_context()
required
OperationContext
OperationContextIts immutable source context, ready for an operation factory or policy.rollback()
default:"1"
None
run()
default:"None"
default:"None"
default:"()"
default:"None"
default:"None"
default:"None"
default:"False"
default:"None"
default:"None"
default:"False"
default:"None"
default:"False"
default:"None"
default:"None"
default:"None"
default:"None"
default:"None"
default:"None"
InstanceResult
set_cwd()
required
None
set_env()
required
None
spawn()
default:"None"
default:"None"
default:"()"
default:"None"
default:"None"
default:"None"
default:"False"
default:"None"
default:"None"
default:"False"
default:"None"
default:"False"
default:"None"
default:"None"
default:"None"
default:"None"
default:"None"
OperationContract
spawn_detached()
default:"None"
OperationRecord
OperationRecordA durable record whose UUID can be passed to wait_operation.spawn_request()
required
OperationContract
OperationContractA bound operation whose context records the effective request.stage_files()
required
HistoryEntry
submit_request()
required
required
required
required
InstanceSpawnResponse
The transport response identifying the spawned operation.
switch_branch()
required
None
wait_operation()
required
default:"None"
default:"None"
InstanceResult
The stored process result, including nonzero exit codes.
write_file()
required
required
None
class DurationSnapshotPolicy
Methods
expired()
required
None
notify()
required
None
schedule_timer()
None
set_duration()
required
None
ValueError – The duration is not finite and positive.
should_snapshot()
Future[None]
A future shared by all readers of the current policy decision.
start_deferred()
None
class HistoryEntry
Attributes
tuple[str, ...]
tuple[StagedFile, ...]
tuple[
StagedFile, …]tuple[str, ...]
str
str
str
str | None
str
str
str | None
int | None
datetime
dict[str, str | int | float | bool | None | list[str | int | float | bool | None | list[JSONValue] | dict[str, JSONValue]] | dict[str, str | int | float | bool | None | list[JSONValue] | dict[str, JSONValue]]]
class IdleSnapshotPolicy
Methods
notify()
required
None
should_snapshot()
Future[None]
A future shared by all readers of the current policy decision.
class LazySession
Attributes
BaseException | None
Literal['cold', 'starting', 'running', 'draining', 'snapshotting', 'failed', 'closed']
str
Methods
abort()
None
close()
default:"None"
None
RuntimeError – Saving failed; the cause is available as error.
TimeoutError – The caller’s wait expired; closing continues in the worker.
create_branch()
required
default:"None"
None
execute()
required
InstanceResult
grep()
required
default:"None"
default:"None"
default:"None"
default:"None"
default:"None"
default:"None"
default:"None"
GrepResult
Matching lines and the server’s truncation indicator.
inspect()
default:"None"
SessionInspector
A session-bound inspector; creating it starts no VM.
inspect_snapshot()
default:"None"
ImageInspector
An inspector borrowing the underlying client and file transfer.
inspection_source()
default:"None"
Iterator[ImageInspector | str]
A saved image inspector or an active operation UUID.
RuntimeError – The session fails or closes before inspection starts.
TimeoutError – Admission or VM startup exceeds the timeout.
keepalive_request()
RunRequest
RunRequestThe non-disposable request used to start each VM.list_dir()
default:"'/'"
DirectoryList
Directory entries and their filesystem metadata.
observe()
required
required
None
prepare_request()
required
RunRequest
RunRequestThe effective request.ValueError – The request needs a disposable VM or startup-only options.
read_file()
required
bytes
The complete file as bytes.
rollback()
default:"1"
None
run()
default:"None"
InstanceResult
The subprocess result, including a nonzero exit code.
snapshot()
default:"None"
HistoryEntry | None
HistoryEntry | NoneThe saved history entry, or None if no VM has run yet.spawn()
default:"None"
SubprocessContract
spawn_request()
required
SubprocessContract
SubprocessContractThe subprocess handle from the operation factory.switch_branch()
required
None
write_file()
required
required
None
class Operation
Attributes
str
OperationContext | None
OperationContext | NoneOperationResponse | None
Methods
add_observer()
required
None
apply_files()
required
None
cancel()
None
claim_queue()
required
Queue[OperationEvent | None]
create_subprocess()
required
required
SubprocessContract
SubprocessContractA handle consuming the supplied event queue.events()
default:"None"
default:"None"
default:"None"
Iterator[OperationEvent]
Events after
since whose process matches spid, when specified.TimeoutError – The subscription did not finish before timeout.
open_event_stream()
Iterator[OperationEvent]
The single transport stream consumed by the operation.
pipe_stdin()
required
default:"1"
default:"True"
default:"65536"
StdinResult
StdinResultAcknowledged bytes, EOF delivery, and observed early completion.ValueError – chunk_size or spid is not positive.
pump()
None
route_event()
required
None
run()
required
default:"False"
default:"()"
default:"None"
default:"None"
default:"None"
default:"None"
default:"None"
default:"False"
default:"None"
SubprocessContract
send_stdin()
required
default:"1"
default:"True"
None
shutdown()
None
signal()
default:"None"
default:"1"
None
status()
default:"False"
OperationResponse
wait()
default:"None"
InstanceResult
class OperationContext
Attributes
tuple[StagedFile, ...]
tuple[
StagedFile, …]bool
tuple[str, ...]
int
str | None
RunRequest
str
str
str | None
str | None
str
float
Mapping[str, str]
class OperationContract
Attributes
str
OperationContext | None
OperationContext | NoneOperationResponse | None
Methods
add_observer()
required
None
apply_files()
required
None
cancel()
None
events()
default:"None"
default:"None"
default:"None"
Iterator[OperationEvent]
pipe_stdin()
required
default:"1"
default:"True"
default:"65536"
StdinResult
run()
required
default:"False"
default:"()"
default:"None"
default:"None"
default:"None"
default:"None"
default:"None"
default:"False"
default:"None"
SubprocessContract
send_stdin()
required
default:"1"
default:"True"
None
shutdown()
None
signal()
default:"None"
default:"1"
None
status()
default:"False"
OperationResponse
wait()
default:"None"
InstanceResult
class OperationRecord
Attributes
tuple[StagedFile, ...]
tuple[
StagedFile, …]float
str
tuple[str, ...]
str | None
str
bool
dict[str, str | int | float | bool | None | list[str | int | float | bool | None | list[JSONValue] | dict[str, JSONValue]] | dict[str, str | int | float | bool | None | list[JSONValue] | dict[str, JSONValue]]] | None
str | None
str
str
str
str
str
str
bool
dict[str, str | int | float | bool | None | list[str | int | float | bool | None | list[JSONValue] | dict[str, JSONValue]] | dict[str, str | int | float | bool | None | list[JSONValue] | dict[str, JSONValue]]]
dict[str, str]
Methods
from_dict()
required
OperationRecord
to_dict()
dict[str, str | int | float | bool | None | list[str | int | float | bool | None | list[JSONValue] | dict[str, JSONValue]] | dict[str, str | int | float | bool | None | list[JSONValue] | dict[str, JSONValue]]]
class PendingRun
class RunRequest
dataclasses.replace to change a request. Arguments and environment
are copied at construction. File sources and stdin remain caller-owned.
Exactly one of command and shell must be supplied. Results are saved
by default; use disposable=True to leave session history unchanged.
Attributes
tuple[str, ...]
str | None
str | None
bool
Mapping[str, str] | None
list[str | Path | UploadFileSpec] | dict[str, str | Path | bytes | UploadFileSpec] | None
list[str | Path |
UploadFileSpec] | dict[str, str | Path | bytes | UploadFileSpec] | Noneint | None
str | None
InstanceNetworking | None
bool
InstanceResourcesLimits | None
str | None
str | bytes | Path | Readable[str] | Readable[bytes] | AsyncReadable[str] | AsyncReadable[bytes] | None
str | bytes | Path |
Readable[str] | Readable[bytes] | AsyncReadable[str] | AsyncReadable[bytes] | Nonebool
float | timedelta | None
float | None
str
int | None
int | None
class SnapshotEvent
class StdinResult
class SubprocessContract
Attributes
int
Methods
pipe_to()
default:"None"
default:"None"
InstanceResult
wait()
default:"None"
InstanceResult
class SubprocessHandle
Attributes
int
Methods
pipe_to()
default:"None"
default:"None"
InstanceResult
wait()
default:"None"
InstanceResult
class ZeroExitCommitPolicy
instance_result()
required
InstanceResult
The InstanceResult from op.metadata.result.
InterruptedError – The operation was cancelled.
FailedOperationError – The operation itself failed with no result at all
(a nonzero exit code inside a successful operation is not an error).