docs: def from_http(cls, headers: Mapping[str, str]) -> Optional["RateLimit"]:
          """Gather rate limit information from HTTP headers.
  
          The mapping providing the headers is expected to support lowercase
          keys.  Returns ``None`` if ratelimit info is not found in the headers.
          """
          try:
              limit = int(headers["x-ratelimit-limit"])
              remaining = int(headers["x-ratelimit-remaining"])
              reset_epoch = float(headers["x-ratelimit-reset"])
          except KeyError:
              return None
          else:
              return cls(limit=limit, remaining=remaining, reset_epoch=reset_epoch)