Source code for flask_limiter.util
from __future__ import annotations
from typing import Any, Callable
from flask import request
[docs]def get_remote_address() -> str:
"""
:return: the ip address for the current request
(or 127.0.0.1 if none found)
"""
return request.remote_addr or "127.0.0.1"
def get_qualified_name(callable: Callable[..., Any]) -> str:
"""
Generate the fully qualified name of a callable for use in storing
mappings of decorated functions to rate limits
The __qualname__ of the callable is appended in case there is a name
clash in a module due to locally scoped functions that are decorated.
TODO: Ideally __qualname__ should be enough, however view functions
generated by class based views do not update that and therefore
would not be uniquely identifiable unless __module__ & __name__
are inspected.
:meta private:
"""
return f"{callable.__module__}.{callable.__name__}.{callable.__qualname__}"