code: def aggregation_resolver(query: Union[Any, str], *args, **kwargs):
      import torch_geometric.nn.aggr as aggr
  
      if isinstance(query, (list, tuple)):
          return aggr.MultiAggregation(query, *args, **kwargs)
  
      base_cls = aggr.Aggregation
      aggrs = [
          aggr
          for aggr in vars(aggr).values()
          if isinstance(aggr, type) and issubclass(aggr, base_cls)
      ]
      aggr_dict = {
          "add": aggr.SumAggregation,
      }
      return resolver(
          aggrs, aggr_dict, query, base_cls, None, *args, **kwargs
      )
  
file_path: pytorch_geometric/torch_geometric/nn/resolver.py
imports: import inspect
  from typing import Any, Optional, Union
  import torch
  from torch import Tensor
  from torch.optim import Optimizer
  from torch.optim.lr_scheduler import ReduceLROnPlateau
  from torch_geometric.nn.lr_scheduler import ConstantWithWarmupLR, CosineWithWarmupLR, CosineWithWarmupRestartsLR, LinearWithWarmupLR, PolynomialWithWarmupLR
  from torch_geometric.resolver import normalize_string, resolver
label_desc: Use image node_id 4 for calling a global function with example usage: aggregation_resolver(query) and returns: resolver, aggr