flytekit.extend.ExecutableTemplateShimTask

class flytekit.extend.ExecutableTemplateShimTask(tt, executor_type, *args, **kwargs)[source]

The canonical @task decorated Python function task is pretty simple to reason about. At execution time (either locally or on a Flyte cluster), the function runs.

This class, along with the ShimTaskExecutor class below, represents another execution pattern. This pattern, has two components:

  • The TaskTemplate, or something like it like a FlyteTask.

  • An executor, which can use information from the task template (including the custom field)

Basically at execution time (both locally and on a Flyte cluster), the task template is given to the executor, which is responsible for computing and returning the results.

Note

The interface at execution time will have to derived from the Flyte IDL interface, which means it may be lossy. This is because when a task is serialized from Python into the TaskTemplate some information is lost because Flyte IDL can’t keep track of every single Python type (or Java type if writing in the Java flytekit).

This class also implements the dispatch_execute and execute functions to make it look like a PythonTask that the entrypoint.py can execute, even though this class doesn’t inherit from PythonTask.

Parameters
  • tt (flytekit.models.core.task.TaskTemplate) –

  • executor_type (Type[ShimTaskExecutor]) –

__init__(tt, executor_type, *args, **kwargs)[source]
Parameters

Methods

__init__(tt, executor_type, *args, **kwargs)

dispatch_execute(ctx, input_literal_map)

This function is mostly copied from the base PythonTask, but differs in that we have to infer the Python interface before executing.

execute(**kwargs)

Send things off to the executor instead of running here.

post_execute(user_params, rval)

This function is a stub, just here to keep dispatch_execute compatibility between this class and PythonTask.

pre_execute(user_params)

This function is a stub, just here to keep dispatch_execute compatibility between this class and PythonTask.

Attributes

executor

executor_type

task_template