Skip to main content

TaskEnvironment

Define an execution environment for a set of tasks.

Attributes

AttributeTypeDescription
cacheCacheRequest = "disable"Cache policy — "auto", "override", "disable", or a Cache object. Also settable in @env.task(cache=...) and task.override(cache=...).
reusable`ReusePolicyNone` = null
plugin_configOptional[Any] = nullPlugin configuration for custom task types (e.g., Ray, Spark). Cannot be combined with reusable. TaskEnvironment level only.
queueOptional[str] = nullQueue name for scheduling. Queues identify specific partitions of your compute infrastructure (e.g., a particular cluster in a multi-cluster deployment) and are configured as part of your Flyte/Union deployment. Also settable in @env.task and task.override.

Constructor

Signature

def TaskEnvironment(
name: str,
image: Optional[Union[str, [Image](../../image/image.md?sid=flyte__image_image), Literal["auto"]]] = None,
depends_on: Optional[List[[Environment](../../environment/environment.md?sid=flyte__environment_environment)]] = None,
description: Optional[str] = None,
plugin_config: Optional[Any] = None,
resources: Optional[[Resources](../../resources/resources.md?sid=flyte__resources_resources)] = None,
env_vars: Optional[Dict[str, str]] = None,
secrets: Optional[SecretRequest] = None,
cache: CacheRequest = "disable",
reusable: Optional[[ReusePolicy](../../reusable/environment/reusepolicy.md?sid=flyte__reusable_environment_reusepolicy)] = None,
queue: Optional[str] = None,
pod_template: Optional[Union[str, [PodTemplate](../../pod/podtemplate.md?sid=flyte__pod_podtemplate)]] = None,
interruptible: Optional[bool] = None
)

Parameters

NameTypeDescription
namestrName of the environment (required). Must be snake_case or kebab-case. TaskEnvironment level only. The fully-qualified name of each task is < env_name >.< function_name > (e.g., environment "my_env" containing function my_task produces FQN "my_env.my_task"). Neither component is overridable.
imageOptional[Union[str, [Image](../../image/image.md?sid=flyte__image_image), Literal["auto"]]] = NoneDocker image for the environment. Can be a string (image URI), an Image object, or "auto" to use the default image. TaskEnvironment level only.
depends_onOptional[List[[Environment](../../environment/environment.md?sid=flyte__environment_environment)]] = NoneList of other environments this one depends on. Used at deploy time to ensure dependencies are also deployed. TaskEnvironment level only.
descriptionOptional[str] = NoneHuman-readable description (max 255 characters). TaskEnvironment level only.
plugin_configOptional[Any] = NonePlugin configuration for custom task types (e.g., Ray, Spark). Cannot be combined with reusable. TaskEnvironment level only.
resourcesOptional[[Resources](../../resources/resources.md?sid=flyte__resources_resources)] = NoneCompute resources (CPU, memory, GPU, disk). Overridable via task.override(resources=...) when not using reusable containers.
env_varsOptional[Dict[str, str]] = NoneEnvironment variables as dict[str, str]. Overridable via task.override(env_vars=...) when not using reusable containers.
secretsOptional[SecretRequest] = NoneSecrets to inject. Overridable via task.override(secrets=...) when not using reusable containers.
cacheCacheRequest = "disable"Cache policy — "auto", "override", "disable", or a Cache object. Also settable in @env.task(cache=...) and task.override(cache=...).
reusableOptional[[ReusePolicy](../../reusable/environment/reusepolicy.md?sid=flyte__reusable_environment_reusepolicy)] = NoneReusePolicy for container reuse. Also overridable via task.override(reusable=...). Note: when reusable is set on the environment, overriding resources, env_vars, or secrets in task.override() requires passing reusable="off" in the same call. Additionally, secrets cannot be overridden at the @env.task decorator level when the environment has reusable set.
queueOptional[str] = NoneQueue name for scheduling. Queues identify specific partitions of your compute infrastructure (e.g., a particular cluster in a multi-cluster deployment) and are configured as part of your Flyte/Union deployment. Also settable in @env.task and task.override.
pod_templateOptional[Union[str, [PodTemplate](../../pod/podtemplate.md?sid=flyte__pod_podtemplate)]] = NoneKubernetes pod template for advanced configuration (sidecars, volumes, etc.). Also settable in @env.task and task.override.
interruptibleOptional[bool] = NoneWhether tasks can run on spot/preemptible instances. Also settable in @env.task and task.override.

Methods


clone_with()

@classmethod
def clone_with(
name: str,
image: Optional[Union[str, [Image](../../image/image.md?sid=flyte__image_image), Literal["auto"]]] = None,
resources: Optional[[Resources](../../resources/resources.md?sid=flyte__resources_resources)] = None,
env_vars: Optional[Dict[str, str]] = None,
secrets: Optional[SecretRequest] = None,
depends_on: Optional[List[[Environment](../../environment/environment.md?sid=flyte__environment_environment)]] = None,
description: Optional[str] = None,
interruptible: Optional[bool] = None,
include: Optional[Tuple[str, ...]] = None,
kwargs: Any
) - > [TaskEnvironment](taskenvironment.md?sid=flyte__task_environment_taskenvironment)

Create a new TaskEnvironment that shares most settings with this one but differs in name and selected overrides. Use clone_with when you need several environments that share a common base configuration (image, resources, secrets, etc.) but vary in one or two settings, avoiding repetition.

Parameters

