code: def _format_data_signature(self, data: Data) -> str:
      expr = data.value
      if expr and len(expr) > self.data_expression_maxlength:
          expr = expr[: self.data_expression_maxlength] + " ..."
  
      if data.datatype:
          signature = f"{data.name}: {data.datatype} = {expr}"
      else:
          signature = f"{data.name} = {expr}"
  
      if data.parent and isinstance(data.parent, Class):
          bases = ", ".join(map(str, data.parent.bases))
          if data.parent.metaclass:
              bases += ", metaclass=" + str(data.parent.metaclass)
          if bases:
              class_signature = f"class {data.parent.name}({bases})"
          else:
              class_signature = f"class {data.parent.name}"
          return f"{class_signature}:\n | ...\n | {signature}"
      else:
          return signature
  
imports: import argparse
  import logging
  import os
  import re
  import sys
  from collections import OrderedDict
  from dataclasses import dataclass
  from enum import Enum
  from multiprocessing import Pool, cpu_count
  from pathlib import Path
  from typing import List, Optional, Tuple
  import docspec
  from docspec import ApiObject, Class, Data, Function, Indirection, Module
  from docspec_python import format_arglist
  from pydoc_markdown import Processor, PydocMarkdown, Resolver
  from pydoc_markdown.contrib.loaders.python import PythonLoader
  from pydoc_markdown.contrib.renderers.markdown import MarkdownRenderer
label_desc: Use image node_id 2 for calling the AllenNlpRenderer obj's underlying member method code with example usage: obj._format_data_signature(data) and returns: class_signature, str, signature, signature