code: async def password_dialog(key, title, message, options):
      
      with PasswordDialog.create(key, title, message, options) as dialog:
          response = await dialog
          if response == Gtk.ResponseType.OK:
              return PasswordResult(dialog.get_text(),
                                    dialog.use_cache.get_active())
          return None
docs: Show a Gtk password dialog.
  
      :returns: the password or ``None`` if the user aborted the operation
      :raises RuntimeError: if Gtk can not be properly initialized