class_docstr: Logical operator for zip.
class_docstr_tok: ["Logical","operator","for","zip","."]
code: def estimated_num_outputs(self):
      left_num_outputs = self._input_dependencies[
          0
      ].estimated_num_outputs()
      right_num_outputs = self._input_dependencies[
          1
      ].estimated_num_outputs()
      if left_num_outputs is None or right_num_outputs is None:
          return None
      return max(left_num_outputs, right_num_outputs)
  
file_path: ray/python/ray/data/_internal/logical/operators/n_ary_operator.py
imports: from typing import Optional
  from ray.data._internal.logical.interfaces import LogicalOperator
label_desc: Use image node_id 2 for calling the Zip obj's underlying member method code with example usage: obj.estimated_num_outputs() and returns: max, None