
    (ph                     @    S r Sr " S S\5      r\4rS rS rS rS rg)	z'Key functions for memoizing decorators.)hashkey	methodkeytypedkeytypedmethodkeyc                       \ rS rSrSrSr\R                  4S jr\R                  4S jr\R                  4S jr	S r
Srg)	_HashedTuple   zA tuple that ensures that hash() will be called no more than once
per element, since cache decorators will hash the key multiple
times on a cache miss.  See also _HashedSeq in the standard
library functools implementation.

Nc                 B    U R                   nUc  U" U 5      =U l         nU$ N)_HashedTuple__hashvalue)selfhash	hashvalues      B/var/www/html/venv/lib/python3.13/site-packages/cachetools/keys.py__hash___HashedTuple.__hash__   s*    $$	+/:5Dy    c                 $    [        U" X5      5      $ r
   r   r   otheradds      r   __add___HashedTuple.__add__   s    C,--r   c                 $    [        U" X5      5      $ r
   r   r   s      r   __radd___HashedTuple.__radd__   s    C,--r   c                     0 $ r
    )r   s    r   __getstate___HashedTuple.__getstate__   s    	r   )__hashvalue)__name__
__module____qualname____firstlineno____doc__r   tupler   r   r   r   __static_attributes__r   r   r   r   r      s;     K!NN  "' . #(-- .r   r   c            	          U(       a3  [        U [        [        UR                  5       5      [        5      -   5      $ [        U 5      $ )z8Return a cache key for the specified hashable arguments.)r   sumsorteditems_kwmark)argskwargss     r   r   r   %   s4     D3vflln'=w#GGHHD!!r   c                     [        U0 UD6$ )z/Return a cache key for use with cached methods.)r   r   r.   r/   s      r   r   r   .   s    D#F##r   c                      [        U 0 UD6nU[        S U  5       5      -  nU[        S [        UR                  5       5       5       5      -  nU$ )z>Return a typed cache key for the specified hashable arguments.c              3   8   #    U  H  n[        U5      v   M     g 7fr
   type).0vs     r   	<genexpr>typedkey.<locals>.<genexpr>7   s     '$Qa$s   c              3   <   #    U  H  u  p[        U5      v   M     g 7fr
   r4   )r6   _r7   s      r   r8   r9   8   s     <%;TQa%;s   )r   r'   r+   r,   )r.   r/   keys      r   r   r   3   sM     4
"6
"C5'$'''C5<VFLLN%;<<<CJr   c                     [        U0 UD6$ )z5Return a typed cache key for use with cached methods.)r   r1   s      r   r   r   <   s    T$V$$r   N)	r&   __all__r'   r   r-   r   r   r   r   r   r   r   <module>r?      s6    -
@5 8 /"$
%r   