code: def printer(data, depth=0):
      
      indent = _INDENT * depth
      config_string = '' if not depth else ':\n'
      if isinstance(data, dict):
          for key, val in data.items():
              line = '{0}{1}'.format(indent, key)
              values = printer(val, depth + 1)
              if not values.count('\n'):
                  values = ': {0}'.format(values.lstrip())
  
              line = '{line}{values}'.format(line=line, values=values)
              config_string += '{0}\n'.format(line)
  
      elif isinstance(data, list):
          for elem in data:
              config_string += '{0} - {1}\n'.format(indent, elem)
      else:
          config_string = '{0}{1} ({2})'.format(
              indent, data, data.__class__.__name__
          )
  
      return config_string.rstrip('\n')
docs: Prepare data for printing.
  
      :param data: a data value that will be processed by method
      :param int depth: recurrency indicator, to maintain proper indent
  
      :returns: string with formatted config
      :rtype: str