code: def getattr_recursive(obj, att):
      """
      Return nested attribute of obj
      Example: getattr_recursive(obj, 'a.b.c') is equivalent to obj.a.b.c
      """
      if att == "":
          return obj
      i = att.find(".")
      if i < 0:
          return getattr(obj, att)
      else:
          return getattr_recursive(getattr(obj, att[:i]), att[i + 1 :])
  
file_path: NeMo/nemo/collections/multimodal/parts/utils.py
imports: import os
  from typing import Any, Callable, Tuple
  import torch
  from omegaconf import DictConfig, open_dict
  from PIL import Image
  from pytorch_lightning import Trainer
  from pytorch_lightning.plugins.environments import TorchElasticEnvironment
  from nemo.collections.nlp.parts.nlp_overrides import NLPDDPStrategy, NLPSaveRestoreConnector
  from nemo.utils import logging
label_desc: Use image node_id 4 for calling a global function with example usage: getattr_recursive(obj, att) and returns: obj, getattr, getattr_recursive