code: def remove_event_handler(self, callback, event=None):
          
          found = 0
          if event and not isinstance(event, type):
              event = type(event)
  
          i = len(self._event_builders)
          while i:
              i -= 1
              ev, cb = self._event_builders[i]
              if cb == callback and (not event or isinstance(ev, event)):
                  del self._event_builders[i]
                  found += 1
  
          return found
docs: Inverse operation of :meth:`add_event_handler`.
  
          If no event is given, all events for this callback are removed.
          Returns how many callbacks were removed.