NameTypeDescription
namestrName for the new environment (required).
imageOptional[Union[str, [Image](../../image/image.md?sid=flyte__image_image), Literal["auto"]]] = NoneOverride the container image.
resourcesOptional[[Resources](../../resources/resources.md?sid=flyte__resources_resources)] = NoneOverride compute resources.
env_varsOptional[Dict[str, str]] = NoneOverride environment variables.
secretsOptional[SecretRequest] = NoneOverride secrets.
depends_onOptional[List[[Environment](../../environment/environment.md?sid=flyte__environment_environment)]] = NoneOverride deployment dependencies.
descriptionOptional[str] = NoneOverride the description.
interruptibleOptional[bool] = NoneOverride the interruptible setting.
includeOptional[Tuple[str, ...]] = NoneThis parameter is not described in the docstring, but based on its type, it likely specifies a tuple of strings to include.
kwargsAnyAdditional TaskEnvironment-specific overrides (e.g., cache, reusable, plugin_config).

Returns

TypeDescription
[TaskEnvironment](taskenvironment.md?sid=flyte__task_environment_taskenvironment)A new TaskEnvironment instance with the specified overrides.

task()

@classmethod
def task(
_func: F | None = None,
short_name: Optional[str] = None,
cache: CacheRequest | None = None,
retries: Union[int, [RetryStrategy](../../retry/retrystrategy.md?sid=flyte__retry_retrystrategy)] = 0,
timeout: Union[timedelta, int] = 0,
docs: Optional[Documentation] = None,
pod_template: Optional[Union[str, [PodTemplate](../../pod/podtemplate.md?sid=flyte__pod_podtemplate)]] = None,
report: bool = False,
interruptible: bool | None = None,
max_inline_io_bytes: int = MAX_INLINE_IO_BYTES,
queue: Optional[str] = None,
triggers: Tuple[[Trigger](../../remote/trigger/trigger.md?sid=flyte_remote__trigger_trigger), ...]| Trigger = (),
links: Tuple[[Link](../../app/types/link.md?sid=flyte_app__types_link), ...]| Link = (),
task_resolver: Any | None = None,
entrypoint: bool = False
) - > Callable[[F], [AsyncFunctionTaskTemplate](../asyncfunctiontasktemplate.md?sid=flyte__task_asyncfunctiontasktemplate)[P, R, F]]| AsyncFunctionTaskTemplate[P, R, F]

Decorate a function to be a task.

Parameters

NameTypeDescription
_func`FNone` = None
short_nameOptional[str] = NoneOptional friendly name for the task or action, used in parts of the UI (defaults to the function name). Overriding short_name does not change the task's fully-qualified name.
cache`CacheRequestNone` = None
retriesUnion[int, [RetryStrategy](../../retry/retrystrategy.md?sid=flyte__retry_retrystrategy)] = 0Number of retries (int) or a RetryStrategy object that defines retry behavior. Defaults to 0 (no retries).
timeoutUnion[timedelta, int] = 0Task timeout, as a timedelta object or an integer number of seconds. 0 means no timeout.
docsOptional[Documentation] = NoneOptional The documentation for the task, if not provided the function docstring will be used.
pod_templateOptional[Union[str, [PodTemplate](../../pod/podtemplate.md?sid=flyte__pod_podtemplate)]] = NoneOptional The pod template for the task, if not provided the default pod template will be used.
reportbool = FalseOptional Whether to generate the html report for the task, defaults to False.
interruptible`boolNone` = None
max_inline_io_bytesint = MAX_INLINE_IO_BYTESMaximum allowed size (in bytes) for all inputs and outputs passed directly to the task (e.g., primitives, strings, dicts). Does not apply to files, directories, or dataframes. Default is 10 MiB.
queueOptional[str] = NoneOptional queue name to use for this task. If not set, the environment's queue will be used.
triggers`Tuple[Trigger, ...]Trigger` = ()
links`Tuple[Link, ...]Link` = ()
task_resolver`AnyNone` = None
entrypointbool = FalseOptionally mark a task as an entrypoint task, defaults to False. This serves as a hint to the UI.

Returns

TypeDescription
`Callable[[F], AsyncFunctionTaskTemplate[P, R, F]]AsyncFunctionTaskTemplate[P, R, F]`

sandbox()

@classmethod
def sandbox() - > _SandboxNamespace

Access the sandbox namespace for creating sandboxed tasks.

Returns

TypeDescription
_SandboxNamespaceThe sandbox namespace object.

tasks()

@classmethod
def tasks() - > Dict[str, [TaskTemplate](../tasktemplate.md?sid=flyte__task_tasktemplate)]

Get all tasks defined in the environment.

Returns

TypeDescription
Dict[str, [TaskTemplate](../tasktemplate.md?sid=flyte__task_tasktemplate)]A dictionary mapping task names to their TaskTemplate objects.

from_task()

@classmethod
def from_task(
name: str,
tasks: [TaskTemplate](../tasktemplate.md?sid=flyte__task_tasktemplate),
depends_on: Optional[List["Environment"]] = None
) - > [TaskEnvironment](taskenvironment.md?sid=flyte__task_environment_taskenvironment)

Create a TaskEnvironment from a list of tasks. All tasks should have the same image or no Image defined. Similarity of Image is determined by the python reference, not by value.

Parameters

NameTypeDescription
namestrThe name of the environment.
tasks[TaskTemplate](../tasktemplate.md?sid=flyte__task_tasktemplate)The list of tasks to create the environment from.
depends_onOptional[List["Environment"]] = NoneOptional list of environments that this environment depends on.

Returns

TypeDescription
[TaskEnvironment](taskenvironment.md?sid=flyte__task_environment_taskenvironment)The created TaskEnvironment.