code: def sample(self, event=None, record_keepalive=False):
          
          url = 'https://stream.twitter.com/1.1/statuses/sample.json'
          params = {"stall_warning": True}
          headers = {'accept-encoding': 'deflate, gzip'}
          errors = 0
          while True:
              try:
                  log.info("connecting to sample stream")
                  resp = self.post(url, params, headers=headers, stream=True)
                  errors = 0
                  for line in resp.iter_lines(chunk_size=512):
                      if event and event.is_set():
                          log.info("stopping sample")
                          # Explicitly close response
                          resp.close()
                          return
                      if line == "":
                          log.info("keep-alive")
                          if record_keepalive:
                              yield "keep-alive"
                          continue
                      try:
                          yield json.loads(line.decode())
                      except Exception as e:
                          log.error("json parse error: %s - %s", e, line)
              except requests.exceptions.HTTPError as e:
                  errors += 1
                  log.error("caught http error %s on %s try", e, errors)
                  if self.http_errors and errors == self.http_errors:
                      log.warning("too many errors")
                      raise e
                  if e.response.status_code == 420:
                      if interruptible_sleep(errors * 60, event):
                          log.info("stopping filter")
                          return
                  else:
                      if interruptible_sleep(errors * 5, event):
                          log.info("stopping filter")
                          return
  
              except Exception as e:
                  errors += 1
                  log.error("caught exception %s on %s try", e, errors)
                  if self.http_errors and errors == self.http_errors:
                      log.warning("too many errors")
                      raise e
                  if interruptible_sleep(errors, event):
                      log.info("stopping filter")
                      return
docs: Returns a small random sample of all public statuses. The Tweets
          returned by the default access level are the same, so if two different
          clients connect to this endpoint, they will see the same Tweets.
  
          If a threading.Event is provided for event and the event is set,
          the sample will be interrupted.