code: def get_gnnNets(input_dim, output_dim, model_config):
      if model_config.gnn_name.lower() == "gcn":
          gcn_model_param_names = GCNNet.__init__.__code__.co_varnames
          gcn_model_params = {
              param_name: getattr(model_config.param, param_name)
              for param_name in gcn_model_param_names
              if param_name in model_config.param.keys()
          }
          return GCNNet(
              input_dim=input_dim,
              output_dim=output_dim,
              **gcn_model_params,
          )
      else:
          raise ValueError(
              f"GNN name should be gcn "
              f"and {model_config.gnn_name} is not defined."
          )
  
imports: import torch
  import torch.nn
  from functools import partial
  from typing import Union, List
  import torch.nn.functional
  from torch_geometric.data import Batch
  from torch_geometric.nn.conv.gcn_conv import gcn_norm
  from torch_geometric.nn.conv import GCNConv
  from torch_geometric.nn.glob import global_mean_pool, global_add_pool, global_max_pool
  from torch import Tensor
  from torch_sparse import SparseTensor, fill_diag
  from torch_geometric.typing import Adj, OptTensor, Size
  from torch_geometric.utils import add_self_loops
  from dig.xgraph.models import GNNPool
  from collections import OrderedDict
label_desc: Use image node_id 1 for calling a global function with example usage: get_gnnNets(input_dim, output_dim, model_config) and returns: GCNNet