code: def _show_notification(self,
                             event, summary, message, icon,
                             *actions):
          
          notification = self._notify(summary, message, icon)
          timeout = self._get_timeout(event)
          if timeout != -1:
              notification.set_timeout(int(timeout * 1000))
          for action in actions:
              if action and self._action_enabled(event, action[0]):
                  self._add_action(notification, *action)
          try:
              notification.show()
          except GLib.GError as exc:
              # Catch and log the exception. Starting udiskie with notifications
              # enabled while not having a notification service installed is a
              # mistake too easy to be made, but it shoud not render the rest of
              # udiskie's logic useless by raising an exception before the
              # automount handler gets invoked.
              self._log.error(_("Failed to show notification: {0}", exc_message(exc)))
              self._log.debug(format_exc())
docs: Show a notification.
  
          :param str event: event name
          :param str summary: notification title
          :param str message: notification body
          :param str icon: icon name
          :param actions: each item is a tuple with parameters for _add_action