Skip to content
Roboto
Esc
↑↓navigate↵open⌘Jpreview
On this page

roboto.action_runtime.invocation_context

Module Contents

ActionRuntime

class roboto.action_runtime.invocation_context.ActionRuntime(*args, **kwargs)#View Source

Bases: InvocationContext

Deprecated. Use InvocationContext instead.

InvocationContext

class roboto.action_runtime.invocation_context.InvocationContext(dataset_id, input_dir, invocation_id, org_id, output_dir, input_data_manifest_file=None, parameters_file=None, secrets_file=None, roboto_client=None, dry_run=False, log_level=None)#View Source

A utility for performing common lookups and other operations during a Roboto Action’s runtime.

The easiest and most common way to initialize this is:

from roboto import InvocationContext
context = InvocationContext.from_env()

…which will inspect environment variables to initialize the InvocationContext.

If you want to test a script using InvocationContext in a setting such as a developer machine or unit test, and you don’t want to set environment variables to mirror Roboto’s remote execution environment, initialize InvocationContext directly:

import pathlib
from roboto import InvocationContext
context = InvocationContext(
    dataset_id="ds_XXXXXXXXXXXX",
    input_dir=pathlib.Path("/path/to/tmp/input/dir"),
    invocation_id="iv_XXXXXXXXXXXX",
    org_id="og_XXXXXXXXXXXX",
    output_dir=pathlib.Path("/path/to/tmp/output/dir"),
)

Parameters

dataset_id str
input_dir pathlib.Path
invocation_id str
org_id str
output_dir pathlib.Path
input_data_manifest_file Optional[pathlib.Path]
parameters_file Optional[pathlib.Path]
secrets_file Optional[pathlib.Path]
roboto_client Optional[roboto.http.RobotoClient]
dry_run bool
log_level Optional[str]

Properties

InvocationContext.dataset

A Dataset instance for the dataset whose data this action is operating on, if any.

This resource will be lazily initialized the first time it is accessed. After the first call, the dataset will be cached.

This is particularly useful for adding tags or metadata to a dataset at runtime.

Raises

If the dataset does not exist.

If the dataset is not specified (e.g., when running locally, using scheduled triggers, or invoking via CLI with query-based input data).

Usage

Add tags/metadata to the dataset:

context.dataset.put_tags(["tagged_by_action"])
context.dataset.put_metadata({"voltage_spikes_seen": 693})

InvocationContext.dataset_id

dataset_id str #

The ID of the dataset whose data this action is operating on.

Return type: str

InvocationContext.file_changeset_manager

A FilesChangesetFileManager which can be used to associate tags and metadata with the yet-to-be-uploaded files in this invocation’s output directory. In practice, you might use this like:

from roboto import InvocationContext
context = InvocationContext.from_env()
my_output_file = context.output_dir / "my_output_file.txt"
my_output_file.write_text("Hello World")
context.file_changeset_manager.put_tags(my_output_file.name, ["tagged_by_action"])
context.file_changeset_manager.put_fields(
    my_output_file.name, {"roboto_proficiency": "extreme - I can annotate output files!"}
)

This only works for files that have not yet been uploaded to Roboto. To tag existing files, you should instead use:

from roboto import InvocationContext
context = InvocationContext.from_env()
existing_file = context.dataset.get_file_by_path("some_file_that_already_exists.txt")
existing_file.put_tags(["tagged_by_action"])
existing_file.put_metadata({"roboto_proficiency": "also extreme - I can annotate input files!"})

For more info, see the top-level docs on the FilesChangesetFileManager class.

InvocationContext.from_env()

classmethod from_env()#View Source

Initialize an InvocationContext from values in environment variables. Will throw an exception if any required environment variables are not available.

All required environment variables will be available at runtime when an action is running in Roboto’s remote execution environment.

Usage

from roboto import InvocationContext
context = InvocationContext.from_env()

InvocationContext.get_input()

get_input()#View Source

Instance of ActionInput containing resolved references to input data.

InvocationContext.get_optional_parameter()

get_optional_parameter(name, default_value=None)#View Source

Retrieve the value of the action parameter with the given name, defaulting to default_value if the parameter is not set.

Parameters

name str

The name of the parameter to retrieve.

default_value Optional[str]

The value to return if the parameter is not set. Defaults to None.

Returns

Optional[str]

The parameter value, or default_value if not set. If the value is a secret URI, returns the resolved secret value.

Usage

import roboto
context = roboto.InvocationContext.from_env()
context.get_optional_parameter("model_version", "latest")
# "latest"

InvocationContext.get_parameter()

get_parameter(name)#View Source

Gets the value of the action parameter with the given name, raising an ActionRuntimeException if the parameter is not set.

Parameters

name str

Return type

str

InvocationContext.get_secret_parameter()

get_secret_parameter(name)#View Source

Gets the value of the secret action parameter with the given name.

Parameters

name str

Return type

str

Properties

InvocationContext.input_dir

input_dir pathlib.Path #

The directory where the action’s input files are located.

Return type: pathlib.Path

InvocationContext.invocation

An Invocation object for the currently running action invocation.

This object will be lazy-initialized the first time it is accessed, which might result in a RobotoNotFoundException if the invocation does not exist. After the first call, the invocation will be cached.

InvocationContext.invocation_id

invocation_id str #

The ID of the currently running action invocation.

Return type: str

InvocationContext.is_dry_run

is_dry_run bool #
Return type: bool

InvocationContext.log_level

log_level int #

The log level for the action invocation.

Returns

int

The log level constant (e.g., logging.DEBUG, logging.INFO, logging.WARNING, logging.ERROR) if set, or logging.INFO if no log level was specified.

InvocationContext.org

An Org object for the org which invoked the currently running action.

This object will be lazy-initialized the first time it is accessed, which might result in a RobotoNotFoundException if the org does not exist. After the first call, the org will be cached.

InvocationContext.org_id

org_id str #

The ID of the org which invoked the currently running action.

Return type: str

InvocationContext.output_dir

output_dir pathlib.Path #

The directory where the action’s output files are expected. After the user portion of the action runtime concludes (i.e. when their container exits with a 0 exit code), every file in this directory will be uploaded to the dataset associated with this action invocation.

Return type: pathlib.Path

InvocationContext.roboto_client

The RobotoClient instance used by this action runtime.

log

roboto.action_runtime.invocation_context.log#View Source

Was this page helpful?