code: def generate_doc_dataclass(dataclass, desc=None, width=100):
      if desc is not None:
          doc_str = f"{desc}\nArgs:"
      else:
          doc_str = "Args:"
      for key in dataclass.__dataclass_fields__.keys():
          if key.startswith("_"):  # Skipping private fields
              continue
          atr = dataclass.__dataclass_fields__[key]
          if atr.init:
              type = (
                  str(atr.type)
                  .replace("<class '", "")
                  .replace("'>", "")
                  .replace("typing.", "")
              )
              help_str = atr.metadata.get("help", "")
              if "choices" in atr.metadata.keys():
                  help_str += (
                      ". Choices are:"
                      f" [{','.join(['`'+str(ch)+'`' for ch in atr.metadata['choices']])}]."
                  )
              # help_str += f'. Defaults to {atr.default}'
              h_str = textwrap.fill(
                  f"{key} ({type}): {help_str}",
                  width=width,
                  subsequent_indent="\t\t",
                  initial_indent="\t",
              )
              h_str = f"\n{h_str}\n"
              doc_str += h_str
      return doc_str
  
file_path: pytorch_tabular/src/pytorch_tabular/utils/python_utils.py
imports: import math
  import textwrap
  from pathlib import Path
  from typing import IO, Any, Callable, Dict, Optional, Union
  import numpy
  import torch
  import pytorch_tabular
  from .logger import get_logger
label_desc: Use image node_id 3 for calling a global function with example usage: generate_doc_dataclass(dataclass, desc, width) and returns: doc_str