class_docstr: The NodeHandler is an abstract class used to generate every possible strategies for an operator node.
  
  Args:
      node (Node): the input node in node argument list.
      device_mesh (DeviceMesh): A logical view of a physical mesh.
      strategies_vector (StrategiesVector): all the strategies generated in this handler will be recorded into the strategies_vector.
class_docstr_tok: ["The","NodeHandler","is","an","abstract","class","used","to","generate","every","possible","strategies","for","an","operator","node",".","Args",":","node","(","Node",")",":","the","input","node","in","node","argument","list",".","device_mesh","(","DeviceMesh",")",":","A","logical","view","of","a","physical","mesh",".","strategies_vector","(","StrategiesVector",")",":","all","the","strategies","generated","in","this","handler","will","be","recorded","into","the","strategies_vector","."]
code: def __init__(
      self,
      node: Node,
      device_mesh: DeviceMesh,
      strategies_vector: StrategiesVector,
      shard_option: ShardOption = ShardOption.STANDARD,
      solver_perference: SolverPerference = SolverPerference.STANDARD,
  ) -> None:
      self.node = node
      self.predecessor_node = list(node._input_nodes.keys())
      self.successor_node = list(node.users.keys())
      self.device_mesh = device_mesh
      self.strategies_vector = strategies_vector
      self.shard_option = shard_option
      self.solver_perference = solver_perference
  
imports: from abc import ABC, abstractmethod
  from typing import Dict, List, Tuple, Union
  import torch
  from torch.fx.node import Node
  from colossalai.auto_parallel.meta_profiler.shard_metainfo import ShardMetaInfo, meta_register
  from colossalai.auto_parallel.tensor_shard.options import ShardOption, SolverPerference
  from colossalai.auto_parallel.tensor_shard.sharding_strategy import OperationData, ShardingSpec, ShardingStrategy, StrategiesVector, TrainCycleItem
  from colossalai.auto_parallel.tensor_shard.utils import check_sharding_spec_validity
  from colossalai.device.device_mesh import DeviceMesh
  from colossalai.logging import get_dist_logger
  from colossalai.tensor.shape_consistency import ShapeConsistencyManager
  from .strategy import StrategyGenerator
label_desc: Use image node_id 1 to create a new NodeHandler object from inherited base classes: ABC with example: obj = NodeHandler(node, device_mesh, strategies_vector, shard_option, solver_perference)