code: def capture_event(self, event, hint=None, scope=None):
          # type: (Dict[str, Any], Any, Scope) -> Optional[str]
          
          if self.transport is None:
              return None
          if hint is None:
              hint = {}
          rv = event.get("event_id")
          if rv is None:
              event["event_id"] = rv = uuid.uuid4().hex
          if not self._should_capture(event, hint, scope):
              return None
          event = self._prepare_event(event, hint, scope)  # type: ignore
          if event is None:
              return None
          self.transport.capture_event(event)
          return rv
docs: Captures an event.
  
          This takes the ready made event and an optoinal hint and scope.  The
          hint is internally used to further customize the representation of the
          error.  When provided it's a dictionary of optional information such
          as exception info.
  
          If the transport is not set nothing happens, otherwise the return
          value of this function will be the ID of the captured event.