code: def info(self, key_name, filters=None, prefix=" "):
      output = []
      for key, value in key_name.items():
          if hasattr(value, "items"):
              temp_filters = filters
              if key == filters or filters is None:
                  output.append(f"{prefix} {key}")
                  # Keep showing this specific key
                  # as parent matched filter
                  temp_filters = None
              output.extend(
                  self.info(value, temp_filters, prefix + "  ")
              )
          else:
              if key == filters or filters is None:
                  output.append(
                      f"{prefix} {key}: "
                      + f'{value if value is not None else "<inherited>"}'
                  )
      return output
  
imports: import os
  import shlex
  import subprocess
  from io import StringIO
  from dotenv import dotenv_values
  from ruamel.yaml import YAML
  from ..utils.command import Command, default_bin
  from ..utils.source import arrow_path
  from ..compat import _ensure_path
label_desc: Use image node_id 10 for calling the DockerCompose obj's underlying member method code with example usage: obj.info(key_name, filters, prefix) and returns: output