NativeInterface
A class representing the native interface for a task. This is used to interact with the task and its execution context.
Attributes
| Attribute | Type | Description |
|---|---|---|
| inputs | Dict[str, Tuple[Type, Any]] | A mapping of input names to tuples containing their Python type and default value, used to define the task's input signature. |
| outputs | Dict[str, Type] | A mapping of output names to their Python types, used to define the task's return signature. |
| docstring | Optional[Docstring] = null | An optional parsed docstring object containing documentation for the task and its parameters. |
| has_default | ClassVar[Type[_has_default]] | This can be used to indicate if a specific input has a default value or not, in the case when the default value is not known. |
Constructor
Signature
def NativeInterface(
inputs: Dict[str, Tuple[Type, Any]],
outputs: Dict[str, Type],
docstring: Optional[Docstring] = None,
_remote_defaults: Optional[Dict[str, literals_pb2.Literal]] = None
) - > null
Parameters
| Name | Type | Description |
|---|---|---|
| inputs | Dict[str, Tuple[Type, Any]] | A dictionary mapping input names to a tuple containing their Python type and default value. |
| outputs | Dict[str, Type] | A dictionary mapping output names to their respective Python types. |
| docstring | Optional[Docstring] = None | An optional Docstring object parsed from the task function. |
| _remote_defaults | Optional[Dict[str, literals_pb2.Literal]] = None | An optional dictionary of default values for remote tasks in protobuf literal format. |
Methods
has_outputs()
@classmethod
def has_outputs() - > bool
Check if the task has outputs. This is used to determine if the task has outputs or not.
Returns
| Type | Description |
|---|---|
bool | True if the task defines one or more output parameters, False otherwise |
required_inputs()
@classmethod
def required_inputs() - > List[str]
Get the names of the required inputs for the task. This is used to determine which inputs are required for the task execution.
Returns
| Type | Description |
|---|---|
List[str] | A list of required input names. |
num_required_inputs()
@classmethod
def num_required_inputs() - > int
Get the number of required inputs for the task. This is used to determine how many inputs are required for the task execution.
Returns
| Type | Description |
|---|---|
int | The total count of input parameters that do not have a default value |
from_types()
@classmethod
def from_types(
inputs: Dict[str, Tuple[Type, Type[_has_default]| Type[inspect._empty]]],
outputs: Dict[str, Type],
default_inputs: Optional[Dict[str, literals_pb2.Literal]] = None
) - > [NativeInterface](nativeinterface.md?sid=flyte_models_nativeinterface)
Create a new NativeInterface from the given types. This is used to create a native interface for the task.
Parameters
| Name | Type | Description |
|---|---|---|
| inputs | `Dict[str, Tuple[Type, Type[_has_default] | Type[inspect._empty]]]` |
| outputs | Dict[str, Type] | A dictionary of output names and their types. |
| default_inputs | Optional[Dict[str, literals_pb2.Literal]] = None | Optional dictionary of default inputs for remote tasks. |
Returns
| Type | Description |
|---|---|
[NativeInterface](nativeinterface.md?sid=flyte_models_nativeinterface) | A NativeInterface object with the given inputs and outputs. |
from_callable()
@classmethod
def from_callable(
func: Callable
) - > [NativeInterface](nativeinterface.md?sid=flyte_models_nativeinterface)
Extract the native interface from the given function. This is used to create a native interface for the task.
Parameters
| Name | Type | Description |
|---|---|---|
| func | Callable | The Python function or callable to inspect for parameters and return types |
Returns
| Type | Description |
|---|---|
[NativeInterface](nativeinterface.md?sid=flyte_models_nativeinterface) | A new interface instance derived from the function signature, type hints, and docstrings |
convert_to_kwargs()
@classmethod
def convert_to_kwargs(
*args: Any,
**kwargs: Any
) - > Dict[str, Any]
Convert the given arguments to keyword arguments based on the native interface. This is used to convert the arguments to the correct types for the task execution.
Parameters
| Name | Type | Description |
|---|---|---|
| *args | Any | Positional arguments to be mapped to the interface's input names |
| **kwargs | Any | Keyword arguments representing task inputs |
Returns
| Type | Description |
|---|---|
Dict[str, Any] | A dictionary mapping input names to their corresponding values |
get_input_types()
@classmethod
def get_input_types() - > Dict[str, Type]
Get the input types for the task. This is used to get the types of the inputs for the task execution.
Returns
| Type | Description |
|---|---|
Dict[str, Type] | A dictionary mapping input names to their Python types |
json_schema()
@classmethod
def json_schema() - > Dict[str, Any]
Convert task inputs to a JSON schema dict. Uses the Flyte type engine to produce a LiteralType for each input, then converts to JSON schema.
Returns
| Type | Description |
|---|---|
Dict[str, Any] | A JSON schema object representing the required and optional inputs |