code: def edit_credentials(self, credential=None, already_set=True):
          
          # get user input of credentials
          # save and reload credentials.json
          credentials_required = self._CREDENTIALS_REQUIRED
          if credential:
              credentials_required = [credential]
          
          for cred in credentials_required:
              # If credential is already set, decide whether to continue
              if (cred in self._credentials) and ((already_set is False) and (credential is None)):
                  continue
              else:
                  current_encrypted_value = ''
                  try:
                      current_encrypted_value = self._credentials_encrypted[cred]
                  except KeyError:
                      None
                  
                  prompt = '\nCredential: {0}\nCurrent (encrypted) value: {1}\nEnter new value, or press enter to skip: '.format(cred, current_encrypted_value)
                  input_value = confirm_input(prompt)      
                  if input_value == '':
                      logging.info('{0} skipped'.format(cred))
                  else:
                      self._credentials.update({cred: input_value})
                      logging.info('{0} updated: {1}'.format(cred, input_value))
          self._save_credentials()
          self._load_credentials()
docs: Edit the credentials used by the :py:class:`~pypersonalassistant.secure.secure` class.
          
          .. note :: User input is required.
  
          By default, unset credentials will be displayed.
          
          :param string credential: A specific credential to edit.
          :param bool already_set: If `False` will show all credentials, whether set or unset.