class_docstr: This class implements the :class:`torch_geometric.data.FeatureStore`
  interface to act as a local feature store for distributed training.
docstr: Lookup the features in local nodes based on node/edge IDs.
docstr_tok: ["Lookup","the","features","in","local","nodes","based","on","node\/edge","IDs","."]
code: def _local_lookup_features(
      self,
      index: Tensor,
      is_node_feat: bool = True,
      input_type: Optional[Union[NodeType, EdgeType]] = None,
  ) -> Tuple[Tensor, Tensor]:
      r"""Lookup the features in local nodes based on node/edge IDs."""
      pb = self.node_feat_pb if is_node_feat else self.edge_feat_pb
  
      input_order = torch.arange(index.size(0), dtype=torch.long)
      if self.meta["is_hetero"]:
          partition_ids = pb[input_type][index]
      else:
          partition_ids = pb[index]
  
      local_mask = partition_ids == self.partition_idx
      local_ids = torch.masked_select(index, local_mask)
      local_index = torch.masked_select(input_order, local_mask)
  
      if self.meta["is_hetero"]:
          if is_node_feat:
              kwargs = dict(group_name=input_type, attr_name="x")
              ret_feat = self.get_tensor_from_global_id(
                  index=local_ids, **kwargs
              )
          else:
              kwargs = dict(
                  group_name=input_type, attr_name="edge_attr"
              )
              ret_feat = self.get_tensor_from_global_id(
                  index=local_ids, **kwargs
              )
      else:
          if is_node_feat:
              kwargs = dict(group_name=None, attr_name="x")
              ret_feat = self.get_tensor_from_global_id(
                  index=local_ids, **kwargs
              )
          else:
              kwargs = dict(
                  group_name=(None, None), attr_name="edge_attr"
              )
              ret_feat = self.get_tensor_from_global_id(
                  index=local_ids, **kwargs
              )
  
      return ret_feat, local_index
  
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 16 for calling the LocalFeatureStore obj's underlying member method code with example usage: obj._local_lookup_features(index, is_node_feat, input_type) and returns: ret_feat,  local_index