class_docstr: This merges several maskers for different inputs together into a single composite masker.
  
  This is not yet implemented.
class_docstr_tok: ["This","merges","several","maskers","for","different","inputs","together","into","a","single","composite","masker",".","This","is","not","yet","implemented","."]
docstr: Compute the shape of this masker as the sum of all the sub masker shapes.
          
docstr_tok: ["Compute","the","shape","of","this","masker","as","the","sum","of","all","the","sub","masker","shapes","."]
code: def shape(self, *args):
      """Compute the shape of this masker as the sum of all the sub masker shapes."""
      assert (
          len(args) == self.total_args
      ), "The number of passed args is incorrect!"
  
      rows = None
      cols = 0
      pos = 0
      for i, masker in enumerate(self.maskers):
          if callable(masker.shape):
              shape = masker.shape(
                  *args[pos : pos + self.arg_counts[i]]
              )
          else:
              shape = masker.shape
          if rows is None:
              rows = shape[0]
          else:
              assert (
                  shape[1] == 0 or rows == shape[0]
              ), "All submaskers of a Composite masker must return the same number of rows!"
          cols += shape[1]
          pos += self.arg_counts[i]
      return rows, cols
  
file_path: shap/shap/maskers/_composite.py
imports: import types
  from ..utils._exceptions import InvalidMaskerError
  from ._masker import Masker
label_desc: Use image node_id 2 for calling the Composite obj's underlying member method code with example usage: obj.shape() and returns: rows,  cols