
    ^j                    (   d dl mZ d dlZd dlZd dlZd dlZd dlmZmZm	Z	 d dl
mZ eez  ez  ez  Z G d de	      Z ej$                  d       G d	 d
             Z edd      Z edddd      Z eddd      Z edd      Z eddd      Zy)    )annotationsN)AnyLiteralProtocol)assert_neverc                  $    e Zd ZddZddZddZy)	_HashLikec                    y N )selfdatas     d/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/torch/_inductor/cache_key.pyupdatez_HashLike.update           c                     y r   r   r   s    r   digestz_HashLike.digest   r   r   c                     y r   r   r   s    r   	hexdigestz_HashLike.hexdigest   r   r   N)r   bytesreturnNone)r   r   )r   str)__name__
__module____qualname__r   r   r   r   r   r   r	   r	      s    1"#r   r	   T)frozenc                      e Zd ZU dZded<   ded<   dZded<   dZd	ed
<   dZded<   edd       Z	ddZ
ddZddZddddZy)CacheKeyStrategya6  
    Describes how an Inductor cache turns stable components into a cache key.

    Different caches intentionally use different key formats for compatibility
    with existing on-disk and remote cache layouts. Keeping those choices in
    named strategies makes the composition explicit at the call site.
    r   namezLiteral['base32', 'hex']digest_format prefixNzbytes | None	separator3   intbase32_lengthc                   t        | t              r| j                  d      S t        | t              r| S t        | t              rt        |       S t        | t
              r| j                         S t        dt        |             )Nutf-8z!Unsupported cache key component: )	
isinstancer   encoder   	bytearray
memoryviewtobytes	TypeErrortype)	components    r   	_to_byteszCacheKeyStrategy._to_bytes%   ss    i%##G,,i'i+##i,$$&&;DO;NOPPr   c                    t        j                         }t        |      D ]Q  \  }}|dkD  r'| j                  |j	                  | j                         |j	                  | j                  |             S |S )Nr   )hashlibsha256	enumerater&   r   r4   )r   
componentshasheridxr3   s        r   _hasherzCacheKeyStrategy._hasher1   sb    !'
3 	5NCQw4>>5dnn-MM$..34	5 r   c                F   | j                  |      }| j                  dk(  r|j                         S | j                  dk(  rMt        j                  |j                               d | j                   j                  d      j                         S t        | j                         y )Nhexbase32r+   )
r<   r#   r   base64	b32encoder   r)   decodelowerr   )r   r9   r:   s      r   r   zCacheKeyStrategy.digest9   s    j)&##%%)   12FD4F4FG
 	T''(r   c                <    | j                     | j                  |  S r   )r%   r   )r   r9   s     r   keyzCacheKeyStrategy.keyF   s!    ++{t{{J7899r   T	sort_keysc               N    | j                  t        j                  ||            S )NrF   )rE   jsondumps)r   valuerG   s      r   key_from_jsonzCacheKeyStrategy.key_from_jsonI   s    xx

5I>??r   )r3   CacheKeyComponentr   r   )r9   ztuple[CacheKeyComponent, ...]r   r	   )r9   rM   r   r   )rK   r   rG   boolr   r   )r   r   r   __doc____annotations__r%   r&   r)   staticmethodr4   r<   r   rE   rL   r   r   r   r!   r!      sa     I++FC"I|"M3	Q 	Q): >B @r   r!   compactr?   )r"   r#   codecs   ||)r"   r#   r%   r&   fx_graphf)r"   r#   r%   systemr>   autotune)r"   r#   r&   )
__future__r   r@   dataclassesr6   rI   typingr   r   r   typing_extensionsr   r   r   r.   r/   rM   r	   	dataclassr!   COMPACT_CACHE_KEY_STRATEGYCODE_CACHE_KEY_STRATEGYFX_GRAPH_CACHE_KEY_STRATEGYSYSTEM_CACHE_KEY_STRATEGYAUTOTUNE_CACHE_KEY_STRATEGYr   r   r   <module>rc      s    "     ) ) * %K)+j8 $ $ d#5@ 5@ $5@p .	 
 +		  /	  -	 
 /		 r   