class_docstr: Rate-limit a function (or other callable)
docstr: ensure at least 1/max_rate seconds from last call
docstr_tok: ["ensure","at","least","1\/max_rate","seconds","from","last","call"]
code: def _wait(self):
      "ensure at least 1/max_rate seconds from last call"
      elapsed = time.time() - self.last_called
      must_wait = 1 / self.max_rate - elapsed
      time.sleep(max(0, must_wait))
      self.last_called = time.time()
  
imports: import functools
  import time
  import inspect
  import collections
  import types
  import itertools
  import warnings
  import setuptools.extern.more_itertools
  from typing import Callable, TypeVar
label_desc: Use image node_id 4 for calling the Throttler obj's underlying member method code with example usage: obj._wait() without return types