class_docstr: The general implementation of InternalWindowProcessFunction. The WindowAssigner should be a
  regular assigner without implement PanedWindowAssigner or MergingWindowAssigner.
class_docstr_tok: ["The","general","implementation","of","InternalWindowProcessFunction",".","The","WindowAssigner","should","be","a","regular","assigner","without","implement","PanedWindowAssigner","or","MergingWindowAssigner","."]
code: def __init__(
      self,
      allowed_lateness: int,
      window_assigner: WindowAssigner[W],
      window_aggregator,
  ):
      super(GeneralWindowProcessFunction, self).__init__(
          allowed_lateness, window_assigner, window_aggregator
      )
      self._reuse_affected_windows = None
  
imports: from abc import abstractmethod, ABC
  from typing import Generic, List, Iterable, Dict, Set
  from pyflink.common import Row
  from pyflink.common.constants import MAX_LONG_VALUE
  from pyflink.datastream.state import MapState
  from pyflink.fn_execution.table.window_assigner import WindowAssigner, PanedWindowAssigner, MergingWindowAssigner
  from pyflink.fn_execution.table.window_context import Context, K, W
label_desc: Use image node_id 1 to create a new GeneralWindowProcessFunction object from inherited base classes: InternalWindowProcessFunction with example: obj = GeneralWindowProcessFunction(allowed_lateness, window_assigner, window_aggregator)