code: def rate_limit(function):
          
          @wraps(function)
          def wrapped(cls, _rate_domain, _rate_delay, **kwargs):
              cls.rl_lock.acquire()
              lock_last = cls.last_call.setdefault(_rate_domain, [Lock(), 0])
              with lock_last[0]:  # Obtain the domain specific lock
                  cls.rl_lock.release()
                  # Sleep if necessary, then perform the request
                  now = timer()
                  delay = lock_last[1] + _rate_delay - now
                  if delay > 0:
                      now += delay
                      time.sleep(delay)
                  lock_last[1] = now
                  return function(cls, **kwargs)
          return wrapped
docs: Return a decorator that enforces API request limit guidelines.
  
          We are allowed to make a API request every api_request_delay seconds as
          specified in praw.ini. This value may differ from reddit to reddit. For
          reddit.com it is 2. Any function decorated with this will be forced to
          delay _rate_delay seconds from the calling of the last function
          decorated with this before executing.
  
          This decorator must be applied to a RateLimitHandler class method or
          instance method as it assumes `rl_lock` and `last_call` are available.