def __call__()

in core/maxframe/dataframe/misc/get_dummies.py [0:0]


    def __call__(self, data):
        if isinstance(data, (list, tuple)):
            data = asseries(data)
        elif isinstance(data, pd.Series):
            data = from_pandas_series(data)
        elif isinstance(data, pd.DataFrame):
            data = from_pandas_df(data)

        if self.prefix is not None:
            if isinstance(self.prefix, list):
                if self.columns is not None:
                    encoding_col_num = len(self.columns)
                else:
                    encoding_col_num = 0
                    for dtype in data.dtypes.values:
                        if dtype.kind in _encoding_dtype_kind:
                            encoding_col_num += 1
                prefix_num = len(self.prefix)
                if prefix_num != encoding_col_num:
                    raise ValueError(
                        f"Length of 'prefix' ({prefix_num}) did not match "
                        + f"the length of the columns being encoded ({encoding_col_num})"
                    )
            elif isinstance(self.prefix, dict):
                if self.columns is not None:
                    encoding_col_num = len(self.columns)
                    prefix_num = len(self.prefix)
                    if prefix_num != encoding_col_num:
                        raise ValueError(
                            f"Length of 'prefix' ({prefix_num}) did not match "
                            + f"the length of the columns being encoded ({encoding_col_num})"
                        )
                    columns = self.prefix.keys()
                    for columns_columnname, prefix_columnname in zip(
                        columns, list(self.columns)
                    ):
                        if columns_columnname != prefix_columnname:
                            raise KeyError(f"{columns_columnname}")
                else:
                    self.columns = list(self.prefix.keys())
                # Convert prefix from dict to list, to simplify tile work
                self.prefix = list(self.prefix.values())

        return self.new_dataframe(
            [data],
            shape=(np.nan, np.nan),
            dtypes=None,
            index_value=data.index_value,
            columns_value=None,
        )