class_docstr: Abstract class for logical operators.
  
  A logical operator describes transformation, and later is converted into
  physical operator.
class_docstr_tok: ["Abstract","class","for","logical","operators",".","A","logical","operator","describes","transformation",",","and","later","is","converted","into","physical","operator","."]
code: def __init__(
      self,
      name: str,
      input_dependencies: List["LogicalOperator"],
      num_outputs: Optional[int] = None,
  ):
      super().__init__(
          name,
          input_dependencies,
      )
      for x in input_dependencies:
          assert isinstance(x, LogicalOperator), x
      self._num_outputs = num_outputs
  
imports: from typing import List, Optional
  from .operator import Operator
label_desc: Use image node_id 1 to create a new LogicalOperator object from inherited base classes: Operator with example: obj = LogicalOperator(name, input_dependencies, num_outputs)