Added github integration

This commit is contained in:
2025-12-02 14:32:10 +00:00
parent b6dd8b8fe2
commit 4076c4bf83
762 changed files with 193089 additions and 2 deletions

View File

@@ -0,0 +1,31 @@
from __future__ import annotations
from collections.abc import Callable
from typing import Any
from flask import request
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__}"