docs: def expand_repo_def(**kwargs):
      '''
      Take a repository definition and expand it to the full pkg repository dict
      that can be used for comparison.  This is a helper function to make
      the Debian/Ubuntu apt sources sane for comparison in the pkgrepo states.
  
      This is designed to be called from pkgrepo states and will have little use
      being called on the CLI.
      '''
      if 'repo' not in kwargs:
          raise SaltInvocationError('missing \'repo\' argument')
  
      _check_apt()
  
      sanitized = {}
      repo = salt.utils.pkg.deb.strip_uri(kwargs['repo'])
      if repo.startswith('ppa:') and __grains__['os'] in ('Ubuntu', 'Mint', 'neon'):
          dist = __grains__['lsb_distrib_codename']
          owner_name, ppa_name = repo[4:].split('/', 1)
          if 'ppa_auth' in kwargs:
              auth_info = '{0}@'.format(kwargs['ppa_auth'])
              repo = LP_PVT_SRC_FORMAT.format(auth_info, owner_name, ppa_name,
                                              dist)
          else:
              if HAS_SOFTWAREPROPERTIES:
                  if hasattr(softwareproperties.ppa, 'PPAShortcutHandler'):
                      repo = softwareproperties.ppa.PPAShortcutHandler(repo).expand(dist)[0]
                  else:
                      repo = softwareproperties.ppa.expand_ppa_line(repo, dist)[0]
              else:
                  repo = LP_SRC_FORMAT.format(owner_name, ppa_name, dist)
  
          if 'file' not in kwargs:
              filename = '/etc/apt/sources.list.d/{0}-{1}-{2}.list'
              kwargs['file'] = filename.format(owner_name, ppa_name, dist)
  
      source_entry = sourceslist.SourceEntry(repo)
      for list_args in ('architectures', 'comps'):
          if list_args in kwargs:
              kwargs[list_args] = kwargs[list_args].split(',')
      for kwarg in _MODIFY_OK:
          if kwarg in kwargs:
              setattr(source_entry, kwarg, kwargs[kwarg])
  
      sanitized['file'] = source_entry.file
      sanitized['comps'] = getattr(source_entry, 'comps', [])
      sanitized['disabled'] = source_entry.disabled
      sanitized['dist'] = source_entry.dist
      sanitized['type'] = source_entry.type
      sanitized['uri'] = source_entry.uri.rstrip('/')
      sanitized['line'] = source_entry.line.strip()
      sanitized['architectures'] = getattr(source_entry, 'architectures', [])
  
      return sanitized