docs: def process_event(event_filter, callback, timeout_callback, timeout, args,
                        start_time=None):
          """
          Start to watch one event.
  
          :param event_filter:
          :param callback:
          :param timeout_callback:
          :param timeout:
          :param args:
          :param start_time:
          :return:
          """
          try:
              events = event_filter.get_all_entries()
              if events:
                  callback(events[0], *args)
                  return True
  
          except (ValueError, Exception) as err:
              # ignore error, but log it
              logger.debug(f'Got error grabbing keeper events: {str(err)}')
  
          if timeout:
              elapsed = int(datetime.now().timestamp()) - start_time
              if elapsed > timeout:
                  if timeout_callback:
                      timeout_callback(*args)
                  else:
                      callback(None, *args)
  
                  return True
  
          return False