class_docstr: Abstract class for one-to-one logical operators, which
  have one input and one output dependency.
docstr: Args:
      name: Name for this operator. This is the name that will appear when
          inspecting the logical plan of a Dataset.
      input_op: The operator preceding this operator in the plan DAG. The outputs
          of `input_op` will be the inputs to this operator.
code: def __init__(
      self,
      name: str,
      input_op: Optional[LogicalOperator],
      num_outputs: Optional[int] = None,
  ):
      """
      Args:
          name: Name for this operator. This is the name that will appear when
              inspecting the logical plan of a Dataset.
          input_op: The operator preceding this operator in the plan DAG. The outputs
              of `input_op` will be the inputs to this operator.
      """
      super().__init__(
          name, [input_op] if input_op else [], num_outputs
      )
  
file_path: ray/python/ray/data/_internal/logical/operators/one_to_one_operator.py
imports: import abc
  from typing import Optional
  from ray.data._internal.logical.interfaces import LogicalOperator
label_desc: Use image node_id 1 to create a new AbstractOneToOne object from inherited base classes: LogicalOperator with example: obj = AbstractOneToOne(name, input_op, num_outputs)