tfx.dsl.components.base.base_component.BaseComponent

Base class for a TFX pipeline component.

Inherits From: BaseNode

An instance of a subclass of BaseComponent represents the parameters for a single execution of that TFX pipeline component.

All subclasses of BaseComponent must override the SPEC_CLASS field with the ComponentSpec subclass that defines the interface of this component.

spec types.ComponentSpec object for this component instance.
custom_executor_spec Optional custom executor spec overriding the default executor specified in the component attribute.
instance_name Deprecated. Please set id directly using with_id() function or .id setter in the BaseNode class. The pipeline assembling will fail if there are two nodes in the pipeline with the same id.

SPEC_CLASS a subclass of types.ComponentSpec used by this component (required). This is a class level value.
EXECUTOR_SPEC an instance of executor_spec.ExecutorSpec which describes how to execute this component (required). This is a class level value.
DRIVER_CLASS a subclass of base_driver.BaseDriver as a custom driver for this component (optional, defaults to base_driver.BaseDriver). This is a class level value.
spec an instance of SPEC_CLASS. See types.ComponentSpec for more details.
platform_config a protobuf message representing platform config for a component instance.
component_id DEPRECATED FUNCTION

component_type DEPRECATED FUNCTION
downstream_nodes

exec_properties

id Node id, unique across all TFX nodes in a pipeline.

If id is set by the user, return it directly. otherwise, if instance name (deprecated) is available, node id will be: . otherwise, node id will be:

inputs

outputs

type

upstream_nodes

Child Classes

class DRIVER_CLASS

Methods

EXECUTOR_SPEC

View source

SPEC_CLASS

View source

add_downstream_node

View source

Experimental: Add another component that must run after this one.

This method enables task-based dependencies by enforcing execution order for synchronous pipelines on supported platforms. Currently, the supported platforms are Airflow, Beam, and Kubeflow Pipelines.

Note that this API call should be considered experimental, and may not work with asynchronous pipelines, sub-pipelines and pipelines with conditional nodes. We also recommend relying on data for capturing dependencies where possible to ensure data lineage is fully captured within MLMD.

It is symmetric with add_upstream_node.

Args
downstream_node a component that must run after this node.

add_upstream_node

View source

Experimental: Add another component that must run before this one.

This method enables task-based dependencies by enforcing execution order for synchronous pipelines on supported platforms. Currently, the supported platforms are Airflow, Beam, and Kubeflow Pipelines.

Note that this API call should be considered experimental, and may not work with asynchronous pipelines, sub-pipelines and pipelines with conditional nodes. We also recommend relying on data for capturing dependencies where possible to ensure data lineage is fully captured within MLMD.

It is symmetric with add_downstream_node.

Args
upstream_node a component that must run before this node.

from_json_dict

View source

Convert from dictionary data to an object.

get_id

View source

Gets the id of a node. (deprecated)

This can be used during pipeline authoring time. For example: from tfx.components import Trainer

resolver = ResolverNode(..., model=Channel( type=Model, producer_component_id=Trainer.get_id('my_trainer')))

Args
instance_name (Optional) instance name of a node. If given, the instance name will be taken into consideration when generating the id.

Returns
an id for the node.

to_json_dict

View source

Convert from an object to a JSON serializable dictionary.

with_id

View source

with_platform_config

View source

Attaches a proto-form platform config to a component.

The config will be a per-node platform-specific config.

Args
config platform config to attach to the component.

Returns
the same component itself.