class_docstr: A common base class for Independent and Partition.
      
class_docstr_tok: ["A","common","base","class","for","Independent","and","Partition","."]
code: def __call__(self, mask, x):
      mask = self._standardize_mask(mask, x)
  
      # make sure we are given a single sample
      if len(x.shape) != 1 or x.shape[0] != self.data.shape[1]:
          raise DimensionError(
              "The input passed for tabular masking does not match the background data shape!"
          )
  
      # if mask is an array of integers then we are doing delta masking
      if np.issubdtype(mask.dtype, np.integer):
          variants = ~self.invariants(x)
          curr_delta_inds = np.zeros(len(mask), dtype=int)
          num_masks = (mask >= 0).sum()
          varying_rows_out = np.zeros(
              (num_masks, self.shape[0]), dtype=bool
          )
          masked_inputs_out = np.zeros(
              (num_masks * self.shape[0], self.shape[1])
          )
          self._last_mask[:] = False
          self._masked_data[:] = self.data
          _delta_masking(
              mask,
              x,
              curr_delta_inds,
              varying_rows_out,
              self._masked_data,
              self._last_mask,
              self.data,
              variants,
              masked_inputs_out,
              MaskedModel.delta_mask_noop_value,
          )
          if self.output_dataframe:
              return (
                  pd.DataFrame(
                      masked_inputs_out, columns=self.feature_names
                  ),
              ), varying_rows_out
  
          return (masked_inputs_out,), varying_rows_out
  
      # otherwise we update the whole set of masked data for a single sample
      self._masked_data[:] = x * mask + self.data * np.invert(mask)
      self._last_mask[:] = mask
  
      if self.output_dataframe:
          return pd.DataFrame(
              self._masked_data, columns=self.feature_names
          )
  
      return (self._masked_data,)
  
imports: import logging
  import numpy
  import pandas
  from numba import njit
  from ..None import utils
  from .._serializable import Deserializer, Serializer
  from ..utils import MaskedModel
  from ..utils._exceptions import DimensionError, InvalidClusteringError
  from ._masker import Masker
label_desc: Use image node_id 2 for calling the Tabular obj's underlying member method code with example usage: obj.__call__(mask, x) and returns: self, masked_inputs_out,  varying_rows_out, pd, pd,  varying_rows_out