docs: def info_available(*names, **kwargs):
      '''
      Return the information of the named package available for the system.
  
      refresh
          force a refresh if set to True (default).
          If set to False it depends on zypper if a refresh is
          executed or not.
  
      root
          operate on a different root directory.
  
      CLI example:
  
      .. code-block:: bash
  
          salt '*' pkg.info_available <package1>
          salt '*' pkg.info_available <package1> <package2> <package3> ...
      '''
      ret = {}
  
      if not names:
          return ret
      else:
          names = sorted(list(set(names)))
  
      root = kwargs.get('root', None)
  
      # Refresh db before extracting the latest package
      if kwargs.get('refresh', True):
          refresh_db(root)
  
      pkg_info = []
      batch = names[:]
      batch_size = 200
  
      # Run in batches
      while batch:
          pkg_info.extend(re.split(r"Information for package*",
                                   __zypper__(root=root).nolock.call('info', '-t', 'package',
                                                                     *batch[:batch_size])))
          batch = batch[batch_size:]
  
      for pkg_data in pkg_info:
          nfo = {}
          for line in [data for data in pkg_data.split('\n') if ':' in data]:
              if line.startswith('-----'):
                  continue
              kw = [data.strip() for data in line.split(':', 1)]
              if len(kw) == 2 and kw[1]:
                  nfo[kw[0].lower()] = kw[1]
          if nfo.get('name'):
              name = nfo.pop('name')
              ret[name] = nfo
          if nfo.get('status'):
              nfo['status'] = nfo.get('status')
          if nfo.get('installed'):
              nfo['installed'] = nfo.get('installed').lower().startswith('yes')
  
      return ret