code: def filter_node_store_(
      store: NodeStorage, out_store: NodeStorage, index: Tensor
  ):
      # Filters a node storage object to only hold the nodes in `index`:
      for key, value in store.items():
          if key == "num_nodes":
              out_store.num_nodes = index.numel()
  
          elif store.is_node_attr(key):
              if isinstance(value, (Tensor, TensorFrame)):
                  index = index.to(value.device)
              elif isinstance(value, np.ndarray):
                  index = index.cpu()
              dim = store._parent().__cat_dim__(key, value, store)
              out_store[key] = index_select(value, index, dim=dim)
  
imports: import copy
  import logging
  import math
  from typing import Any, Dict, Optional, Tuple, Union
  import numpy
  import torch
  from torch import Tensor
  import torch_geometric.typing
  from torch_geometric import EdgeIndex
  from torch_geometric.data import Data, FeatureStore, GraphStore, HeteroData, TensorAttr, remote_backend_utils
  from torch_geometric.data.storage import EdgeStorage, NodeStorage
  from torch_geometric.typing import EdgeType, FeatureTensorType, InputEdges, InputNodes, NodeType, OptTensor, SparseTensor, TensorFrame
label_desc: Use image node_id 2 for calling a global function with example usage: filter_node_store_(store, out_store, index) without return types