o
    j                     @  sH   d dl mZ d dlmZ d dlmZ d dlmZ dddZdddZ	dS )    )annotations)Callable)Any)requestreturnstrc                   C  s
   t jpdS )zW
    :return: the ip address for the current request (or 127.0.0.1 if none found)

    z	127.0.0.1)r   remote_addr r	   r	   G/var/www/ai-app/venv/lib/python3.10/site-packages/flask_limiter/util.pyget_remote_address	   s   
r   callableCallable[..., Any]c                 C  s   | j  d| j d| j S )a  
    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:
    .)
__module____name____qualname__)r   r	   r	   r
   get_qualified_name   s   r   N)r   r   )r   r   r   r   )

__future__r   collections.abcr   typingr   flaskr   r   r   r	   r	   r	   r
   <module>   s    
