docs: def gen_accept(id_, keysize=2048, force=False):
      r'''
      Generate a key pair then accept the public key. This function returns the
      key pair in a dict, only the public key is preserved on the master. Returns
      a dictionary.
  
      id\_
          The name of the minion for which to generate a key pair.
  
      keysize
          The size of the key pair to generate. The size must be ``2048``, which
          is the default, or greater. If set to a value less than ``2048``, the
          key size will be rounded up to ``2048``.
  
      force
          If a public key has already been accepted for the given minion on the
          master, then the gen_accept function will return an empty dictionary
          and not create a new key. This is the default behavior. If ``force``
          is set to ``True``, then the minion's previously accepted key will be
          overwritten.
  
      .. code-block:: python
  
          >>> wheel.cmd('key.gen_accept', ['foo'])
          {'pub': '-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBC
          ...
          BBPfamX9gGPQTpN9e8HwcZjXQnmg8OrcUl10WHw09SDWLOlnW+ueTWugEQpPt\niQIDAQAB\n
          -----END PUBLIC KEY-----',
          'priv': '-----BEGIN RSA PRIVATE KEY-----\nMIIEpAIBAAKCAQEA42Kf+w9XeZWgguzv
          ...
          QH3/W74X1+WTBlx4R2KGLYBiH+bCCFEQ/Zvcu4Xp4bIOPtRKozEQ==\n
          -----END RSA PRIVATE KEY-----'}
  
      We can now see that the ``foo`` minion's key has been accepted by the master:
  
      .. code-block:: python
  
          >>> wheel.cmd('key.list', ['accepted'])
          {'minions': ['foo', 'minion1', 'minion2', 'minion3']}
      '''
      id_ = clean.id(id_)
      ret = gen(id_, keysize)
      acc_path = os.path.join(__opts__['pki_dir'], 'minions', id_)
      if os.path.isfile(acc_path) and not force:
          return {}
      with salt.utils.files.fopen(acc_path, 'w+') as fp_:
          fp_.write(salt.utils.stringutils.to_str(ret['pub']))
      return ret