Retrieves the content of an input given a DataSource. The input acts like a filter over the outputs of the DataSource.

        Args:
            name (str): The name of the input.
            ds (openflow.DataSource): The DataSource that will feed the data.

        Returns:
            pandas.DataFrame: The content of the input.

def get_input(self, name, ds):
        """
        Retrieves the content of an input given a DataSource. The input acts like a filter over the outputs of the DataSource.

        Args:
            name (str): The name of the input.
            ds (openflow.DataSource): The DataSource that will feed the data.

        Returns:
            pandas.DataFrame: The content of the input.
        """
        columns = self.inputs.get(name)
        df = ds.get_dataframe()

        # set defaults
        for column in columns:
            if column not in df.columns:
                df[column] = self.defaults.get(column)

        return df[columns]