class_docstr: Each node in fx graph will have a corresponding StrategiesVector, to store all the possible
  strategies of the node.
  
  Argument:
      node (Node): node for which the list of sharding strategies are generated.
class_docstr_tok: ["Each","node","in","fx","graph","will","have","a","corresponding","StrategiesVector",",","to","store","all","the","possible","strategies","of","the","node",".","Argument",":","node","(","Node",")",":","node","for","which","the","list","of","sharding","strategies","are","generated","."]
code: def __init__(self, node: Node):
      super().__init__()
      self.node = node
      # fetch its input and output nodes
      # TODO: placeholder input nodes
      self.predecessor_nodes = list(node._input_nodes.keys())
      self.successor_nodes = list(node.users.keys())
  
imports: from copy import deepcopy
  from dataclasses import dataclass
  from enum import Enum
  from typing import Any, Dict, List, Tuple, Union
  import torch
  from torch.fx.node import Node
  from colossalai.tensor.comm_spec import CommSpec
  from colossalai.tensor.sharding_spec import ShardingSpec
  from .constants import ELEMENTWISE_FUNC_OP, ELEMENTWISE_METHOD_OP, ELEMENTWISE_MODULE_OP, RESHAPE_FUNC_OP, RESHAPE_METHOD_OP
label_desc: Use image node_id 1 to create a new StrategiesVector object from inherited base classes: list with example: obj = StrategiesVector(node)