Skip to content

CreateView

Experimental

The Workbench View classes are currently in experimental mode so have fun but expect issues and API changes going forward.

CreateView is the abstract base class for view creation (training, display, computation, etc.). The concrete view builders — ColumnSubsetView, PandasToView, ComputationView, and others — subclass it.

CreateView: An abstract base class for View Creation (training, display, etc)

CreateView

Bases: ABC

CreateView: An abstract base class for View Creation (training, display, etc)

Source code in src/workbench/core/views/create_view.py
class CreateView(ABC):
    """CreateView: An abstract base class for View Creation (training, display, etc)"""

    # Class attributes
    log = logging.getLogger("workbench")

    def __init__(self, view_name: str, artifact: Union[DataSource, FeatureSet], source_table: str = None):
        """CreateView base class constructor

        Args:
            view_name (str): The name of the view
            artifact (Union[DataSource, FeatureSet]): The DataSource or FeatureSet object
            source_table (str, optional): The table/view to create the view from. Defaults to None
        """
        self.view_name = view_name

        # Is this a DataSource or a FeatureSet?
        self.is_feature_set = isinstance(artifact, FeatureSetCore)
        self.auto_id_column = artifact.id_column if self.is_feature_set else None

        # Set up data source and database details
        self.data_source = artifact.data_source if self.is_feature_set else artifact
        self.database = self.data_source.database

        # Set table names
        self.base_table_name = self.data_source.table
        self.source_table = source_table or self.base_table_name
        self.table = f"{self.base_table_name}___{self.view_name}"

    @abstractmethod
    def create(self, **kwargs: Any) -> Union[View, None]:
        """Abstract Method: Create the view, each subclass must implement this method

        Args:
            **kwargs: Additional keyword arguments specific to the view type

        Returns:
            Union[View, None]: The created View object (or None if failed to create the view)
        """
        pass

__init__(view_name, artifact, source_table=None)

CreateView base class constructor

Parameters:

Name Type Description Default
view_name str

The name of the view

required
artifact Union[DataSource, FeatureSet]

The DataSource or FeatureSet object

required
source_table str

The table/view to create the view from. Defaults to None

None
Source code in src/workbench/core/views/create_view.py
def __init__(self, view_name: str, artifact: Union[DataSource, FeatureSet], source_table: str = None):
    """CreateView base class constructor

    Args:
        view_name (str): The name of the view
        artifact (Union[DataSource, FeatureSet]): The DataSource or FeatureSet object
        source_table (str, optional): The table/view to create the view from. Defaults to None
    """
    self.view_name = view_name

    # Is this a DataSource or a FeatureSet?
    self.is_feature_set = isinstance(artifact, FeatureSetCore)
    self.auto_id_column = artifact.id_column if self.is_feature_set else None

    # Set up data source and database details
    self.data_source = artifact.data_source if self.is_feature_set else artifact
    self.database = self.data_source.database

    # Set table names
    self.base_table_name = self.data_source.table
    self.source_table = source_table or self.base_table_name
    self.table = f"{self.base_table_name}___{self.view_name}"

create(**kwargs) abstractmethod

Abstract Method: Create the view, each subclass must implement this method

Parameters:

Name Type Description Default
**kwargs Any

Additional keyword arguments specific to the view type

{}

Returns:

Type Description
Union[View, None]

Union[View, None]: The created View object (or None if failed to create the view)

Source code in src/workbench/core/views/create_view.py
@abstractmethod
def create(self, **kwargs: Any) -> Union[View, None]:
    """Abstract Method: Create the view, each subclass must implement this method

    Args:
        **kwargs: Additional keyword arguments specific to the view type

    Returns:
        Union[View, None]: The created View object (or None if failed to create the view)
    """
    pass

Questions?

The SuperCowPowers team is happy to answer any questions you may have about AWS and Workbench. Please contact us at workbench@supercowpowers.com or on chat us up on Discord