class_docstr: This class implements the :class:`torch_geometric.data.FeatureStore`
  interface to act as a local feature store for distributed training.
code: def __init__(self):
      super().__init__(tensor_attr_cls=LocalTensorAttr)
      self._feat: Dict[
          Tuple[Union[NodeType, EdgeType], str], Tensor
      ] = {}
      # Save the global node/edge IDs:
      self._global_id: Dict[Union[NodeType, EdgeType], Tensor] = {}
      # Save the mapping from global node/edge IDs to indices in `_feat`:
      self._global_id_to_index: Dict[
          Union[NodeType, EdgeType], Tensor
      ] = {}
      # For partition/RPC info related to distributed features:
      self.num_partitions: int = 1
      self.partition_idx: int = 0
      # Mapping between node ID and partition ID:
      self.node_feat_pb: Union[Tensor, Dict[NodeType, Tensor]]
      # Mapping between edge ID and partition ID:
      self.edge_feat_pb: Union[Tensor, Dict[EdgeType, Tensor]]
      self.labels: Optional[Tensor] = None  # Node labels.
  
      self.local_only: bool = False
      self.rpc_router: Optional[RPCRouter] = None
      self.meta: Optional[Dict] = None
      self.rpc_call_id: Optional[int] = None
  
imports: import copy
  import json
  import os.path
  from dataclasses import dataclass
  from typing import Any, Dict, List, Optional, Tuple, Union
  import torch
  from torch import Tensor
  from torch_geometric.data import FeatureStore, TensorAttr
  from torch_geometric.data.feature_store import _FieldStatus
  from torch_geometric.distributed.rpc import RPCCallBase, RPCRouter, rpc_async, rpc_register
  from torch_geometric.typing import EdgeType, NodeOrEdgeType, NodeType
label_desc: Use image node_id 1 to create a new LocalFeatureStore object from inherited base classes: FeatureStore with example: obj = LocalFeatureStore()