code: def versions_report(include_salt_cloud=False):
      '''
      Yield each version properly formatted for console output.
      '''
      ver_info = versions_information(include_salt_cloud)
  
      lib_pad = max(len(name) for name in ver_info['Dependency Versions'])
      sys_pad = max(len(name) for name in ver_info['System Versions'])
      padding = max(lib_pad, sys_pad) + 1
  
      fmt = '{0:>{pad}}: {1}'
      info = []
      for ver_type in ('Salt Version', 'Dependency Versions', 'System Versions'):
          info.append('{0}:'.format(ver_type))
          # List dependencies in alphabetical, case insensitive order
          for name in sorted(ver_info[ver_type], key=lambda x: x.lower()):
              ver = fmt.format(name,
                               ver_info[ver_type][name] or 'Not Installed',
                               pad=padding)
              info.append(ver)
          info.append(' ')
  
      for line in info:
          yield linf versions_report(include_salt_cloud=False):
      '''
      Yield each version properly formatted for console output.
      '''
      ver_info = versions_information(include_salt_cloud)
  
      lib_pad = max(len(name) for name in ver_info['Dependency Versions'])
      sys_pad = max(len(name) for name in ver_info['System Versions'])
      padding = max(lib_pad, sys_pad) + 1
  
      fmt = '{0:>{pad}}: {1}'
      info = []
      for ver_type in ('Salt Version', 'Dependency Versions', 'System Versions'):
          info.append('{0}:'.format(ver_type))
          # List dependencies in alphabetical, case insensitive order
          for name in sorted(ver_info[ver_type], key=lambda x: x.lower()):
              ver = fmt.format(name,
                               ver_info[ver_type][name] or 'Not Installed',
                               pad=padding)
              info.append(ver)
          info.append(' ')
  
      for line in info:
          yield line
docs: Yield each version properly formatted for console output.